página 1 de 115 índice - iit | instituto de investigacion ... ndice página 1....
TRANSCRIPT
Índice
Página
1. Introducción y planteamiento del proyecto 4
1.1. Introducción e historia de los Problemas de mecánica de 4
fluidos resolviendo la ecuación de Navier-Stokes
1.1.1. Historia de mecánica de fluidos 4
1.1.2. Ecuación de Navier-Stokes 7
1.2. Objetivos del presente Proyecto 21
1.3. Motivación del presente proyecto 22
1.4. Ámbito de Aplicación del proyecto 24
1.5. Implantación Numérica 25
1.6. Organización del presente proyecto 26
2.Descripción de los algoritmos desarrollados y los 27
métodos empleados
2.1. Mallador GID 27
2.1.1. Preprocesador de GID 30
2.1.1.1. Creación de mallas para el estudio (Generación de malla a través 30
de parámetros)
2.1.1.2. Mallado 3D en GID 33
2.1.2. Postprocesador del GID: 36
Página 1 de 115
2.1.2.1. Postprocesado 2D 36
2.1.2.2. Postprocesado 3D: 38
3. Programa para resolver la ecuación de transporte puro 42
de Euler en bajo orden para comprobar la difusión
matemática del problema:
3.1. Fundamentos de la ecuación del transporte puro de Euler 42
3.2. Generación de la malla en GID y generación de los 45
archivos de datos necesarios para el problema
3.3. Cálculo del Pie de las características 50
3.4. Cálculo del elemento al que pertenece el pie de las 54
características
3.4.1. Cálculo de los elementos vecinos 54
3.4.2. Paso del triángulo físico a coordenadas locales. 56
3.4.3. Cálculo del elemento al que pertenece el pie de las características 61
3.5. Cálculo del valor de la función en el pie de las características 64
3.6. Funcionamiento completo del programa 66
4.Programa para resolver la ecuación de transporte puro de 67
Euler en alto orden a través del método de los polinomios
De Legendre
4.1. Explicación general del programa 67
4.2. Estructura General del Programa 68
Página 2 de 115
4.3. Generación de la malla definitiva 70
4.4. Matriz de masa de el espacio de los polinomios de Legendre 74
4.5. Proyección del espacio Real al espacio de los polinomios 75
de Legendre: La subrutina “fromPhys2Leg”
4.6. Proyección del espacio de los polinomios de Legendre al 77
espacio real: La subrutina “fromLeg2Phys”
5.Métodos matemáticos de aproximación empleados 80
5.1. Introducción 80
5.2. Método de interpolación de Lagrange 84
5.2.1. Introducción a los polinomios de Lagrange 84
5.2.2. Interpolación polinómica de Lagrange 1D 85
5.2.3.Interpolación de Lagrange en 2D. Resolución para el caso particular 88
de triángulos cuadráticos:
5.3. Método modal de los polinomios de Legendre 91
6.Comparación de los dos métodos de estudio 95
6.1.Datos tomados para la comparación 95
6.2.Resultados obtenidos para el caso de Lagrange 97
6.3.Resultados obtenidos para el caso de Legendre 109
6.4.Comparación de los dos métodos 114
Página 3 de 115
1. Introducción y planteamiento del proyecto:
1.1. Introducción e historia de los Problemas de mecánica de fluidos
resolviendo la ecuación de Navier-Stokes:
1.1.1. Historia de mecánica de Fluidos:
Es Claude Loius Marie Henri Navier (1785-1836) quien empieza el desarrollo de
las ecuaciones que se usan hoy en día para los problemas de mecánica de fluidos.
Debido a la muerte de su padre, cuando Claude tenía 8 años, éste quedo a cargo de
su tío, Emiland Gauthey, quien era un destacado ingeniero civil de la época, lo
que impulso a Claude Navier a interesarse por la ingeniería y a ponerse en
contacto con los pensadores e investigadores más importantes de la época. Entre
ellos podemos citar a Fourier, Auguste Comte, etc. Con esta influencia terminó
por convertirse en miembro del cuerpo de puentes y caminos (corps des ponts et
chaussées). Antes de desarrollar sus teorías sobre mecánica de fluidos, fue el
primero en desarrollar una teoría sobre puentes suspendidos, los cuales habían
sido desarrollados siempre de forma empírica, aunque nunca llegó a ponerla en
práctica debido a la falta de apoyo municipal. Tras esto tuvo una vida muy
fructífera en la ingeniería francesa, siendo asesor del gobierno en temas de
ingeniería durante gran parte de su vida. Sin Embargo a Claude Navier le
recordamos por su labor desarrollando las primeras ecuaciones no basadas en
estudios empíricos de la mecánica de fluidos.
Inicialmente no entendía muy bien los esfuerzos cortantes que se daban en los
fluidos hasta que en 1821, gracias a los trabajos de Euler desarrolló dichas
Página 4 de 115
ecuaciones para fluidos incompresibles, y más tarde en 1822 para fluidos
viscosos.
Las ecuaciones obtenidas por Navier fueron nuevamente desarrolladas con un
entendimiento teórico mayor de los esfuerzos que se generaban en los fluidos por
El Barón Louis de Cauchy (1789-1857) y por George Gabriel Stokes (1819-1903).
A pesar de que Cauchy estaba dedicado sobre todo a la matemática teórica,
desarrolló también en el campo de la mecánica de fluidos las ecuaciones que
regían la naturaleza de los esfuerzos cortantes que se dan en un fluido, así como
las ecuaciones de análisis de Flujos ideales de Cauchy-Rieman.
Stokes, en cambio se dedicó al estudio empírico de las tensiones cortantes en los
fluidos, llegando a la definición de el concepto de ”Fricción Interna” y, con ello, a
formular las ecuaciones de Navier-Stokes, que son las que se usan hoy en día en la
resolución de problemas de mecánica de fluidos. Esta ecuación tiene una
complejidad matemática elevada, hasta el punto de que la resolución analítica de
la misma no es conocida en la actualidad, y se plantea como uno de los seis
problemas matemáticos del siglo. Éste hecho da lugar a la necesidad de resolver la
ecuación de Navier-Stokes a través de métodos numéricos para poder estudiar los
fenómenos que se producen en los fluidos. A raíz de esto nace lo que se conoce
como la dinámica de fluidos computacional, que tiene sus primeras aplicaciones
en la industria aerospacial, que fue donde primeramente se planteó la necesidad
del estudio de la dinámica de un fluido alrededor de un cuerpo.
Página 5 de 115
A pesar de el gran desarrollo que ha tenido la dinámica de fluidos computacional
durante los últimos años, sigue siendo fundamental la utilización de túneles de
viento y ensayos experimentales para la validación de los resultados obtenidos por
simulación.
!"#$%"&'
($)*%&#*&+,*)-"&./&#*&0,12$,-"&34,*1-"
!"#$%$&$"#$'!
"#!$%#&'!(&!)*&#$+!&,!%#-!.&//-0*&#$-!$()$*+,$"#-.!1-/-!&,$%(*-/!'+,!&2&3$+,!(&'!2'%4+!(&!-*/&!,+5/&!+54&$+,!+!3%&/1+,!,+'*(+,6!!7'!1/*#3*1*+!(&!2%#3*+#-0*&#$+!,&!5-,-!&#!8%&!&'!2'%*(+!9-*/&:!&,!!,+1'-(+!+!-,1*/-(+!-!$/-);,!(&!%#!(%3$+!&8%*1-(+!3+#!%#-!,&33*+#!(&!&#,-<+,= !(+#(&!,&!3+'+3-#!0+(&'+,!(&!(*,$*#$-, !>&+0&$/*-, !1-/- !,%!&,$%(*+6
?-<!)-/*-,!$&3#*3-,!1-/-!0&(*/!'-,!)-/*-5'&,!*01+/$-#$&,!8%&!(&,3/*5&#!'-!*#$&/-33*+#!&#$/&!&'!2'%4+!(&!-*/&!<!&'!0+(&'+6!@-,!)-/*-5'&, !0-, ! 3+0%#&, ! ,+# ! )&'+3*(-(= ! 1/&,*+#= ! 2%&/A-, ! (&!-//-,$/&!<!,%,$&#$-3*+#!&$36!@-,!$&3#*3-,!1-/-!0&(*/!)-#!(&,(&!&'!%,+!(&!$%5+,!1*$+$!91/&,*+#:=!-#&0+0&$/+,!(&!.*'+!3-'*&#$&=!'-,&/ ! (+11'&/ ! + ! BCD ! 9)&'+3*(-(: ! < ! 5-'-#A-, ! -&/+(*#-0*3-,!92%&/A-,:=!1-/$*3%'-,!$/-A-(+/-,!$*1+!.%0+!9)*,%-'*A-3*+#&,:6
@+,!$%#&'&,!(&!)*&#$+!1%&(&#!,&/!(&!3*/$%*$+!-5*&/$+!9&'!-*/&!&,!,+1'-(+!+!-,1*/-(+!<!'%&>+!&,3-1-!(&'!$%#&'!.-3*-!'-!-$0+,2&/-:!+!(&!3*/3%*$+!3&//-(+=!(+#(&!&'!-*/&!&,!2+/A-(+!-!3*/3%'-/!&#!2+/0-!*#(&2*#*(-!-'!*#$&/*+/!(&'!$%#&'6!7'!
$-0-E+!<!$*1+!(&!2'%*(+!1%&(&!)-/*-/=!(&,(&!'+,!0%<!1&8%&E+,!9.$$1FGGHHH6/1*6&(%G$1.$'G/&,&-/3.G')21G')216.$0':!(+#(& ! &' ! $-0-E+ !(& ! '- ! ,&33*+# !(& ! &#,-<+ ! &, !(&'!+/(&# ! '+, ! ! 0*3/+#&, ! 92'%*(+ ! $*1*3-0&#$& ! &, ! %#!'*8%*(+:= ! .-,$- ! '+, ! >/-#(&, ! 8%& ! 1%&(&# ! -'+4-/ ! %#!-)*+#!(&!$-0-E+!/&-'!9.$$1FGGHHH6+#&/-62/:!3+0+!,&!+5,&/)-!&#!'-!2+$+,6!
"#-!$&/3&/-!3'-,*2*3-3*+#!,&!/&-'*A-!&#!2%#3*I#!(&!'-!)&'+3*(-(!(&'!2'%4+!"=!(+#(&!,&!(*,$*#>%&!&'!#%0&/+!(&!J-3.!JK"GL!(&'!$%#&'=!(+#(&!L!&,!'-!)&'+3*(-(!
(&'!,+#*(+6!!M*!JNO!&'!$%#&'!&,!,%5,+#*3+=!<!,*!JPO!&,!,%1&/,+#*3+6!
@+,!1-/-0&$/+,!0-,!*01+/$-#$&,!8%&!(&2*#&#!'-!3-'*(-(!(&!%#!$%#&'!(&!)*&#$+!,+#!9O:!Q-#>+!(&!)&'+3*(-(!9R:!"#*2+/0*(-(!(&'!2'%4+!(&!-*/&!&#!'-!,&33*+#!(&!&#,-<+!!9S:!T'%3$%-3*+#&,!$&01+/-'&,!(&!)&'+3*(-(!9N!U6S!V:6!!
Figura 1: Túnel de viento tamaño real
Los inconvenientes son claros. Frente a los ensayos experimentales, la CFD
(Dinámica de Fluidos Computacional, en inglés Computational Fluid Mechanics)
es un método poco seguro debido a varios factores. Entre ellos, tenemos el
problema de que al aumentar el número de Reynolds, la resolución se vuelve
inexacta; o el problema del error generado por la inexactitud de geometría del
mallado. Y por último el problema que tratamos de mejorar en este proyecto: la
difusión numérica de la solución debida al uso del método de las características,
ajena a la física del problema. Aunque se explicará más adelante, el presente
proyecto pretende estudiar la repercusión en la difusión numérica de un cambio en
el método de aproximación modal (Interpolación) de la función transportada. Es
Página 6 de 115
decir, que la solución modal aproximada se pueda expresar como una suma de
coeficientes por los modos de aproximación que describen la solución.
Por otro lado las ventajas de la CFD sobre los túneles de viento son también muy
claras: En primer lugar el sistema es más barato y rápido para el cálculo, lo que
hace que sea especialmente cómodo para el cambio de diseño dinámico de una
pieza, superficie o similar. Tiene también la ventaja de que en un túnel del viento
se pueden extraer menos datos que con un método computacional, aunque en la
actualidad hay métodos con los que se van pudiendo extraer cada vez más
información, como puede ser el PIV, medición de velocidad a través de un láser
Doppler, anemómetros de hilo caliente, e incluso trazas de humos para poder
distinguir la dirección del flujo.
En CFD se conoce la aproximación a cada variable que influye en el movimiento
del fluido en cada punto de la malla de elementos finitos independientemente, de
que éstos estén en una zona concreta del dominio (superficie de medida) o que
estén en cualquier otro punto del fluido, sin que se pueda acceder a dichas
medidas de ninguna manera física sin variar los resultados.
1.1.2. Ecuación de Navier-Stokes:
Establezcamos las ecuaciones del movimiento de un fluido compresible y viscoso.
Para el caso general de un movimiento tridimensional, el campo de corrientes está
determinado por el vector velocidad
v= ui+ v j+ wk
Página 7 de 115
con las tres componentes rectangulares u,v,w además de la presión p y la densidad
ρ Para la determinación de estas cinco magnitudes disponemos de la ecuación de
continuidad (conservación de la masa), las tres ecuaciones del movimiento
(conservación de la cantidad de movimiento) y la ecuación termodinámica de
estado p = f ρ,t( ) , es decir, cinco ecuaciones también.
La ecuación de continuidad expresa que la suma de las masas entrante y saliente
por unidad de volumen en la unidad de tiempo es igual a la variación de la
densidad por unidad de tiempo. Luego, para el movimiento no estacionario de un
fluido compresible ella podrá escribirse como:
∂ρ∂t
+ div ρv( ) = 0 (I.1)
mientras que para un fluido incompresible toma la forma simplificada
div(v) = 0 (I.1a)
Para establecer las ecuaciones fundamentales del movimiento partimos de las
leyes fundamentales de la Mecánica, según las cuales, el producto de la masa por
la aceleración es igual a la suma de las fuerzas. Las fuerzas que actúan, son
Página 8 de 115
fuerzas de masa (peso) y fuerzas de superficies (fuerzas de presión y de
rozamiento viscoso).
Sean k = ρg la fuerza másica por unidad de volumen (g= vector del campo
gravitatorio terrestre) y P la fuerza de superficie por unidad de volumen, luego, las
ecuaciones del movimiento en notación vectorial vendrán dadas por:
ρ Dv
Dt= K + P (I.2)
siendo
K = Xi
+Y j+ Zk
P = Px i
+ Py j+ Pz k
Dv
Dt=∂v
∂t+dv
dt
la fuerza de masa, la fuerza superficial y la aceleración sustancial
respectivamente.
Las fuerzas másicas se consideran fuerzas exteriores, mientras que las fuerzas
superficiales dependen del estado de deformación (estado de movimiento) del
fluido.
Página 9 de 115
El conjunto de fuerzas superficiales determinan un estado de tensión. Nuestro
objetivo es ahora, obtener la relación entre el estado de tensión y el estado de
deformación.
I.1.2.1 Campo general de tensiones de un cuerpo deformable
Para formular las fuerzas de superficie, imaginemos un elemento de volumen de
forma cúbica dV=dx+dy+dz con su vértice inferior izquierdo en el punto (x,y,z).
Es conocido de la Mecánica que la fuerza total procedente de las fuerzas de
superficie, ℘ por unidad de volumen dV es,
℘=∂Px∂x
+∂Py∂y
+∂Pz∂z (I.3)
con
Px = σ x i+ τ xy j+ τ xz k
Py = τ yx i+σ y j+ τ yz k
Py = τ zx i+ τ zy j+σ z k
⎧
⎨⎪⎪
⎩⎪⎪
⎫
⎬⎪⎪
⎭⎪⎪ (I.4)
donde σ denota las tensiones normales y sus índices las direcciones normales,
mientras que τ representa las tensiones tangenciales y en doble índice, el primero
Página 10 de 115
indica la dirección a la cual es perpendicular el elemento de superficie y el
segundo la dirección en la que apunta la tensión τ.
La tensión puede ser determinada mediante nueve magnitudes escalares, que
forman un tensor de tensiones. El conjunto de las nueve componentes del tensor
se llaman también matriz del tensor
Π =σ x τ xy τ xzτ yx σ y τ yzτ zx τ zy σ z
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
Se puede demostrar, que las tensiones tangenciales con iguales índices pero en
orden inverso, deben ser iguales, o sea τ xy = τ yx ; τ xz = τ zx y τ yz = τ zy . Esto
resulta de la igualdad de momentos alrededor de un eje arbitrario para cuerpos
elásticos en equilibrio . Por tanto, la matriz del tensor Π que tendrá solo seis
componentes distintas y será simétrica se puede escribir como
Π =σ x τ xy τ xzτ xy σ y τ yzτ xz τ yz σ z
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
(I.5)
Página 11 de 115
De las ecuaciones (I.3), (I.4) y la simetría de las tensiones tangenciales expresadas
en (I.5) tendremos que, la fuerza de superficie por unidad de volumen será
℘=∂σ x
∂x+∂τ xy∂y
+∂τ xz∂z
⎛⎝⎜
⎞⎠⎟i +
∂τ xy∂x
+∂σ y
∂y+∂τ yz∂z
⎛⎝⎜
⎞⎠⎟j +
∂τ xz∂x
+∂τ yz∂y
+∂σ z
∂z⎛⎝⎜
⎞⎠⎟k
(I.5a)
Luego, si consideramos la ecuación de movimiento (I.2) escrita para la fuerza
total procedente de las fuerzas de superficie ℘( ) , ésta expresada por componentes
tomará la forma
ρ DuDt
= X +∂σ x
∂x+∂τ xy∂y
+∂τ xz∂z
⎛⎝⎜
⎞⎠⎟
ρ DvDt
= Y +∂τ xy∂x
+∂σ y
∂y+∂τ yz∂z
⎛⎝⎜
⎞⎠⎟
ρ DwDt
= Z +∂τ xz∂x
+∂τ yz∂y
+∂σ z
∂z⎛⎝⎜
⎞⎠⎟
(I.6)
Para un fluido sin rozamiento, todas las tensiones tangenciales son nulas, solo
quedan las tensiones normales, que además son iguales entre sí y cuyo valor
cambiado de signo, se llama presión del fluido :
τ xy = τ xz = τ yz = 0σ x = σ y = σ z = − p
Página 12 de 115
De ahí que, la presión del fluido es también igual a la media aritmética de las
tensiones normales cambiada de signo, o sea:
13σ x +σ y +σ z( ) = σ = − p (I.7)
El sistema de las ecuaciones (I.6) contiene las seis componentes de la tensión
σ x , σ y , σ z , τ xy , τ xz , τ yz El paso siguiente debe ser poner en relación estas seis
componentes con las deformaciones, y de aquí con las tres componentes de la
velocidad u, v, w.
Según se conoce de la Mecánica, la ley general de Hooke para un cuerpo sólido
elástico escrita en forma matricial viene dada por
σ x τ xy τ xzτ xy σ y τ yzτ xz τ yz σ z
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟=
σ x 0 00 σ y 00 0 σ z
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟+G
∂ξ∂x
∂ξ∂y
∂ξ∂z
∂η∂x
∂η∂y
∂η∂z
∂ζ∂x
∂ζ∂y
∂ζ∂z
⎛
⎝
⎜⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟⎟
+G
∂ξ∂x
∂η∂x
∂ζ∂x
∂ξ∂y
∂η∂y
∂ζ∂y
∂ξ∂z
∂η∂z
∂ζ∂z
⎛
⎝
⎜⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟⎟
−23
div S 0 00 div S 00 0 div S
⎛
⎝
⎜⎜
⎞
⎠
⎟⎟
(I.8)
donde ξ, η, ζ son las tres componentes del desplazamiento S, G el módulo de
rigidez y σ , como habíamos dicho, la media aritmética de las tensiones normales.
Página 13 de 115
I.1.2.3 Relación entre las tensiones y la deformación para líquidos y gases
La ecuación matricial (I.8) expresa también inmediatamente la ley de la
resistencia de Stokes, con la única diferencia de que las tensiones, según la ley de
Stokes, son proporcionales a las velocidades de la deformación. De aquí resulta
que el tensor de las tensiones para un fluido en movimiento se obtiene
sustituyendo en la ecuación (I.8) el desplazamiento
S = ξi
+η j+ζ k
por la velocidad de desplazamiento
dSdt
= v= ui+ v j+ wk
que se identifica con el vector velocidad usual. En lugar del módulo de rigidez G,
aparece el coeficiente de viscosidad µ . Además sustituiremos la media aritmética
de las tensiones normales σ( ) por la presión del fluido cambiada de signo − p( ) ,
de acuerdo con la ecuación (I.7). Con estas modificaciones, la fórmula de Stokes
para la matriz de las tensiones de un fluido, análoga a la expresión (I.8), será:
Página 14 de 115
σ x τ xy τ xzτ xy σ y τ yzτ xz τ yz σ z
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟=
− p 0 00 − p 00 0 − p
⎛
⎝
⎜⎜
⎞
⎠
⎟⎟ + µ
∂u∂x
∂u∂y
∂u∂z
∂v∂x
∂v∂y
∂v∂z
∂w∂x
∂w∂y
∂w∂z
⎛
⎝
⎜⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟⎟
+ µ
∂u∂x
∂v∂x
∂w∂x
∂u∂y
∂v∂y
∂w∂y
∂u∂z
∂v∂z
∂w∂z
⎛
⎝
⎜⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟⎟
−23
div v
0 0
0 div v
0
0 0 div v
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
(I.9)
Luego, si separamos de las tensiones normales la presión, poniendo
σ x = − p +σ x´ ; σ y = − p +σ y´ ; σ z = − p +σ z´ (I.10)
obtendremos las siguientes expresiones para las componentes de la resistencia o
viscosidad:
σ x´= µ 2 ∂u∂x
−23div v⎛
⎝⎜⎞⎠⎟
σ y´= µ 2 ∂v∂y
−23div v⎛
⎝⎜⎞⎠⎟
σ z´= µ 2 ∂w∂z
−23div v⎛
⎝⎜⎞⎠⎟
⎫
⎬
⎪⎪⎪
⎭
⎪⎪⎪
τ xy = µ ∂u∂y
+∂v∂x
⎛⎝⎜
⎞⎠⎟
τ yz = µ ∂v∂z
+∂w∂y
⎛⎝⎜
⎞⎠⎟
τ xz = µ ∂w∂x
+∂u∂z
⎛⎝⎜
⎞⎠⎟
(1.11)
Para fluidos viscosos incompresibles desaparece el último término de la ecuación
(I.9) por ser div v= 0 , mientras que para fluidos no viscosos (µ = 0 ) e
Página 15 de 115
i n c o m p r e s i b l e s d i c h a e c u a c i ó n s e r e d u c e a σ x = σ y = σ z = − p ;
τ xy = τ xz = τ yz = 0 .
I.1.2.4 Ecuaciones de Navier – Stokes
Las ecuaciones del movimiento (I.6) una vez separada la componente de la
presión independiente de la resistencia según (I.10), toman la forma
ρ DuDt
= X −∂p∂x
+∂σ x´∂x
+∂τ xy∂y
+∂τ xz∂z
⎛⎝⎜
⎞⎠⎟
ρ DvDt
= Y −∂p∂y
+∂τ xy∂x
+∂σ y´∂y
+∂τ yz∂z
⎛⎝⎜
⎞⎠⎟
ρ DwDt
= Z −∂p∂z
+∂τ xz∂x
+∂τ yz∂y
+∂σ z´∂z
⎛⎝⎜
⎞⎠⎟
⎫
⎬
⎪⎪⎪⎪
⎭
⎪⎪⎪⎪
Con estas expresiones de Navier-Stokes obtendremos la fuerza superficial
resultante en función de las componentes de la velocidad, por ejemplo, para la
dirección la ecuación (I.5a) nos da
℘x =∂σ x
∂x+∂τ xy∂y
+∂τ xz∂z
= −∂p∂x
+∂σ x´∂x
+∂τ xy∂y
+∂τ xz∂z
y según (I.11)
℘x = −∂p∂x
+∂∂x
µ 2 ∂u∂x
−23div v⎛
⎝⎜⎞⎠⎟
⎡⎣⎢
⎤⎦⎥+
∂∂y
µ 2 ∂v∂y
−23div v⎛
⎝⎜⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥ +
∂∂z
µ 2 ∂w∂z
−23div v⎛
⎝⎜⎞⎠⎟
⎡⎣⎢
⎤⎦⎥
Página 16 de 115
Para ℘y y ℘z se obtienen expresiones análogas.
Si sustituimos estas expresiones fundamentales en (I.6), obtendremos el sistema
de ecuaciones:
ρ DuDt
= X −∂p∂x
+∂∂x
µ 2 ∂u∂x
−23div v⎛
⎝⎜⎞⎠⎟
⎡⎣⎢
⎤⎦⎥+
∂∂y
µ ∂u∂y
+∂v∂x
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥ +
∂∂z
µ ∂w∂x
+∂u∂z
⎛⎝⎜
⎞⎠⎟
⎡⎣⎢
⎤⎦⎥
ρ DvDt
= Y −∂p∂y
+∂∂y
µ 2 ∂v∂y
−23div v⎛
⎝⎜⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥ +
∂∂z
µ ∂v∂z
+∂w∂y
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥ +
∂∂x
µ ∂u∂y
+∂v∂x
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥
ρ DwDt
= Z −∂p∂z
+∂∂z
µ 2 ∂w∂z
−23div v⎛
⎝⎜⎞⎠⎟
⎡⎣⎢
⎤⎦⎥+
∂∂x
µ ∂w∂x
+∂u∂z
⎛⎝⎜
⎞⎠⎟
⎡⎣⎢
⎤⎦⎥+
∂∂y
µ ∂v∂z
+∂w∂y
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥
(I.12a,b,c)
conocido con el nombre de ecuaciones de Navier – Stokes las cuales constituyen
el fundamento de toda la Mecánica de Fluidos . A ellas hay que añadir la ecuación
de continuidad, que para fluidos compresibles, según la ecuación (I.1) es
∂ρ∂t
+∂ ρu( )∂x
+∂ ρv( )∂y
+∂ ρw( )∂z
= 0 (I.13)
Para flujo incompresible todavía se simplifica más este sistema de ecuaciones, aun
en el caso de no ser constante la temperatura.
Página 17 de 115
En primer lugar, según la ecuación (I.1a) se tiene div v= 0 . Además, por ser
pequeña la variación del coeficiente de viscosidad con la temperatura, se le puede
considerar como constante.el punto 1.
Luego, las ecuaciones (I.12a,b,c) y (I.13) desarrollando las aceleraciones, se
convertirán en:
ρ ∂u∂t
+ u∂u∂x
+ v∂u∂y
+∂u∂z
⎛⎝⎜
⎞⎠⎟= X −
∂p∂x
+ µ ∂2u∂x2
+∂2u∂y2
+∂2u∂z2
⎛⎝⎜
⎞⎠⎟
ρ ∂v∂t
+ u∂v∂x
+ v∂v∂y
+∂v∂z
⎛⎝⎜
⎞⎠⎟= Y −
∂p∂y
+ µ ∂2v∂x2
+∂2v∂y2
+∂2v∂z2
⎛⎝⎜
⎞⎠⎟
ρ ∂w∂t
+ u∂w∂x
+ v∂w∂y
+∂w∂z
⎛⎝⎜
⎞⎠⎟= Z −
∂p∂z
+ µ ∂2w∂x2
+∂2w∂y2
+∂2w∂z2
⎛⎝⎜
⎞⎠⎟
⎫
⎬
⎪⎪⎪⎪
⎭
⎪⎪⎪⎪ (1.14,a, b, c)
∂u∂x
+∂v∂y
+∂w∂z
= 0 (I.15)
Estas ecuaciones de Navier–Stokes dadas en (I.14a,b,c) para fluidos
incompresibles, se pueden escribir en forma vectorial, así:
ρ Dv
Dt= K − ∇p + µ Δv
(I.16)
donde Δ representa el operador de Laplace Δ =∂2
∂x2+
∂2
∂y2+
∂2
∂z2
Ellas, se diferencian de las ecuaciones de Euler del movimiento para fluidos no
viscosos por la presencia del término de la resistencia viscosa µ Δv
.
Página 18 de 115
Debido a la dificultad de todo cálculo que involucre a las ecuaciones de Navier-
Stokes y la versión computacional de las mismas, todo cálculo computacional
elaborado mediante dichas ecuaciones debe ser validado de forma experimental.
A pesar de las grandes dificultades matemáticas que ofrecen estas ecuaciones, son
conocidas algunas soluciones particulares que resultan ser interesantes, como por
ejemplo, el flujo por conductos y alrededor de los mismo (cilindros), así como el
flujo correspondiente a la capa límite, las cuales concuerdan perfectamente con
los resultados experimentales, no permitiendo dudas sobre la validez general de
las ecuaciones de Navier – Stokes.
Veamos a continuación que forma presentan las ecuaciones de Navier – Stokes y
de continuidad en coordenadas cilíndricas.
Si designamos por x, r, φ las coordenadas axial, radial y angular, y por vx , vr , vϕ
las componentes de la velocidad en las direcciones de dichas coordenadas,
obtenemos estas ecuaciones en coordenadas cilíndricas para fluidos
incompresibles que de las ecuaciones (I.15) y (I.16) se escriben como sigue
∂vx∂x
+ ∂vr∂r
+1r∂vϕ∂ϕ
+ vrr
=0
Página 19 de 115
ρ ∂vx∂t
+ vx∂vx∂x
+ vr∂vx∂r
+vϕr∂vx∂ϕ
⎛⎝⎜
⎞⎠⎟= Kx −
∂p∂x
+µ ∂2vx∂x2 +
∂2vx∂r2 +
1r∂vx∂r
+1r2
∂2vx∂ϕ 2
⎛⎝⎜
⎞⎠⎟
ρ ∂vr∂t
+ vx∂vr∂x
+ vr∂vr∂r
+vϕr∂vr∂ϕ
+vϕ
2
r⎛
⎝⎜⎞
⎠⎟= Kr −
∂p∂r
+µ ∂2vr∂x2 +
∂2vr∂r2 +
1r∂vr∂r
+1r2
∂2vr∂ϕ 2 −
2r2
∂vϕ∂ϕ
−vrr2
⎛⎝⎜
⎞⎠⎟
ρ∂vϕ∂t
+ vx∂vϕ∂x
+ vr∂vϕ∂r
+vϕr∂vϕ∂ϕ
+vr vϕr
⎛⎝⎜
⎞⎠⎟= Kϕ −
1r∂p∂ϕ
+µ∂2vϕ∂x2 +
∂2vϕ∂r2 +
1r∂vϕ∂r
+1r2
∂2vϕ∂ϕ 2 +
2r2
∂vr∂ϕ
−vϕr2
⎛
⎝⎜⎞
⎠⎟
Particularmente podemos destacar que en modelos de fluido no newtoniano como
los empleados en hemodinámica (ver Antanovskii – Ramkissoon) , las ecuaciones
de continuidad y de Navier – Stokes toman la forma
∂ ρr( )∂t
+∂ ρrvx( )
∂x+∂ ρrvr( )
∂r= 0 (I.17)
ρ ∂vx∂t
+ vx∂vx∂x
+ vr∂vx∂r
⎛⎝⎜
⎞⎠⎟= −
∂p∂x
+∂∂x
2µ ∂vr∂x
⎛⎝⎜
⎞⎠⎟+1r∂∂r
µr ∂vr∂x
+∂vx∂r
⎛⎝⎜
⎞⎠⎟
⎡⎣⎢
⎤⎦⎥
(I.18)
ρ ∂vr∂t
+ vx∂vr∂x
+ vr∂vr∂r
⎛⎝⎜
⎞⎠⎟= −
∂p∂r
+∂∂x
µ ∂vr∂x
+∂vx∂r
⎛⎝⎜
⎞⎠⎟
⎡⎣⎢
⎤⎦⎥+1r∂∂r
2µr ∂vx∂r
⎛⎝⎜
⎞⎠⎟− 2µ vr
r2
(1.19)
puesto que allí, el fluido es compresible y viscoso, no actúan fuerzas másicas por
unidad de volumen (fuerzas externas), y no se considera la componente angular de
la velocidad, o sea, vϕ = 0
Página 20 de 115
1.2. Objetivos del presente Proyecto:
-Estudio del método de las características en bajo orden (primer y segundo orden),
medición del error y contrastación con los resultados existentes en la literatura
actual. Este objetivo se realizará mediante un código de elementos finitos de bajo
orden basado en una interpolación nodal lagrangiana y el método semi-
Lagrangiano de transporte.
-Creación de un interpolador de alto orden. Mediante el uso de polinomios de
Legendre, se creará un interpolador que sea capaz de realizar interpolaciones
modales más precisas a medida que se incrementa el orden de la familia de
polinomios que realiza la interpolación, tanto en una como en dos dimensiones.
Comparación de los resultados con la versión lagrangiana de bajo orden.
-Determinación de un orden de aproximación polinómica que nos permita integrar
el conjunto de las ecuaciones de Navier-Stokes con un error de difusión mínimo y,
al mismo tiempo, unas necesidades computacionales aceptables.
-Implementación del método de las características de alto orden en un esquema de
Gradiente Conjugado capaz de resolver el problema de Stokes derivado de la
resolución semi-Lagrangiana de las ecuaciones de Navier-Stokes.
-Aplicación a problemas aerodinámicos clásicos en distintos regímenes y número
de Reynolds.
Página 21 de 115
1.3. Motivación del presente proyecto
La descripción y el control de los flujos laminares y turbulentos que se producen
en un contexto industrial es unos de los principales objetivos que los ingenieros se
plantean cuando tienen ante sí un problema de diseño aerodinámico.
Los objetivos más clásicos en lo que respecta al diseño aerodinámico son, por un
lado, la minimización del coeficiente de arrastre o Drag (Cd) y, por otro, la
optimización del coeficiente de sustentación o Lift (Cl). Este último objetivo
puede tener una doble interpretación ya que se podría proyectar un Lift máximo
con signo positivo tal y como se hace en un contexto fundamentalmente
aeronáutico, o bien con signo negativo como, por ejemplo, cuando se trata de
asentar un monoplaza de Fórmula1 contra el suelo a altas velocidades.
Estos coeficientes de resistencia y sustentación no son otra cosa que el resultado
de la suma de todas las fuerzas de presión y viscosas que un cuerpo siente por
parte del fluido que le rodea. Para conseguir estos objetivos, son muchas las
técnicas que se emplean. Una amplia rama de procedimientos tienen que ver con
mediciones experimentales de dichos coeficientes y posterior rediseño de las
geometrías o perfiles. Este conjunto de técnicas se conocen como control pasivo
del flujo. Dentro de estas llamadas técnicas de control pasivo, encontramos entre
otras, los riblets, que quizás son los más conocidos. Consiste en aplicar a la
superficie del cuerpo una geometría similar a la de una pelota de golf para
favorecer cierto comportamiento del fluido en torno a esa superficie.
Página 22 de 115
Figura 2: Tipos de Riblets
Por otro lado también es posible crear mecanismos físicos que interaccionen
energéticamente con el fluido y cambien consecuentemente el valor de los
coeficientes de resistencia y sustentación. Esto se conoce como control activo.
El estudio de cada uno de estos procedimientos de optimización da lugar a una
interacción entre el mecanismo de control, el comportamiento del fluido y, por
consiguiente, el valor final de los coeficientes. Este estudio se puede llevar a
cabo,de forma experimental o bien en forma computacional, teniendo cada una de
ellas sus ventajas e inconvenientes. Tiempo, economía, error cuantitativo o
detalles del campo fluidodinámico son variables que nos pueden llevar a optar por
un análisis experimental o bien por una simulación computacional.
En este proyecto se ha optado por el segundo caso y por lo tanto vamos a tratar de
describir un flujo aerodinámico alrededor de distintas geometrías, evaluando su
margen de error respecto a las mediciones experimentales. El fluido será
estudiado a través de la resolución computacional de las ecuaciones de Navier-
Stokes. Dicho cálculo conlleva una resolución de las variables físicas de velocidad
y presión del fluido en función del espacio y del tiempo, de forma que hay que
elegir una forma de discretización espacial y otra temporal. El método numérico
Página 23 de 115
que se ha elegido para la discretización espacial han sido los elementos finitos de
alto orden, que tienen, por un lado, la capacidad para adaptarse a las complejas
geometrías que se emplean a nivel industrial y, por otro, la posibilidad de
incrementar su precisión en función del orden de aproximación polinómica de la
base escogida. A nivel de discretización temporal se va a emplear el método de las
características que va a proporcionar una descripción semi-Lagrangiana donde
cada punto de la discretización espacial es tratado como una partícula fluida que
se mueve en su trayectoria. Este enfoque coincide con el escogido por los códigos
más modernos y exigentes que resuelven flujos turbulentos alrededor de
geometrías complejas. [WICK02]
1.4. Ámbito de Aplicación del proyecto
Los resultados del proyecto, en nuestro caso, serán estudiados para ver la difusión
en un problema de transporte de Euler, pero serán extrapolables a diversos campos
de aplicación.
• En CFD se aplica para la resolución de la ecuación de Navier-Stokes,
aproximando datos tales como la presión, la velocidad y otros semejantes
mediante polinomios de Legendre. Ésta es la aplicación principal del proyecto.
• Este mismo principio es aplicable a otro tipo de problemas de elementos
finitos ,como puede ser la resolución de estructuras u otros problemas similares,
incluso de transferencia de calor.
En nuestro caso, antes de aplicar el método a la mecánica de fluidos, se utilizará
para la resolución de la Ecuación del transporte de Euler en un espacio mallado,
Página 24 de 115
para comprobar la mejora que supone el método de los polinomios de Legendre
de alto orden, en detrimento del método de interpolación Lagrangiano de bajo
orden que se utiliza de forma habitual en este tipo de problemas.
1.5. Implantación Numérica
Todo el desarrollo del proyecto está programado en Fortran 95, lenguaje que es
muy apropiado debido a la sencillez, uso de memoria y asignación dinámica de la
misma, así como por su velocidad de cálculo.
Además del código en Fortran hay otras partes del método de cálculo. En primer
lugar nos encontramos con la generación de la malla, que se han realizado con el
programa GID desarrollado por la Universidad Politécnica de Cataluña y, en
concreto, por el centro internacional de Métodos Numérico en la Ingeniería
( CIMNE ). Este programa está desarrollado pensando en la exportabilidad de sus
resultados, así como con la compatibilidad de entrada de datos. De este programa
hablaremos en el punto 2 de este proyecto. La generación de la malla junto con la
elección de las condiciones de contorno, forma parte de lo que vamos a conocer
como tarea de preproceso, mientras que la visualización de los resultados se
conocerá como tarea de postproceso.
Página 25 de 115
1.6. Organización del presente proyecto
En el resto de la memoria del proyecto se explicarán progresivamente las partes
que componen la herramienta creada para resolver el problema, entrando un poco
más en detalle en los puntos de desarrollo de este estudio. Finalmente, se
comentarán los resultados obtenidos en los cálculos, los cuales se incluirán en los
anejos y en el apartado de cálculos.
En el apartado de cálculos se incluirán todos los problemas de validación de los
resultados obtenidos así como las pruebas iniciales del método y la comparativa
con el método utilizado convencionalmente.
Este proyecto no consta de planos ni de pliego de condiciones por tratarse de un
proyecto de estudio y no de uno convencional.
Página 26 de 115
2.Descripción de los algoritmos desarrollados y los
métodos empleados:
2.1. Mallador GID:
El Mallador GID es un programa desarrollado por el Centro Internacional de
Métodos Numéricos en la Ingeniería (CIMNE) de la Universidad Politécnica de
Cataluña. Este es el programa que realiza el mallado, es decir, la discretización
del dominio de estudio, y también permite definir las condiciones de contorno del
problema a estudiar. El GID permite importar librerías que añaden condiciones de
contorno distintas a las que tiene el programa, para poder usar el GID para
resolución de los problemas con sus peculiaridades en cuanto a condiciones de
contorno.
Dentro de las carpetas que usa el programa hay una llamada “problem types”, en
la que se añaden las librerías disponibles en internet o programadas por el usuario.
En la siguiente figura se aprecia la pantalla con el menú desplegable donde se
selecciona el tipo de problema a usar.
En nuestro caso se usaran condiciones de contorno Dirichlet homogeneas que no
son otras, que obligar a que los nodos situados en los bordes tengan valor cero.
Página 27 de 115
Figura 3: Ejemplo de condiciones de contorno en GID
Esta función se lleva a cabo en la ventana del GID de “conditions”:
Figura 4: Asignación de condiciones (ventana)
Página 28 de 115
Para el solver de la ecuación de Navier-Stokes se imponen condiciones de
velocidades y presiones para determinar el movimiento del fluido en el dominio
del problema.
Figura 5: Condiciones asignadas sobre un ensayo
En la figura 6 se puede ver un ejemplo de definición de volumen a mallar de GID
para un caso de resistencia de materiales
Página 29 de 115
Figura 6: Ejemplo de geometría de GID
2.1.1. Preprocesador de GID
2.1.1.1. Creación de mallas para el estudio
(Generación de malla a través de parámetros)
Para generar una malla sencilla, lo primero que se ha de hacer es crear la
superficie o volumen que se desea estudiar a través de el propio programa o
importándolo de otro programa que sea compatible con el GID. Este puede
importar de programas del tipo CAD tales como el Solid Edge y otros similares,
aunque es capaz de generar sus propias geometrías. Esto se ve representado en la
figura anterior. Pero se explica a continuación con los pasos necesarios para crear
una geometría.
Página 30 de 115
Una malla se caracteriza básicamente por la distancia que existe entre sus nodos, y
en la forma de los elementos que la componen. Estos datos, se introducen una vez
seleccionada la superficie, en las opciones de mallado del propio programa.
En la figura 7 podemos ver tres mallas de elementos triangulares, y de diferente
longitud entre nodos. Tras elegir la longitud entre nodos (propiedad fundamental
de la malla), la malla se genera automáticamente. Adicionalmente tenemos la
oportunidad de refinar esta característica de forma local. Es decir, que podemos
hacer que el mallado sea más fino en unas zonas que en otras.
(A) (B) (C)
Figura 7: Representación de distintas distancias entre nodos en mallado
Como he dicho antes, las mallas pueden tener zonas más densas (mayor número
de nodos por unidad de superficie), geometrías internas, agujeros y otros
elementos, generando el refinamiento local en cuantas zonas de estudio nos haga
falta con la precisión necesaria en cada zona del problema.
En la figura 8 se aprecian unas imágenes a modo de ejemplo de las densidades de
malla, los distintos elementos con los que podemos construir las mallas y de
geometrías internas del espacio de estudio:
Página 31 de 115
Figura 8: Mallado con especificaciones por zonas
Para generar mallas como la que hay de ejemplo en la figura 8, se requiere
cambiar los parámetros del programa en función de la distancia entre nodos cerca
de las geometrías que se indiquen. En este caso hemos querido ver con más
detalle lo que ocurría alrededor de los obstáculos, con lo que le hemos asignado
un valor distinto a la distancia entre nodos.
Con el propio GID, se asigna también, la rapidez de la transición de elementos
con una cierta distancia entre nodos, a otra dada. Con esto se consigue que no
haya cambios bruscos de tamaño de elementos, y se regula la continuidad de la
transición de un tamaño de un elemento a otro.
Página 32 de 115
Figura 9: Transición del tamaño de los elementos en cilindro
Se debe aclarar que la figura 8 es una malla puramente orientativa ya que es una
geometría compleja que no merece ninguna atención a efectos de estudio, pero a
nivel explicativo nos es muy útil porque contiene la mayoría de las condiciones
especiales que se pueden dar en una malla 2D en el programa de mallado GID.
2.1.1.2. Mallado 3D en GID
El mallador GID trabaja también con geometrías 3D. De hecho este tipo de
geometrías se emplearan en la segunda parte del proyecto para resolver los
problemas elegidos como comprobación del método.
Los elementos empleados en 3D son tetraedros de distancia entre vértices
constantes. La distancia entre los vértices de los tetraedros es el equivalente a la
distancia entre nodos de los triángulos en 2D.
Página 33 de 115
Al aumentar la dimensión del problema, no solo se incrementa el número de
nodos de la malla. También se incrementa el cálculo requerido por nodo, y por lo
tanto todos los cálculos se ven afectados.
(A) (B) Figura 10: Elementos básicos de una malla
Para ilustrar un poco este tipo de mallas vemos con un ejemplo de malla de
tetraedros de un prisma rectangular con un hueco esférico central para hacer el
estudio de el flujo alrededor de la esfera que se ve en la figura 10(A). También de
modo ilustrativo presentaremos en el capítulo 3 la manera de visualizar los
resultados mediante el postprocesador para entender como se realiza el análisis
visual de los resultados:
(A)
Página 34 de 115
(B)
Figura 10: Ejemplos de mallado 3D de GID en casos de estudio real
Como se puede ver en la figura 10(B) el GID comparte las herramientas que ya
tenía en 2D referentes al refinamiento del mallado ampliándolo a volúmenes y
usando tetraedros o cubos. Esto es especialmente útil en 3D para optimizar el
número de elementos y por lo tanto el tiempo de cálculo, ya que en 3D el número
de nodos y elementos aumenta significativamente.
Como resultado podemos conseguir resultados detallados en función de la
importancia de la zona del dominio de estudio. Así conseguimos resultados muy
detallados localmente sin aumentar el número de elementos de toda la malla y por
lo tanto no añadiendo más tiempo de computación.
Página 35 de 115
2.1.2. Postprocesador del GID:
2.1.2.1. Postprocesado 2D
El postprocesado del gid es válido solo para aquellos casos en los que los valores
que se quieren observar gráficamente se encuentran el los mismos puntos que ha
generado el preprocesador pertenecientes a la malla, por eso esto no valdrá para el
estudio de los resultados de la ecuación de transporte en el caso de usar el método
de los polinomios de Legendre, ya que no usa como datos los puntos de la malla
directamente sino que lo que se estudia son los puntos de Gauss de cada elemento
como se explicará más adelante.
Figura 11: Postproceso de GID
Página 36 de 115
El Postprocesador de GID tiene diversas herramientas útiles para el estudio
gráfico de los resultados obtenidos como puede ser la generación automática de
vídeos en distintos formatos o las gráficas con valores máximos y mínimos en la
escala de colores de cada tiempo de la solución.
Para ilustrar el tipo de representaciones gráficas que genera GID adjunto
fotografías tomadas de los resultados de estudios en 2D tanto de la Ecuación de
transporte de Euler, como de la resolución de la ecuación de Navier-Stokes para
casos bidimensionales:
(A)
(B)Figura 12: Imagen de postproceso de GID en 2D
Página 37 de 115
2.1.2.2. Postprocesado 3D:
La dinámica y el tratamiento es muy similar al de 2D con la peculiaridad de que
en 3D lo que interesa es ver lo que pasa dentro del volumen.
GID permite al usuario realizar diversos cortes en el volumen para que con
dichos cortes se pueda entender la solución en espacios bidimensionales donde lo
que se ve es el valor de las diferentes variables en los puntos del dominio de
estudios contenidos en el plano de corte. Esto tiene el inconveniente de que los
puntos de estudio no tienen porqué estar contenidos en dicho plano por lo que lo
que hace el programa es una proyección de los valores de los puntos que están
detrás del plano de corte a dicho plano. Esto puede tener como consecuencia una
solución que a primera vista tiene zonas irregulares e incoherentes con la
geometría del problema, pero en realidad esto lo que nos indica es que está
tomando un valor que no está cerca del plano.
En nuestro caso en particular, al estar compuesta la malla 3D por tetraedros lo
que sucede es que los picos que se ven en el postprocesado son las aristas de algún
pico del tetraedro que queda muy alejado de el plano de corte por el que se está
mirando.
El problema generado por el corte de planos para poder estudiar la solución
gráficamente se resuelve modelando la malla de tal forma que la superficie de
Página 38 de 115
corte represente una superficie para el mallador que ha de representar y mallar
como superficie completa con lo que en este caso los puntos si que se encuentran
en el plano de corte. El inconveniente principal de este método es la
complicación del diseño del modelo que se va a mallar, ya que hará falta que
dicha superficie sea una separación real de volumenes de mallado aumentando la
complejidad de la malla. Esto puede generar problemas e incluso obligarnos a
cambiar el algoritmo de mallado por otro más lento, o quizás menos preciso pero
que tenga más facilidad para cumplir un número determinado de condiciones
impuestas como puede ser el que los puntos estén contenidos en un plano que ya
venga definido anteriormente.
Como ejemplo en la figura 13 se observa un plano del problema de la esfera en el
que hubo que plantear este requisito de geometría para que se viera bien el
resultado el el plano de corte con la esfera:
Figura 13: Mallado con varios volúmenes para cortes
Como se puede observar en la parte inferior de la Figura 5, se ha realizado un
mallado con un corte de tal forma que se pueda estudiar en detalle lo que sucede
Página 39 de 115
en el plano de corte con el diámetro de la esfera para poder realizar un estudio de
la solución un poco más detallado en esta zona como puede ser las variaciones de
velocidad y de presión en el fluido en la zona más comprometida del problema.
Este mismo principio nos vale para múltiples cortes si hace falta, en un mismo
problema analizar resultados de diversas zonas, pero esto ha de ser valorado con
más detalle antes de realizar el mallado teniendo en cuenta intuitivamente donde
van a estar las zonas más interesantes para su estudio.
En la figura 14 se observa un pequeño ejemplo de los resultados pintados en un
plano del postprocesador de 3D del GID:
Figura 14: Postproceso GID 3D
Los resultados de la figura 6 son de un caso en el que se ha empleado la filosofía
de la definición de la malla pensando en el corte de estudio que se va a hacer con
lo que como se observa en la figura, parece que se trata de una malla de 2D, y lo
Página 40 de 115
único que nos dice que lo que estamos viendo es un volumen de estudio es el
hecho de que la figura esta ligeramente girada y presenta unas sombras que son la
profundidad del volumen.
Página 41 de 115
3. Programa para resolver la ecuación de
transporte puro de Euler en bajo orden para
comprobar la difusión matemática del problema:
3.1. Fundamentos de la ecuación del transporte puro de Euler:
A la hora de resolver un problema de mecánica de fluidos, existen dos enfoques
diferentes de la cinemática del problema. El primero es un enfoque según la
descripción euleriana del medio, que describe un fluido de acuerdo a la teoría de
campos. La segunda es la descripción lagrangiana del movimiento que consiste en
seguir la trayectoria de una partícula fluida a lo largo del espacio. Cada una de
estas partículas se rigen por las leyes de la mecánica clásica.
La ecuación del transporte puro en el caso de fluidos y en concreto de nuestro
CFD se resuelve a través del enfoque Lagrangiano.
Este enfoque, en el caso del transporte homogéneo, lo que hace es transportar las
partículas de forma que conserven las propiedades que tenían en su origen.
De este modo vemos que la parte matemática importante es el cálculo del punto
de procedencia de un punto dado. A ese punto se le llama pie de las
características. Ese pie de la característica y el punto en el instante de tiempo
Página 42 de 115
actual están separados por un intervalo de tiempo y por lo tanto por un vector
desplazamiento como se ve en la figura 15
Figura 15: Transporte de un punto (Enfoque lagrangiano)
Donde Xi es la posición inicial de la partícula en un instante de tiempo t0 dado.
Tras un incremento de tiempo Δt pasa a la posición con lo que el vector
desplazamiento se puede definir como α i
α i
= xi− Xii
Al llevar esto a un nivel práctico, se ve que consiste en mover un cuerpo (función
en el espacio) por un dominio geométrico de forma que el cuerpo conserve sus
propiedades con el tiempo.
Página 43 de 115
El dominio para el problema, será un cuadrado mallado con el programa GID
explicado en el capítulo 2.
Aunque los puntos conocidos sean los de la malla, lo que interesa conocer es el
valor de la función en los puntos xi
pasado un intervalo de tiempo Δt . Pero
además los datos de partida son tan solo el campo de velocidades y el valor de la
función en los mismos puntos que la solución xi
pero un intervalo de tiempo
antes .
Aquí es donde entra en juego lo que se ha llamado en el título el bajo orden. Una
vez calculada la posición del punto (nodo) Xi
en el instante de tiempo anterior ,
su valor se calculará interpolando con los datos que se tienen que no son otros que
los valores de la función (cuerpo) en el instante de tiempo anterior al de estudio.
El cálculo del que se habla se realiza a través de un método de interpolación de
bajo orden (segundo orden) y el valor hallado se asigna como nuevo valor de la
función en el punto (nodo) destino xi
. Esta operación se realizará para cada uno
de los nodos de la malla.
Para llevar a cabo todos estos procesos en simulación en el ordenador, se han
tenido que seguir los pasos que se detallan en los apartados siguientes, partiendo
de subrutinas predefinidas o creadas para el efecto deseado. Estos puntos
Página 44 de 115
fundamentales de la realización del estudio y el programa se encuentran escritos a
continuación por temas:
3.2. Generación de la malla en GID y generación de los archivos de datos
necesarios para el problema:
La malla se genera de forma que la distancia entre los nodos sea
aproximadamente la misma o menor que el desplazamiento máximo que se va a
dar en el problema de la ecuación del transporte puro. De hecho, en las
conclusiones se podrá observar la consecuencia de la variación del tamaño de
malla en la convergencia del problema.
La ecuación que representa el transporte puro, a parte de la explicación del punto
3.1. es la siguiente:
DcDt
= 0 Ecuación de Transporte puro
Donde c es el cuerpo o función transportado, y t es el tiempo. De este modo lo
que quiere decir la ecuación es que la derivada sustancial del cuerpo en función
del tiempo es cero, o lo que es lo mismo, que la forma del cuerpo en cada
partícula se mantiene constante.
Tras generar la malla, se generan dos archivos necesarios como entrada del
programa, que se forman con una opción especial de GID que se denomina
Página 45 de 115
“problem type” a la que, se le pueden añadir tipos de problemas para que genere
los archivos con las variables.
Figura 16: Carpeta de “Problem type”
En nuest ro caso, par t imos de un “problem type” denominado
“Homogeneus_transport” ya adaptado a las necesidades de datos que requiere
nuestro programa. La estructura de los archivos generados es la siguiente:
• Archivo mesh-data.txt:
Este archivo lleva la información de las coordenadas físicas de los nodos de la
malla generada así como las posiciones de dichos nodos en sus correspondientes
elementos, con la siguiente estructura:
Página 46 de 115
Figura 17: Archivo tipo “mesh-data”Bloque 1
Cabecera: [Dimensión del problema] [Número de nodos del problema]
[Numero de nodo] [coordenadas de cada nodo]
Bloque 2
Cabecera [Nodos por elemento] [número de elementos en la malla]
[Número de elemento] [Elementos que lo forman]
Página 47 de 115
• Archivo boundary.txt:
Este archivo no es estrictamente necesario ya que se usa para otros casos en los
que es más crítica y más común la situación en la que el punto en el instante
anterior de tiempo se sale del espacio de estudio. Este archivo se genera como
resultado de una opción del GID denominada “conditions” que se encuentra en el
menú de data del preprocesador explicado anteriormente.
Figura 18: Ejemplo archivo boundary
Su estructura es más sencilla, si cabe, que la que tenía el archivo mesh-data.txt,
simplemente se trata de una enumeración en forma de columna de una serie de
nodos, y a su derecha el valor que tienen dichos nodos asignados.
Página 48 de 115
Como su propio nombre indica, este archivo lo que proporciona son las
condiciones de contorno del problema. En el caso de la ecuación de transporte
puro, se han fijado para que la función en los bordes del espacio de estudio
(malla) valga cero indefinidamente, independientemente de lo que suceda con su
pie de la característica.
Figura 19: Movimiento de los nodos de un elemento (pie de las características)
Una vez realizada la malla y generados los archivos explicados anteriormente,
estos se introducen al programa, basado en código Fortran 95 desarrollado por el
alumno teniendo como referencia [RODR02]. De dicha bibliografía se ha
extraído la metodología pero no las subrutinas. Algunas de las partes del programa
han sido desarrolladas anteriormente con lo que en el presente documento no es
necesario desarrollarlas más que teóricamente, aunque en la programación se han
realizado independientemente con los mismos principios. A continuación y en los
Página 49 de 115
siguientes puntos lo que se explica es el funcionamiento de dichas subrutinas que
constituyen el programa desarrollado para el estudio de la ecuación de transporte
puro de bajo orden.
3.3. Cálculo del Pie de las características:
Esta es una parte fundamental del programa ya que de ella depende en cierta
medida la precisión del problema. Cierto es que en el presente estudio no se trata
de ver que repercusión tiene esto en la difusión matemática de la función en la
resolución de la ecuación de transporte puro, no obstante es importante explicarla.
En el caso de bajo orden el programa hace el siguiente cálculo:
Figura 20: Desplazamiento del punto y forma del vector alpha
Se conoce la velocidad, o el campo de velocidades en el espacio del problema, y
en concreto en los nodos. Aunque se conocen estos datos, el desplazamiento de un
punto, sigue la trayectoria que marca la velocidad solo si lo hace de manera
continua, es decir, si se está estudiando el problema analíticamente.
Página 50 de 115
Como nuestro estudio es numérico y por lo tanto discretizado tanto en el espacio
como en el tiempo, el cálculo del vector desplazamiento se llevará a cabo de la
siguiente forma:
dXdt(x,tn+1;t) = u(X(x,tn+1;t),t)
X(x,tn+1;tn+1) = x
⎧⎨⎪
⎩⎪
⎫⎬⎪
⎭⎪
En esta fórmula X(x,tn+1;t) representa la posición en el instante t de una partícula
que alcanza el punto x en el instante tn+1
u(X(x,tn+1;t),t) sería entonces la trayectoria de la partícula desde su origen o pie
de la característica hasta su posición en el instante tn+1 .
Además de esta condición, se ha de cumplir que:
X(x,tn+1;tn ) = x − u(X(x,tn+1;t) ⋅ t)dttn
tn+1
∫αi
Aquí es cuando coge sentido el nombre de pie de las características, que que se ve
que es el punto de procedencia de X del que se heredan las características. En
nuestro caso, el valor de la función.
Para llegar a la posición del pié de las características, solo faltaría calcular la
integral que a partir de ahora llamaremos αi
Página 51 de 115
Este cálculo se realiza a través de la aproximación de la integral por la regla del
punto medio.
α i = xi − X(x,tn+1;tn )
α i = Δt ⋅u(Xi (xi ,tn+1;tn+1/2 ),tn+1/2 ) + 0(Δt3)
Siendo Xi (xi ,tn+1;tn+1/2 ) el punto medio del arco que une los puntos
(xi ,tn+1) y (Xi (xi ,tn+1;tn ),tn )
extraemos las siguientes fórmulas:
Xi xi ,tn+1;tn+1/2( ) = xi − α i
2+ 0 Δt2( )
y
u Xi xi ,tn+1;tn+1/2( ),tn+1/2( ) = u xi −12α i ,tn+1/2
⎛⎝⎜
⎞⎠⎟+ 0 Δt 2( )
Tras igualar estas dos ecuaciones se obtiene la siguiente fórmula:
α i = Δt ⋅u(xi −12α i ,tn+1/2 )
De esta fórmula quedaría por determinar el cálculo de “u” en función de alpha
para poder implementar a un código.
Página 52 de 115
Con el fin de calcular la velocidad en el punto medio, se empleará la fórmula de
Adams-Bashforth. En este caso de orden 1.
u(x,tn+1/2 ) =32u(x,tn ) −
12u(x,tn+1) + 0(Δt
2 )
finalmente esto se traduce unas fórmulas de código que dependen del valor actual
de α en la iteración, el valor anterior de α y de la diferencia entre ambos que
determinará el error cometido.
α i0 = Δt ⋅
32u(xi ,tn ) −
12u(xi ,tn−1)
⎛⎝⎜
⎞⎠⎟
α ik+1( ) = Δt ⋅
32u(xi −
12α i(k ),tn ) −
12u(xi −
12α i(k ),tn−1)
⎛⎝⎜
⎞⎠⎟
teniendo en cuenta que las velocidades en los nodos si que son conocidas, de aquí
a través de un método iterativo se extrae el valor aproximado de α
.
Una vez encontrado ese punto, se considera hallado el pie de la característica, y se
puede calcular el valor de la función en dicho punto para asignárselo al nodo que
se estaba estudiando.
Página 53 de 115
3.4. Cálculo de el elemento al que pertenece el pie de las características
Esta subrutina que es necesaria para crear una relación que nos permita determinar
el valor de la función en el pie de la característica así como de comprobar que el
pie de la característica está bien calculado se basa en el principio de movilidad de
elemento a elemento, para lo que nos hace falta definir un vector de los elementos
vecinos entre ellos. Por eso se explicará primero esta subrutina antes de explicar el
método.
3.4.1. Cálculo de los elementos vecinos
El cálculo de un vector que dé los elementos vecinos, es decir, lindantes a un
elemento dado, se basa en que en él, existen tantas fronteras, y por lo tanto
elementos vecinos, como lados tenga la forma de la malla. En este caso los
elementos que se usan son triángulos con lo que solo puede haber tres elementos
vecinos por cada elemento de la malla.
Memoria -32-
El algoritmo iterativo SLALG (Search and Locate ALGorithm) se emplea para buscar y
localizar un punto (x,y) dado dentro de una malla y encontrar qué elemento lo contiene
[ALLI2]. Su uso está enmarcado generalmente en el cálculo del pie de las características: a
lo largo de este proceso los nodos se desplazan siguiendo la curva característica de la
velocidad, pudiendo traspasar los límites del elemento que originalmente lo contenía. Para
saber qué elemento los contiene en su nueva ubicación es necesario aplicar este método de
búsqueda.
Tras la aplicación del método de las características un nodo se desplaza
hasta otra ubicación en un elemento distinto.
Figura 21: Elementos con nodos comunes
Como se puede ver en la figura 21, un elemento dado, en este caso el elemento
“0”, tiene solo tres elementos vecinos: “1”,”2” y “3”. El elemento “0” consta a su
vez de tres nodos que lo forman: “A”,”B” y “C”.
Página 54 de 115
01
2
3
A
BC
cualquiera de los elementos vecinos a “0” comparte dos de estos nodos con él. De
este modo podemos observar que “1” comparte con “0” los nodos “A” y C”, y así
pasa lo mismo con “2” y con “3”.
Por otro lado, se ve en el dibujo, que en ningún caso habrá dos elementos vecinos
que compartan los mismos nodos con “0”, con lo que se pueden diferenciar entre
si por este hecho.
Si a esto añadimos que el archivo mesh-data.txt contiene información acerca de
los nodos que componen cada elemento, obtenemos un vector (matriz) con los
elementos vecinos a uno dado.
Figura 22: Relación de nodos de cada elemento (caso cuadrático)
Página 55 de 115
Como los nodos se compartirán de 2 a 2 con los elementos vecinos, y como los
nodos estarán ordenados de acuerdo al archivo mesh-data.txt al principio, se
ordenarán los elementos vecinos siempre en el mismo orden. Es decir, los nodos
leidos en mesh-data.txt están ordenados de manera que “A” es el primero, “B” es
el segundo, y “C” es el tercero.
De este modo, el primer elemento vecino será el que comparta con “0” los nodos
“A” y “C”. El segundo elemento vecino compartirá con “0” los nodos “A” y
“B”, y por último, el tercero compartirá los nodos “B” y “C”
En este caso coincide con el nombre de los nodos. Pero se adjunta una tabla
explicativa.
Elemento Vecino Nodo en común 1 Nodo en común 21 A C2 A B3 B C
Figura 23: Tabla de pertenencia
Una vez que se llega a este punto ya se conocen los elementos vecinos. Esta
subrutina estará al principio del programa ya que solo es necesario ejecutarla una
vez y los datos quedan guardados.
3.4.2. Paso del triángulo físico a coordenadas locales.
El método de aproximación Lagrangiano consiste en expresar la función como
suma de polinomios.
Página 56 de 115
Como se explicará más adelante, estos polinomios constituyen una base del
espacio con los que aproximar la función. Estos polinomios, se definen solo a
partir de los puntos que se usan para calcular la aproximación de la función. La
estructura consiste en unos polinomios que multiplicados por unos coeficientes
generan la aproximación.
En el caso de la aproximación lagrangiana los coeficientes son los valores de la
función en los nodos, y los puntos de los que se conoce el valor de la función son
los nodos de la malla.
Estos polinomios, antes de ser multiplicados por los coeficientes, se definene a
través de las coordenadas de los nodos en cada elemento. Para que sea más rápido
computacionalmente conviene que estos polinomios sean siempre los mismos,
con lo que se ahorra el cálculo de los mismos para cada elemento y se reduce a
una subrutina que los calcule. Para que esto sea posible, lo que ha de suceder es
que las coordenadas de los nodos sean siempre las mismas al aproximar.
Es por este motivo por el que antes de realizar la aproximación del valor de la
función en un punto de un elemento (el pie de las características en el elemento de
origen), el elemento en estudio y el punto a aproximar, se convierten a
coordenadas locales.
Estas coordenadas tienen la peculiaridad de que las coordenadas de los nodos son
siempre las mismas en estas coordenadas, y lo único que se calcula cada vez, es la
posición en coordenadas locales del punto a aproximar.
Página 57 de 115
Para pasar de coordenadas reales a coordenadas locales, se realiza la siguiente
operación:
Figura 24: Cambio de coordenadas reales a locales
Se genera una aplicación lineal para cada elemento, cumpliendo las condiciones
siguientes:
x1, y1( ) ⋅ a11 a12a21 a22
⎛⎝⎜
⎞⎠⎟=
r1s1
⎛⎝⎜
⎞⎠⎟=00
⎛⎝⎜
⎞⎠⎟
x2 , y2( ) ⋅ a11 a12a21 a22
⎛⎝⎜
⎞⎠⎟=
r2s2
⎛⎝⎜
⎞⎠⎟=10
⎛⎝⎜
⎞⎠⎟
x3, y3( ) ⋅ a11 a12a21 a22
⎛⎝⎜
⎞⎠⎟=
r3s3
⎛⎝⎜
⎞⎠⎟=01
⎛⎝⎜
⎞⎠⎟
siendo “r” y “s” la posición en coordenadas locales de cada uno de los puntos.
Una vez calculada la matriz de la aplicación lineal para el elemento en estudio, se
calculan las coordenadas locales del pie de la característica que se está
aproximando.
Página 58 de 115
xp , yp( ) ⋅ a11 a12a21 a22
⎛⎝⎜
⎞⎠⎟=
rpsp
⎛⎝⎜
⎞⎠⎟
Esta transformación es muy útil también para determinar directamente si un punto
dado se encuentra en un determinado elemento, ya que las condiciones que ha de
cumplir el punto para pertenecer al elemento son sencillos y permiten determinar
en caso de respuesta negativa, el elemento vecino más cercano al punto que se
busca.
La subrutina de búsqueda del elemento al que pertenece el pie de las
características comprueba una serie de desigualdades para determinar si el punto
se encuentra en el elemento en estudio
rp ≥ 0sp ≥ 0rp + sp ≤ 1
La primera indica si el elemento se encuentra más a la izquierda del elemento, la
segunda comprueba si se encuentra por debajo del elemento, y la tercera
determina si está por encima de la arista entre los nodos locales 2 y 3.
Página 59 de 115
Figura 25: posibles posiciones relativas del punto
una vez determinada la no pertenencia al elemento del pie de las características, el
siguiente paso consiste en determinar en cual de los tres elementos vecinos seguir
buscando. Para ello, con las mismas desigualdades tomadas para comprobar la
pertenencia, se estudia qué desigualdad está más lejos de ser cumplida.
Para que quede más claro, las desigualdades que se comparan y la forma de
compararlas es la siguiente:
Página 60 de 115
Figura 26: Subrutina del programa que comprueba las desigualdades
3.4.3. Cálculo del elemento al que pertenece el pie de las características
Con estas herramientas descritas en los puntos anteriores, para encontrar el
elemento al que pertenece el pie de las características, lo único que sucede es que
se ha de seguir un proceso iterativo que, en el caso de que el elemento de estudio
sea en el que se encuentra el pie de la característica, termine y rellene una variable
diciendo qué elemento es éste.
Página 61 de 115
En el caso de este programa, esta variable se denomina:
NE%elem([numero de nodo])
Las variables que se usan para comparar, que se pueden ver en la figura 27 son :
XREF(:,:)
En el caso de que no lo sea, se determina el elemento vecino en el que se ha de
seguir buscando a través de el máximo de los valores antes planteados, y después
se repite exactamente el mismo proceso que se ha hecho para el primer elemento
de la búsqueda:
1. Se pasa el punto a coordenadas locales del nuevo elemento y se comprueba
que cumple las desigualdades de pertenencia.
2. El proceso sigue hasta que se encuentra el elemento de pertenencia.
Página 62 de 115
Figura 27: Diagrama de búsqueda del elemento
Solo existe una excepción en la que se deja de buscar, y en el caso de que se
determine que el pie de la característica se encuentre fuera del dominio de estudio
(malla). En este caso, el valor del pie de la característica no tiene importancia, y se
le asigna a la función el valor de las condiciones de contorno, que en nuestro caso
son iguales a cero.
Página 63 de 115
Figura 28: Proceso de búsqueda del elemento del pie de las características
3.5. Cálculo del valor de la función en el pie de las características
Una vez se conocen tanto la posición física del pie de las características como el
elemento en el que se encuentra, ya se dispone de información suficiente para,
interpolando con los valores de los nodos pertenecientes al elemento en el que se
encuentra el pie de la característica, hallar el valor de la función en el punto.
Esto se realiza a través de una interpolación de segundo orden, ya que en este caso
la malla será siempre cuadrática para que la aproximación sea suficientemente
buena para comparar con la de alto orden conseguida con los polinomios de
Legendre.
La interpolación se realiza en coordenadas locales multiplicando el valor de cada
nodo de alrededor por unos coeficientes y sumando el resultado.
Página 64 de 115
Los coeficientes son el resultado de sustituir la “r” y la “s” de las coordenadas del
pie de las características en los polinomios de Lagrange que se han tomado como
base. Como ejemplo, en la figura 30 se puede observar la parte de la subrutina en
la que se asignan los coeficientes, sabiendo que las coordenadas locales del pie de
las características de expresa como “r y s”.
Figura 29: Código de asignación de factores
En el siguiente capítulo, se explicará con más detalle el funcionamiento de la
interpolación lagrangiana.
Página 65 de 115
3.6. Funcionamiento completo del programa
Todas las subrutinas descritas anteriormente son las que tienen una importancia
más relevante en la ejecución del programa. A pesar de esto, quedarían cosas por
contar, como la generación de condiciones iniciales y el campo de velocidades en
el dominio de estudio.
Todos estos procesos de cálculo se encadenan para poder obtener el siguiente
instante de tiempo y, a su vez, esta operación se repetirá tantas veces como se
considere oportuno para estudiar los resultados pertinentes con respecto al tiempo.
Como resultado, el programa devuelve un archivo que el GID interpreta y
representa gráficamente de forma que se pueden analizar los datos en el
postprocesador, así como la difusión por vuelta, que es el dato que se utilizará en
el estudio final para comparar los distintos métodos.
Página 66 de 115
4. Programa para resolver la ecuación de
transporte puro de Euler en alto orden a través del
método de los polinomios de Legendre:
4.1. Explicación general del programa
El programa que se diseñó para la resolución de la ecuación de transporte con el
método de bajo orden sirve como base para éste segundo que es con el que se
pretende demostrar que la difusión matemática es menor en este caso, y para
determinar qué orden de polinomio es necesario para adquirir unos resultados
mejores o equivalentes a la interpolación de bajo orden.
La explicación de los métodos matemáticos usados se encuentra en un capítulo
posterior. Aquí solo se hablará de la programación y de las diferencias
fundamentales con el programa de bajo orden.
Este programa comparte con el anterior tanto la estructura general como algunas
de las subrutinas programadas. Sobre todo, la búsqueda del pie de la característica
es un proceso que es necesario en cualquier planteamiento de la ecuación del
transporte puro. La única diferencia es que ha habido que adaptarlo para las
variables definidas en el código, ya que estas tienen una estructura de
programación diferente.
Página 67 de 115
Igual que comparte la subrutina de búsqueda del pie de la característica, comparte
también todas las subrutinas relacionadas con la escritura o la lectura de los
archivos con los que interactúa el programa.
4.2. Estructura General del Programa
El programa consta fundamentalmente de cuatro partes que le diferencian del
método de bajo orden.
La primera parte del programa consiste en el diseño de una malla para alto orden.
Los polinomios de Legendre necesitan un número de puntos igual a el cuadrado
del orden empleado. Estos puntos se distribuirán en el interior de cada elemento
de forma que optimicen la aproximación del método. Por este motivo se han
elegido los puntos de Gauss que se desarrollarán en el apartado que habla de la
generación de la malla.
En segundo lugar, una vez generada la malla, se procederá a la construcción de los
polinomios de Legendre bidimensionales como producto tensorial de los
polinomios de Legendre de dimensión uno. Estos se formarán con el producto
escalar de los polinomios de Legendre para una dimensión, generando así una
matriz equivalente a los polinomios base de la interpolación de Lagrange.
Llegado este punto, están definidas las herramientas iniciales para la aplicación
del problema, y faltaría solo la aplicación o transformación que pasa de la función
expresada en los puntos de Gauss de la malla como función real interpolada, a una
Página 68 de 115
serie de coeficientes que son el equivalente a expresar la función en todo el
dominio en el espacio de los polinomios de Legendre.
Es necesaria también una subrutina que haga el cambio inverso, es decir, que
transforme los coeficientes en valores físicos para cualquier punto de el dominio
del problema.
Todas estas subrutinas serán definidas y explicadas más adelante.
Para desarrollar el código, se programó en primer lugar una aplicación que
realizaba solo los pasos específicos de este método, es decir, que generaba la
malla de alto orden, proyectaba el espacio real sobre el de los polinomios de
Legendre, y posteriormente aproximaba la función volviendo a proyectar, pero
esta vez, desde el espacio de los polinomios de Legendre a el espacio físico. Si
partiéramos de este programa, y del programa ya desarrollado de la interpolación
de Lagrange, la estructura de unión de ambos programas, sería equivalente a lo
indicado en la figura 31. Aunque esta linea de desarrollo no prosperó por
problemas de compatibilidad entre programas, esta figura ilustra muy bien el
resultado final, y la estructura del programa final.
Página 69 de 115
Figura 30: Formación del programa a partir de 2 módulos
4.3. Generación de la malla definitiva:
Para entender la malla usada para alto orden, es necesario comprender lo que son
los puntos de Gauss. Estos puntos son los productos escalares de los ceros de los
polinomios de Legendre. Con lo que no son un concepto unidimensional sino más
bien bidimensional. En todo caso, se parte de los ceros de los polinomios de
Legendre.
Los puntos de Gauss son una alternativa a la disposición equidistante de los
puntos de la malla para optimizar la aproximación mediante unos puntos ligados a
los polinomios de la base interpolante.
Página 70 de 115
A esta generación de puntos del mallado, se le denomina cuadratura de Gauss, y
está definida en el intervalo [-1,1], y se define de la siguiente manera:
donde N es el número de puntos de Gauss, los wi son los pesos y las xi
son los puntos de Gauss.
Los polinomios de Legendre de los que son raíces los pintos de Gauss de una
dimensión, tiene la siguiente estructura:
p0 x( ) = 1p1 x( ) = x
p2 x( ) = 3x2 −1( )2
…
pk+1 x( ) = 2k +1( ) ⋅ x ⋅ pk x( ) − k ⋅ pk−1 x( )⎡⎣ ⎤⎦k +1( )
Siempre definidos en el intervalo [-1,1] de la cuadratura de Gauss.
Los polinomios de Legendre se explicarán más adelante, pero a modo de ejemplo,
se añaden a continuación los primeros órdenes para que se puedan entender en
una dimensión:
Página 71 de 115
Figura 31: Representación de los polinomios de Legendre de orden 1 a orden 8
Para los puntos de Gauss se tomarán los ceros tan solo del polinomio de orden N
modificado para el problema en particular de la ecuación de transporte puro.
Como ejemplo, en la figura 32 se observa la distribución de los puntos de Gauss
para el caso de N=7 en un cuadrado de dimensiones [-1,1]x[-1,1]
Puntos de Gauss
-1,143
-0,857
-0,571
-0,286
0
0,286
0,571
0,857
-1,143 -0,714 -0,286 0 0,286 0,571 0,857
Situación geométrica de los puntos de Gauss en 2D
Figura 32: Distribución de los puntos de Gauss en 2D para N=7
Página 72 de 115
Se puede comprobar que los valores de x y de y de la cuadrícula que termina
siendo la distribución 2D, provienen de los ceros del polinomio de Legendre de
orden 7. Este hecho se aprecia en la figura 33 donde se pueden ver los ceros de
dicho polinomio.
Figura 33: Polinomio de Legendre de orden 7 (N=7)
Tras calcular los puntos de Gauss para un elemento cuadrado, hemos de recordar
que donde se necesita conocer la distribución de los puntos de Gauss es en el
triángulo de referencia, ya que será en este donde se realice la aproximación.
Página 73 de 115
4.4. Matriz de masa de el espacio de los polinomios de Legendre
La parte matemática se explicará en el apartado de fundamentos matemáticos de
este mismo documento (capítulo 5) . Aquí se explica brevemente el
funcionamiento del programa para generar dicha matriz.
La subrutina en cuestión tiene dos funciones principales:
1) Formar los polinomios de Legendre para todos los órdenes iguales o inferiores
al fijado en el programa (se puede cambiar en la programación y que el
programa haga los cambios en los vectores pertinentes).
2) Formar la matriz de 2D a través del producto tensorial de los polinomios en las
combinaciones que se consideran adecuadas para el método.
La matriz de masa, es, el equivalente a la aplicación lineal del método de
interpolación lagrangiano. Su función es la de proyectar sobre el espacio de los
polinomios de Legendre, la función, o lo que es lo mismo, generar la
aproximación en dicho espacio a través de los valores conocidos de la función real
en los puntos de Gauss.
Matemáticamente, la matriz relaciona los coeficientes de Legendre con el valor de
la función en un punto. Esta matriz depende de las coordenadas del punto, con lo
que la ecuación queda de la siguiente manera:
f x, y( ) = f x, y( )i=1
n
∑ M ⋅ f = b
Donde f x, y( ) es el valor de la función aproximada, M = φ es la matriz de
masa, f es el valor en el espacio real e los puntos conocidos, y b es lo que se
denomina Right hand side (rhs). Este rhs, no es otro que el vector que contiene los
Página 74 de 115
coeficientes de Legendre. Estos coeficientes son la proyección sobre el espacio de
los polinomios de Legendre de la aproximación de la función, con lo que para
aproximar el valor de la función en un punto dado, se ha de invertir el proceso, es
decir, partiendo del valor de b se obtiene f
De este modo, el problema inverso queda de la siguiente manera:
f = M −1 ⋅b
De esta forma si extendemos la ecuación tenemos:
f1
f n
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟=
m11 … m1n
mn1 mnn
⎛
⎝
⎜⎜
⎞
⎠
⎟⎟
−1
⋅b1
bn
⎛
⎝
⎜⎜
⎞
⎠
⎟⎟
4.5. Proyección del espacio Real al espacio de los polinomios de Legendre: La
subrutina “fromPhys2Leg”
Como su propio nombre indica, la utilidad de esta subrutina es la de “proyectar”
en el espacio de los polinomios de Legendre la función que se desea aproximar.
Lo que se consigue con este método es pasar de una función definida en puntos
(los puntos de Gauss en nuestro caso) a una función definida por coeficientes
válida para cualquier punto de el espacio del problema.
Página 75 de 115
La difusión matemática que se da en la ecuación de transporte puro ocurre
precisamente porque la función está discretizada en el dominio. Además el
transporte implica que en un punto de Gauss en el instante de tiempo tn+1 se
tengan que aproximar su valor a partir de los valores conocidos en el instante de
tiempo tn que no son otros más que los valores de la función en los puntos de
Gauss en el instante de tiempo
Así como con la interpolación Lagrangiana los coeficientes de Lagrange son los
mismos valores de la aproximación en los nodos (que coincide con el valor
aproximado anterior), en el caso de los polinomios de Legendre no es así.
Los coeficientes que se usan, son los que anteriormente hemos denominado rhs,
que a efectos prácticos son el vector b de las ecuaciones antes descritas.
Partiendo de la malla de puntos de Gauss y de la matriz de masa, la subrutina
calcula la ecuación:
M ⋅ f = b
Donde la salida de la ecuación es el vector b de los coeficientes de Legendre. Para
ello, como se ha explicado anteriormente, parte de la matriz de masas (aplicación
lineal del espacio real al de los polinomios de Legendre) y los valores de la
función en los puntos de Gauss.
Página 76 de 115
Al igual que en el caso de Lagrange, esto se lleva a cabo en coordenadas locales,
de forma que los polinomios de Legendre sean siempre los mismos, que además
resultan ser los definidos en el intervalo [-1,1].
Una vez terminado este proceso, los coeficientes f contienen información para
aproximar cualquier punto en el dominio de la función.
f1
f n
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟= Coeficientes de Legendre
4.6. Proyección del espacio de los polinomios de Legendre al espacio Real: La
subrutina “fromLeg2Phys”
Esta subrutina es la segunda parte de la transformación. En esta, se recupera el
valor de la función en el instante de tiempo tn en los pies de las características,
para asignar su valor a los puntos de Gauss del instante de tiempo tn+1 .
La peculiaridad de la subrutina reside en el hecho de que los puntos en los que se
quiere calcular el valor de la función no son puntos conocidos, sino previamente
calculados en la función feetcalc encargada de la búsqueda de los pies de las
características.
Página 77 de 115
Como entradas toma los valores de los pies de las características pero en
coordenadas locales del triángulo de referencia junto con el elemento en el que se
encuentre el pie de la característica.
El primer paso es pasar estas coordenadas a las coordenadas que usa el método de
los polinomios de Legendre, que es el cuadrado de referencia que va de
[-1,1]x[-1,1], en el que se basa también la generación de los puntos de Gauss,
aunque estos luego se reduzcan a la forma triangular debido a la estructura de la
malla que nos interesa emplear.
Una vez se cambian las coordenadas a este entorno, con los coeficientes de
Legendre, la matriz de masa y las coordenadas locales del pie de característica se
calcula el valor aproximado de la función en ese punto, para “transportarlo al
punto de Gauss en el instante de tiempo tn+1 .
Página 78 de 115
como resultado, la estructura de todo el programa es a siguiente:
Figura 34: Esquema general del programa de alto orden
Página 79 de 115
5. Métodos matemáticos de aproximación
empleados:
5.1. Introducción:
La finalidad de este proyecto consiste en estudiar si empleando el método de los
polinomios de Legendre se mejora la calidad de los datos aproximados en la
resolución de la ecuación de transporte puro. Una vez se haya comprobado, estos
resultados serán aplicables a otros problemas, como puede ser la ecuación de
Navier-Stokes, que es para la que se realiza este estudio.
Los métodos empleados son dos: el primero es el método de interpolación
Lagrangiano, y el segundo el el método modal de los polinomios de Legendre.
Ambos son muy distintos el uno del otro, y como se aprecia en los apartados que
hablan de cada uno de los dos programas, necesitan sus propias variables de inicio
y sus propias estructuras.
El método que se ha venido usando típicamente en la resolución de este tipo de
problemas de elementos finitos ha sido el de la interpolación de Lagrange, motivo
por el cual, los resultados del presente documento hablarán de las precisiones
comparadas de ambos métodos con el fin de determinar si el método de los
polinomios de Legendre, es mejor y tiene menor difusión numérica que el de el
método de interpolación de Lagrange.
Página 80 de 115
La diferencia fundamental entre los dos métodos es que uno usa un tipo de
interpolación denominado nodal y el otro una interpolación modal.
Una interpolación nodal, consiste en el cálculo de unos coeficientes que
multiplicados por los polinomios de Lagrange hacen que la función tenga el valor
de la función a interpolar en el nodo de cada función, y cero en el resto.
Por otro lado, una interpolación modal, es algo similar a los desarrollos en serie
de Fourier, que representan la base de un espacio formado por dichos polinomios.
En el caso de Legendre, los polinomios son base, con la ventaja de ser
polinómicos y por lo tanto de computación más rápida, que es uno de los
objetivos de este proyecto: la velocidad de computación. Esto implica que el valor
de la función en los nodos una vez se ha aproximado, no tiene porqué tomar el
valor de la función en los puntos que se toman para calcular la aproximación de
todo el espacio donde se encuentra la solución.
En la figura 38, podemos ver el caso de la interpolación de Lagrange para una
función de Gauss, en la que se ve que el polinomio correspondiente a cada nodo
toma el valor de la función para el valor del punto y cero para el resto de los
puntos usados.
Página 81 de 115
Figura 35: Suma de polinomios de Lagrange
En la figura 35 vemos hasta seis funciones de las cuales, la aproximación final es
la de color azul, mientras que el resto son los polinomios correspondientes a cada
uno de los puntos de la aproximación.
Se puede observar que todas las funciones asociadas a cada nodo toman el valor
de la aproximación final en dicho punto, y cero en el resto. Estos valores
coinciden a su vez con el valor de la función aproximada. En este caso la campana
de Gauss. Más adelante se explicará en detalle este fenómeno.
y = e− x2
En el caso de los polinomios de Legendre, los coeficientes no tienen como
significado el valor de la función en dicho punto, y de hecho el valor en los puntos
empleados para la aproximación no tiene porqué coincidir con los valores de la
función que se intenta aproximar.
Otra de las ventajas de los polinomios de Legendre es la ortogonalidad de sus
polinomios. Este hecho permite que su matriz de masas sea casi diagonal.
Página 82 de 115
Su aproximación en tanto que es modal, representa la suma de unas funciones
multiplicados por unos coeficientes que al sumarlas, producen la aproximación. A
diferencia del método Lagrangiano, estos coeficientes no tienen un significado
físico directamente sino simplemente el de ser los coeficientes o pesos de los
polinomios que se suman. El resto de detalles se explicarán más adelante.
Como se ha podido ver en los párrafos anteriores, ambos son métodos que
convierten una realidad conocida en puntos discretos, en una aproximación válida
para todo el espacio en estudio. Es decir. a través del conocimiento del valor de
una función en algunos puntos, se pretende conocer lo que sucede en sus
alrededores.
Los polinomios de Legendre, al igual que las series de Fourier, permiten hallar
solución a problemas de Sturm-Liouville, con lo que como ya se ha dicho antes,
su aproximación no es individual sumada, sino global en el dominio de estudio.
Una vez vistas a priori las principales diferencias entre los dos métodos, nos
disponemos a describirlos para luego entender mejor su funcionamiento y que se
puede esperar de la comparación entre ambos.
Página 83 de 115
5.2. Método de interpolación de Lagrange:
5.2.1. Introducción a los polinomios de Lagrange:
Los polinomios de Lagrange son una variedad algebraica definida en función de
un determinado número de nodos. Habrá tantos polinomios de Lagrange como
nodos usemos para la construcción de dichos polinomios.
Por la definición de Lagrange, estos polinomios tendrán un orden de P-1 siendo P
el número de nodos, o puntos conocidos que se usan para calcularlos.
La forma canónica, o de definición de los polinomios de Lagrange es la siguiente:
Como se puede observar por la estructura de la fórmula, es una función en la que
para los distintos valores de Xi la función vale 0, excepto para el caso en el que
i = q en el que el valor de este polinomio es 1.
Al crear polinomios con esta estructura, lo que conseguimos es que cada
polinomio tenga como valor en el nodo al que corresponde, valor unidad. Para
cualquier otro nodo, toma el valor cero.
Página 84 de 115
En el código, para que estos polinomios sean siempre los mismos y no haya que
calcular dichos polinomios para cada elemento, se usan las coordenadas locales
mencionadas en el capítulo 3.
En nuestro caso se han empleado elementos cuadráticos, lo que implica que por
cada linea divisoria entre elementos hay tres nodos. Los dos primeros, son los de
la malla lineal, que serían las esquinas de los triángulos de la malla (podrían ser
cuadrados, pero el estudio se lleva a cabo con mallas formadas por elementos
triangulares). El último punto, se encuentra en la mediatriz de el lado del triángulo
entre los dos nodos, lo que hace que la interpolación sea cuadrática, es decir, de
orden 2.
La interpolación que se lleva a cabo por este método es de orden 2 ya que para el
problema 1D, que sería una recta, o como en este caso un segmento, el número de
puntos P es 3, y como se expuso anteriormente, el orden de los polinomios de
Lagrange, es P-1 que en este caso es 2.
5.2.2. Interpolación polinómica de Lagrange 1D:
La finalidad de este tipo de aproximación, es que la superficie cubierta por el
elemento quede acotada y aproximada a través de la suma de los polinomios de
Lagrange propios de cada nodo del elemento.
Página 85 de 115
Si lo que queremos es hallar el valor de un punto cualquiera que se encuentre en
este dominio, lo que debemos hacer es sustituir en cada uno de los polinomios el
valor de la coordenada x. Sustituyendo las coordenadas, en este caso coordenada
del punto a calcular en cada uno de los polinomios de cada nodo, y sumando
después, obtenemos el valor aproximado de la función en dicho punto.
En la figura 36 se muestra una función, unos nodos, y su aproximación formada
por los polinomios de Lagrange para una dimensión.
Figura 36: Aproximación de Lagrange frente a función aproximada
Como podemos ver, la aproximación es mejor cuanto mas cerca del centro del
dominio aproximado nos encontramos.
Para ver la procedencia de la aproximación, hemos de remontarnos a la aplicación
del cálculo de los polinomios de Lagrange para el ejemplo. De este modo
podremos comprender mejor la figura 39.
Página 86 de 115
En este caso la función a aproximar es una campana de Gauss de altura h=1, con
lo que su función será:
y = e− x2
y su representación la podemos ver en la figura 40.
Figura 37: Campana de Gauss a aproximar
Partimos de un conjunto de puntos de valor conocido de la función, que en este
caso se definen en la figura 38:
Número de Punto x f(x,y)1 0 12 1 1/e3 -1 1/e4 2 1/(e^4)5 -2 1/(e^4)
Tabla 38: Nodos de la aproximación
Por otro lado, se aprecia el ya comentado hecho de que el valor de la función
coincide con el de la aproximación en los nodos tomados para realizar la
aproximación.
Página 87 de 115
Como los nodos que se toman en nuestro problema son exteriores, y lo que
tratamos de aproximar son los puntos interiores de los elementos, esta
aproximación nos es válida. Además, el orden que se empleará será siempre
cuadrático, lo que quiere decir que el número P de nodos será 3, y el orden de los
polinomios será 2. Más adelante se explicará el caso 2D para que se entienda
mejor este principio.
5.2.3. Interpolación de Lagrange en 2D. Resolución para el caso particular de
triángulos cuadráticos:
En el caso particular de el programa de la resolución de la ecuación de transporte
puro, se ha de realizar una interpolación en 2 dimensiones en elementos
triangulares cuadráticos que previamente se pasan a coordenadas locales para
realizar una mejor aproximación.
Se incluirán los algoritmos usados en la programación a modo de explicación de
lo desarrollado en el proyecto.
Las condiciones que cumplen los polinomios de Lagrange para cada nodo siguen
siendo las mismas que para una sola dimensión, pero aplicada a dos dimensiones.
El valor del polinomio en las coordenadas del nodo al que pertenece un
determinado polinomio de Lagrange es el de la función a aproximar, mientras que
el valor del polinomio en el resto de nodos del elemento vale cero.
Página 88 de 115
expresado matemáticamente sería:
Lq (xq , yq ) = f (xq , yq )Lq (x≠q , y≠q ) = 0
Siendo el resultado de la aproximación la suma de todos los polinomios (uno por
nodo) de la siguiente manera:
faprox (x, y) = ci ⋅ Li (x, y)i=1
P
∑
Esto a nivel de programa se ve representado por una subrutina que, conociendo de
antemano el polinomio, y con la coordenada x y la coordenada y del punto que se
está aproximando genera el valor de la función de Lagrange para luego
multiplicarlo por el coeficiente, que será el valor de la función en el punto en este
caso.
La estructura de cálculo de pesos, que son los valores de los polinomios una vez
sustituidos x e y, se calcula en coordenadas locales con la siguiente estructura:
Página 89 de 115
Figura 39: Subrutina de Interpolación Lagrangiana
Figura 40: Asignación de los pesos de los coeficientes
Como se puede ver en la Figura 39, al final el valor aproximado de la función en
el punto (ftransf%cont()) se calcula como la suma (o el valor acumulado) del
producto entre el valor de la función en el instante anterior de los nodos
(fsintransf%cont()) y los valores H.
Página 90 de 115
Estos valores H vienen definidos por la figura 40, y lo que en realidad están
haciendo es proporcionar la matriz de aplicación lineal de un espacio a otro, pero
con la diferencia de que en este caso el valor siempre es el mismo y solo depende
de las coordenadas locales del punto que se esté tratando de aproximar.
La estructura al final queda descrita de la siguiente forma:
f(x, y) = fi ⋅Hi (xi , yi )i=1
nodperel
∑
Donde Nodperel, es el número de nodos que tiene cada elemento, fi es el valor de
la función en el nodo i del elemento, y H es el peso.
5.3. Método modal de los polinomios de Legendre:
Como ya se ha explicado anteriormente, el método de los polinomios de Legendre
es un método de aproximación modal.
Para una aproximación con polinomios de orden P, al contrario que Lagrange, el
método de Legendre usa polinomios de orden creciente.
Página 91 de 115
Al contrario que e método de interpolación lagrangiano, los coeficientes de
Legendre no tienen un significado físico, sino que simplemente representan la
proyección del espacio real sobre el espacio de los polinomios de Legendre.
En la figura 41 se incluyen los polinomios de Legendre de orden menor o igual a
6.
Figura 41: Polinomios de Legendre
En este caso están ligeramente modificados con resptecto a los polinomios de
Legendre primarios, pero la base es la misma y conserva sus propiedades de
ortogonalidad, simetría y antisimetría.
Los polinomios de Legendre desde orden 1 hasta orden 6 son los descritos a
continuación.
Página 92 de 115
Figura 42: Primeros polinomios de Legenre
En este caso se pone un ejemplo 2D salido del programa preliminar de los
polinomios de Legendre. Aunque el método es más complicado, al final, consiste
en proyectar un espacio sobre otro siguiendo unas determinadas normas para
conseguir aproximar el problema.
La función a aproximar será una Campana de Gauss de la siguiente forma:
z x, y( ) = e−
x−0.36( )2 + y−0.5( )2
0.082⎛
⎝⎜⎜
⎞
⎠⎟⎟
y su representación gráfica es de la forma expresada en la figura 43.
Figura 43: Campana de gauss dibujada para su posterior aproximación.
Página 93 de 115
Por otro lado la función ya aproximada tiene el siguiente aspecto:
Figura 44: Aproximación de la campana de Gauss de orden 4 por Legendre
La aproximación para el orden de los polinomios tomado, es muy buena, y el error
cometido es menor al 1%, dato, que de partida es muy bueno.
Una vez explicados los dos métodos y sus diferencias así como sus desventajas
solo falta la comprobación de los métodos ante un mismo problema y una misma
variable.
En los siguientes capítulos se describirán los resultados obtenidos y se contrastará
el método de los polinomios de Legendre con el de Lagrange.
Página 94 de 115
6. Comparación de los dos métodos en estudio:
6.1. Datos tomados para la comparación:
Para llevar a cabo el estudio comparativo de los dos métodos, se han fijado una
serie de variables de tal forma que el único factor que influya en los resultados sea
el método de aproximación usado. Estos datos, son los descritos en la figura 47,
en los que como se puede apreciar, prácticamente la única diferencia es el método
empleado.
DATOS USADOSTipo de Aproximación usado Lagrange LegendreVelocidad angular del campo de velocidades 3,64E-05 3,64E-05Incremento de tiempo entre pasos 1800 1800Número de pasos dados 96 192iteraciones en búsqueda del pie de las cara 100 25
Número de nodos de la malla 5129 1316Número de elementos de la malla 2498 2498Orden de la aproximación 2 4,5,6
Figura 45: Datos empleados en los dos programas
La malla empleada en los dos casos es la misma.
Figura 46: Malla empleada en la comparación
Página 95 de 115
La malla de la figura 48 esta definida por tener una distancia media entre nodos de
0.03 unidades, sobre una malla de lado unidad. La diferencia de nodos entre los
dos casos es debido a que en el caso de Lagrange, el programa usa una
aproximación cuadráticas, mientras que en el caso de Legendre se usan mallas
lineales, que dentro del programa se convierten en mallas de alto orden.
A parte de los datos del problema, es necesario también conocer los datos de la
función transportada, que no es otra que la que se usó para aproximar como
ejemplo en la figura 45, y su ecuación es la siguiente:
z x, y( ) = e−
x−0.36( )2 + y−0.5( )2
0.082⎛
⎝⎜⎜
⎞
⎠⎟⎟
y su forma es la anteriormente descrita en la misma figura:
Figura 47: Función a transportar
Página 96 de 115
Una vez que tenemos todos los datos iniciales del problema, procedemos al
estudio de las dos soluciones para más adelante compararlas y sacar conclusiones
sobre los métodos empleados.
6.2. Resultados obtenidos para el caso de Lagrange:
Los datos que se van a comparar más adelante son el valor máximo de la función
en cada instante de tiempo, y a de modo menos exacto, la conservación de la
forma de la función.
Se compararán datos con la misma distancia recorrida, comparando después como
varía de un programa a otro.
En la figura 49 podemos ver una tabla de los datos recogidos para este estudio.
Tiempo Step Valor Pico0 0 0,96437
0,5 10 0,890811 20 0,86486
1,5 30 0,836072 40 0,83255
2,5 50 0,8283 60 0,80977
3,5 70 0,802934 80 0,80218
4,5 90 0,794255 100 0,78416
5,5 110 0,771136 120 0,76316
6,5 130 0,767237 140 0,75201
7,5 150 0,748488 160 0,74528
8,5 170 0,74389 180 0,72617
9,5 190 0,72905Figura 48: Tabla de los datos del método de Lagrange
Página 97 de 115
En las imágenes de las siguientes figuras (49 a 57) podemos ver las imágenes que
se comparará en cuanto a forma.
Figura 49: Momento Inicial
Página 98 de 115
6.3. Resultados obtenidos para el caso de Legendre:
Los resultados obtenidos para el caso del método de aproximación de los
polinomios de Legendre en forma del valor máximo de la función son los
siguientes:
Tiempo Step Valor Pico0,05 1 1,00446
0,5 10 1,0040171 20 1,002086
1,5 30 0,9952922 40 0,99841
2,5 50 1,006333 60 0,9956201
3,5 70 1,00464 80 0,98357
4,5 90 0,976175 100 0,97908
5,5 110 0,969376 120 0,94744
6,5 130 0,976247 140 0,95084
7,5 150 0,933498 160 0,93376
8,5 170 0,950289 180 0,93609
9,5 190 0,94165
Figura 58:Tabla de los datos del método de Legendre
Página 103 de 115
La primera apreciación que hacemos es que en la figura 58 los datos no tienen
porqué ser uniformemente decrecientes, y esto es debido a que con el método de
Legendre no tiene porqué ser así.
Para comparar las formas, se han tomado los siguientes momentos de tiempo:
Figura 59: t=0
Página 104 de 115
Aunque las figuras 60 a 68, están tomadas con un programa distinto (Tecplot) al
posprocesador GID debido a que la malla es de alto orden, la visualización de los
resultados es similar.
Como se puede observan en estas figuras, la conservación de la forma de la
función es muy clara, sin prácticamente variar desde el principio.
6.4. Comparación de los dos métodos:
En la Gráfica de la figura 69 podemos apreciar la variación de los valores de pico
de la Gaussiana en estudio a lo largo de una vuelta.
Figura 68: Comparación entre los dos métodos: Lagrange vs Legendre p=4
Una vez visto que el resultado de las aproximaciones es mucho mejor si se emplea
el método de los polinomios de Legendre, se hace una comparación entre los
diferentes ordenes de los polinomios a usar.
Página 109 de 115
En este proyecto, y por la limitada capacidad computacional, se han comparado
únicamente para orden 4, 5 y 6. Tanto para la aproximación de una función de
Gauss, como para el caso de un cono.
La malla usada para esta comparación es de una distancia entre nodos de 0.08
unidades, debido a que esta distancia es la menor que ha sido posible
computacionalmente, para obtener resultados para p=6.
Todos los parámetros son normalizados, y los resultados se justifican en el
programa desarrollado con este fin.
El estudio comparativo realizado entre los distintos órdenes de aproximación, se
puede apreciar en las figuras 70 y 71, donde están representados en forma de
gráfica los valores máximos, en primer lugar del cono y, por último, de la función
de Gauss, ambos en función del ángulo girado con respecto al eje de rotación.
Figura 69: Comparación de los diferentes ordenes de aproximación para un cono
Página 110 de 115
Figura 70: Comparación de los diferentes ordenes de aproximación para una campana de Gauss
Como se puede apreciar en estas figuras, aunque hay fluctuaciones durante el
ensayo, finalmente, la aproximación mejora al aumentar el orden de los
polinomios.
Cabe destacar que la mejora obtenida por la modificación del orden polinómico
del método de los polinomios de Legendre es significativamente menor que la
obtenida al sustituir el método Lagrangiano por el método de los polinomios de
Legendre.
Página 111 de 115
Figura 71: Comparación de orden de interpolación para el cono
Aproximación de Cono:
Valor máximo final
p=6 0,538879
Página 112 de 115
Figura 72: Comparación de orden de interpolación para campana de Gauss
Aproximación de Cono:
Valor máximo final
p=4 0,629119
p=5 0,793500
p=6 0,906894
Página 113 de 115
Bibliografía:
• [GARC02] Mecánica de Fluidos: Antecedentes y actualidad. Universidad
Politécnica de Yucatán Jorge García Sosa, Armando Morales Burgos y Eduardo
José Escalante Triay 2002
• [PRESS02] PRESSMAN, R. S.: Ingeniería del software, un enfoque práctico.
McGraw- Hill. 2002.
• [ALLI00] ALLIEVI, A. y BERMEJO, R.: Finite Element modified method of
characteristicfortheNavier-Stokesequations. International journal of numerical
methods in fluids. 2000.
• [ALLI97] ALLIEVI, A. y BERMEJO, R: A Generalized Particle Search-Locate
Algorithm for Arbitrary Grids. Journal of Computational Physics. 1997.
• [RODR02] Creación de un túnel de viento virtual. Alejandro Rodriguez Gallego
2002.
• [ANTA97] ANTANOVSKII, L. K. A. R., H. Long - wave peristaltic transport of
a compressible viscous fluid in a finite pipe subject to a time - dependent
pressure drop. Fluid Dynamics
• [SCHL79] SCHLICHTING, H. Teoría de la Capa Límite. 1979
Página 114 de 115
• [SACE02] SACERDOTI, J. Univ. politécnica de Buenos Aires. Polinomios y
funciones de Legendre. 2002
• [WINK02] WINKELMAN G.S. Vortex methods for direct numerical simulation
of three-dimensional bluff body flows. Journal of computational physics.
• [GARC99] Fortran 90 Félix García Merallo.1999
Página 115 de 115