Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/317689740
CITATIONS READS
0 71
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Hybrid methods applied to obtain an approximation to the solution of Shallow Water Equations View
project
All content following this page was uploaded by Martha Leticia Ruiz Zavala on 20 June 2017.
Tesis:
presenta:
Asesor:
Doctor en Ciencias Matematicas
Francisco Javier Domnguez Mota
dmota@umich.mx
Gracias a todas las personas que fueron partcipes de este proceso, ya sea de manera
directa o indirecta, ya que su aporte se ve reflejado en la culminacion de esta licenciatura.
Agradezco a mis padres por el apoyo brindado durante tantos anos, al igual que a mis
amigos, los cuales me han soportado incluso durante esta primera tesis.
A mis companeros de licenciatura, sin los cuales este trayecto no hubiese sido tan
divertido.
A todos los profesores que me impulsaron a llegar a este punto, especialmente a los que
se tomaron el tiempo y el esfuerzo de leer mi tesis.
Al Dr. Francisco Javier Domnguez Mota por exigirme al punto de sacarme de mi zona
de confort y lograr que me sorprendiera de mis capacidades, y por su gran esfuerzo de
todos los das tratar de convencerme de que soy muy lista.
Finalmente agradezco al Dr. Hal Amesta, el cual me recomendo tomar te para sobrevivir
a la tesis sin intoxicarme de nuevo con cafe.
5
6
Indice general
Resumen 13
Abstract 15
Glosario 17
1. Introduccion 19
1.1. Ecuaciones Diferenciales Parciales . . . . . . . . . . . . . . . . . . . . . . . 19
1.1.1. Clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.1.2. Condiciones iniciales y de frontera . . . . . . . . . . . . . . . . . . . 20
1.2. Metodos Numericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.1. Diferencias Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.2. Volumenes Finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.3. Ejemplo: ecuacion del calor . . . . . . . . . . . . . . . . . . . . . . . 28
2. Antecedentes 33
2.1. Supuestos de las ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2. Ecuaciones de Navier-Stokes . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1. Ecuacion diferencial de conservacion de masa . . . . . . . . . . . . . 35
2.2.2. Ecuacion diferencial de conservacion del momento . . . . . . . . . . 36
2.2.3. Ecuacion de continuidad para fluidos incompresibles . . . . . . . . . 39
2.3. Caractersticas dadas por las aguas someras . . . . . . . . . . . . . . . . . . 40
2.3.1. Condiciones de frontera en el fondo y en la superficie . . . . . . . . . 41
2.4. Ecuaciones de Saint-Venant . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4.1. Ecuaciones en tres dimensiones . . . . . . . . . . . . . . . . . . . . . 43
2.4.2. Ecuaciones en dos dimensiones . . . . . . . . . . . . . . . . . . . . . 44
7
8 Indice general
3. Metodos Numericos 47
3.1. Mallas Estructuradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1.1. Generacion de mallas estructuradas. . . . . . . . . . . . . . . . . . . 48
3.1.2. Calidad de la malla . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2. Diferencias Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.1. Diferencias finitas generalizadas . . . . . . . . . . . . . . . . . . . . . 58
3.2.2. Consistencia + Estabilidad = Convergencia . . . . . . . . . . . . . . 63
3.3. Volumenes Finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.1. Tipos de solucion para sistemas de leyes de conservacion hiperbolicas 68
3.3.2. Metodo de Volumenes Finitos . . . . . . . . . . . . . . . . . . . . . . 69
3.3.3. Componentes necesarios para la convergencia . . . . . . . . . . . . . 72
6. Conclusiones 139
Apendice A 141
Bibliografa 177
Indice de figuras
9
10 Indice de figuras
Las inundaciones y desbordamientos de canales son fenomenos que han venido afec-
tando a la sociedad a traves del tiempo, los cuales han incrementado con lluvias atpicas
provocadas por el cambio climatico. Para prevenir estos fenomenos se busca predecir el
comportamiento del cuerpo de agua, el cual se rige por las ecuaciones de Saint-Venant,
propuestas en 1871.
Las ecuaciones de Saint Venant son EDPS no lineales las cuales se derivan de la
ecuacion de conservacion de masa y de las ecuaciones de Navier Stokes. Hasta el momento
no se conoce la solucion analtica de las mismas en casos generales, por lo que haremos uso
de metodos numericos para obtener una aproximacion a ella.
Uno de los metodos numericos mas utilizados para aproximar derivadas, principalmente
en la industria, son las Diferencias Finitas, ya que pueden hacerse implementaciones con un
bajo costo computacional y son conceptualmente sencillas, a pesar de que tienen limitacio-
nes en zonas de alto gradiente de la solucion. Por otro lado existen metodos conservativos
como lo son los Volumenes Finitos, llamados as debido a que se basan en Leyes de Con-
servacion; dado que las ecuaciones de Navier Stokes surgen de conservacion de momentos,
junto con conservacion de masa, resulta natural elegir este tipo de metodos para buscar
una buena aproximacion. Ambos enfoques se complementan al emplearse como partes de
un metodo hbrido .
Por lo anterior, en este trabajo se presentaran diferentes esquemas en Diferencias Fi-
nitas y Volumenes Finitos aplicados en regiones rectangulares y elongadas. Se provara la
eficacia de los mismos y se compararan los resultados; ademas, se estima el costo compu-
tacional para cada simulacion. A partir de esta ejecucion se hace una evalcuacion y se
proponen mejoras para cada uno de ellos.
13
14 Indice de figuras
Abstract
The inundations and canals floods are physical phenomenon that have been affecting
society through time, which have increased with atypical rains caused by climate change.
In order to prevent these phenomenon we intend to predict the behavior of the waterbody,
which is governed by Saint-Venant equations, proposed in 1871.
The Saint-Venant equations are nonlinear Partial Differential Equations (PDE) which
are derived from the mass conservation equation and the Navier-Stokes equations. Up
to this moment, their analytical solution remains unknown for general cases, thats the
reason why we will implement numerical methods with the purpose of obtaining a good
approximation of it.
Finite Differences is one of the most popular numerical methods of approximations of
derivatives, mainly in the industry, since implementations can be made with low compu-
tational cost and they are conceptually simple, eventhough they have limitations for high-
gradient solutions. On the other hand there are conservative methods such as the Finite
Volume one, the are called that way because they are based in Conservation Laws; since
the Navier-Stokes equations arise from momentum conservation, along with mass conser-
vation, it is natural to choose this type of methods when aiming for a good aproximation.
Both approches complement eachother when used as part of an hybrid method.
Therefore, in this work several schemes of Finite Differences and Finite Volume will be
presented and applied in rectangular and elongated regions. Their eficacy their efficacy will
be proved and the results will be compared; we also estimate the computational cost of the
simulations. From this execution an evaluation is made and improvements are proposed
for each of them.
15
16 Indice de figuras
Glosario
x Derivada parcial con respecto a x.
En cordenadas cartesianas = ( x , y , z ).
O(hp ) Sea f (h) tal que f (h) = O(hp ) mientras h 0, si existe C tal que |f (h)| < C|hp |
entonces f (h) tiende a 0 al menos tan rapido como lo hace hp .
Soporte compacto Es el espacio compuesto de funciones tal que valen 0 en todos lados, menos en un
compacto (en Rn , es un conjunto cerrado y acotado).
Ec. de estado Es aquella que describe como respondera un material ante esfuerzos en un sistema
hidrostatico.
Funcional Regla que asigna un numero real a cada vector de una funcion x, la cual pertenece
a un vector de funciones.
17
18 Indice de figuras
Funcion regular La funcion f es regular si y solo si existe una sucesion (fn )nN de funciones esca-
lonadas que converge uniformemente a f .
Introduccion
Una Ecuacion Diferencial Parcial (EDP) [Olver, 2014] es aquella que relaciona a la
funcion incognita y a sus derivadas parciales. Su orden se define como el orden mas alto de
las derivadas que aparecen en la ecuacion, y su grado esta dado por el exponente de mayor
orden de alguna derivada. Una EDP homogenea se dice lineal si la combinacion lineal de
sus soluciones es lineal, por ejemplo
u 2 u u
= + u,
t x2 y
19
20 Captulo 1. Introduccion
1.1.1. Clasificacion
Las EDPs lineales se clasifican en parabolicas, elpticas e hiperbolicas. En esta tesis tra-
bajaremos con un sistema de ecuaciones esencialmente hiperbolico, cuya definicion precisa
se proporcionara posteriormente. Sin embargo, la linealizacion de nuestras ecuaciones es
un sistema hiperbolico, el cual se define de la siguiente manera:
u
+ A u = 0,
t
u(x, 0) = u0 (x),
A = RR1 ,
Un concepto importante es el buen planteamiento del problema, se dice que una EDP
este bien planteada cuando existe una unica solucion que depende continuamente de los
datos iniciales. Para cumplir con lo anterior, se deben satisfacer condiciones iniciales, las
cuales son dadas en un tiempo fijo o inicial, y condiciones de frontera, las cuales se satisfacen
en la frontera del dominio para todo tiempo.
Hay diferentes principales tipos de ecuaciones de frontera:
Las diferencias finitas han sido ampliamente utilizadas a traves de los anos, tanto en la
investigacion como en la industria, debido a su basta aplicabilidad y su bajo costo compu-
tacional. Dicho metodo actua reemplazando las derivadas de la ecuacion diferencial, en
un punto p0 , por combinaciones lineales de los valores de la funcion evaluada en puntos
cercanos a este; se puede aplicar tanto en problemas unidimensionales como multidimen-
sionales3 .
Para entender mejor la idea basica del metodo, veamos el ejemplo de la derivada de
primer orden de una EDO. Sea u(x) C 1 (a, b), aplicando diferencias finitas se tiene la
2
La derivada normal es una funcion dirigida en la direccion del vector normal tangente a la superficie,
u
en algun punto especfico. Ej: si n es el vector normal, entonces n = u n.
3
En esta tesis nos enfocaremos en esquemas en 1D y 2D, para mas dimensiones, la idea es analoga.
22 Captulo 1. Introduccion
aproximacion
du(x) u(x + h) u(x)
,
dx h
donde h es la distancia entre dos puntos seguidos de una discretizacion uniforme del interva-
lo [a, b] (ver figura 1.1). A esta expresion se le conoce como diferencia finita hacia adelante,
ya que toma valores del punto actual y el subsecuente para calcular la aproximacion de la
derivada en el punto actual [LeVeque, 2007].
h h
a xi 1 xi xi +1 b
Es facil ver que si tomamos el lmite cuando h 0, regresamos a una igualdad; por lo
que si tomamos h R lo suficientemente pequeno, esperamos obtener una aproximacion
razonablemente buena a la derivada. Esto se puede ver en la figura 1.2.
N 1
X u(n) (x0 )
u(x) = (x x0 )n + R()
n!
n=0
en donde
dn u(x0 )
u(n) (x0 ) = ,
dxn
y el residuo R esta dado por
u(N ) ()
R() = (x x0 )N , (x0 , x).
N!
Se dice que la Serie de Taylor converge hacia u(x) cuando el residuo, R, tiende a 0, i.e.,
lm R() = 0.
N
Tomemos una funcion u(x) tal que satisfaga la hipotesis del Teorema de Taylor, por lo
que podemos hacer la expansion alrededor del punto xi+1 = x + h, obteniendo
dui
u(i+1) = ui + h + O(h2 ),
dx
donde ui+1 = u(xi+1 ) y O(h2 ) es una cota superior para el residuo. Haciendo simples
despejes obtenemos la expresion en diferencias hacia adelante para el punto xi , que se
ve como
dui ui+1 ui
= + O(h), (1.1)
dx h
la cual es una aproximacion de primer orden a la derivada, lo que quiere decir que el error
es proporcional a h; se dice que una aproximacion es de k-esimo orden cuando la cota
superior del residuo es O(hk ).
Ahora, si hacemos la expansion de la misma funcion al rededor del punto xi1 = x h,
y despejamos, obtenemos la expresion en diferencias hacia atras,
dui ui ui1
= + O(h), (1.2)
dx h
expansiones en serie de Taylor, hasta tercer orden, en los puntos xi1 y xi+1 ; es decir,
tomemos
dui d2 ui
ui1 = ui 2h + (2h)2 + O(h3 ),
dx dx2
dui d2 ui
ui+1 = ui + 2h + (2h)2 + O(h3 );
dx dx2
que restand la primera de la segunda y despejamos, llegamos a la expresion en diferencias
centradas
dui ui+1 ui1
= + O(h2 ). (1.3)
dx 2h
Podemos ver que, a diferencia de las anteriores, las diferencias centradas proporcio-
nan una aproximacion de segundo orden a la derivada. Aproximaciones de este orden son
muy usadas ya que implican que si dividimos el tamano de paso por la mitad el error decre-
ce una cuarta parte, sin mencionar que usan una cantidad de evaluaciones relativamente
pequena teniendo as bajo costo computacional.
Para aplicar diferencias finitas en dos dimensiones, primero tomemos la region [0, a]
[0, b] discretizandola de manera uniforme, donde x y y son los tamanos de paso, en x
y y respectivamente, no necesariamente iguales, como se muestra en la figura 1.3.
De manera analoga a como obtuvimos las ecuaciones (1.1 - 1.3) llegamos a las expre-
siones de las derivadas parciales con respecto a x y y,
ui+1,j ui,j
x + O(x) Diferencias hacia adelante
ui,j
ui,j ui1,j
= x + O(x) Diferencias hacia atras , (1.4)
x
u u
i+1,j i1,j + O((2x)2 ) Diferencias hacia adelante
2x
ui,j+1 ui,j
y + O(y) Diferencias hacia adelante
ui,j
= ui,j u
y
i,j1
+ O(y) Diferencias hacia atras , (1.5)
y
ui,j+1 ui,j1 + O((2y)2 ) Diferencias hacia adelante
2y
(0,b) (a,b)
(0,0) (a,0)
x
Los volumenes finitos se disenaron para aproximar las soluciones de sistemas de Leyes
de Conservacion, los cuales, establecen que el cambio de magnitudes contenidas en una
region es igual al flujo que pasa a traves de su frontera [Cendon, 2014]. Si tomamos la
suma de pequenas contribuciones de todos estos cambios y flujos, se puede ver que se
plantea una correlacion entre integrales de superficie e integrales de area, lo cual nos lleva
al Teorema de la Divergencia de Gauss.
Al aplicar el Teorema de Gauss, podemos ver que trabajaremos con la forma integral
26 Captulo 1. Introduccion
de las ecuaciones, cuya ventaja es que puede manejar las discontinuidades que llegasen
a tener nuestras ecuaciones; sin embargo, dichas EDPs no podran ser verificadas en el
sentido clasico para todos los puntos. El modo en el que se manejan estas discontinuidades
es usando la forma debil de la derivada.
Para aplicar este metodo en dos dimensiones tomaremos una discretizacion uniforme
de la region [0, a][0, b] como en diferencias finitas, sin embargo, al trabajar sobre regiones
la funcion sera evaluada en los centroides de la celdas creadas con la discretizacion, como
se puede ver en la Figura 1.4.
(0,b) (a,b)
(0,0) (a,0)
x
Figura 1.4: Discretizacion uniforme del intervalo [0, a] [0, b] para volumenes finitos.
u u u u
+ Vx + Vy = + H = 0, (1.6)
t x y t
1.2. Metodos Numericos 27
u X
xy + H ns = 0.
t
ni,j+1 Vy
Vx
ni1,j ni+1,j
y
Vx
Vy ni,j1
u
Aproximando t mediante diferencias finitas hacia adelante y realizando los productos
vectoriales, llegamos a que
uk+1 k
i,j ui,j
h
k k k k
i
xy + (Hi+1,j Hi1,j )y + (Hi,j+1 Hi,j1 )x = 0.
t
Para ilustrar el funcionamiento de los metodos, tomemos la ecuacion del calor, tambien
conocida como difusion en 1D,
u 2u
= 2, (1.9)
t x
donde u = u(t, x), y es el coeficiente de difusion.
Veamos el caso donde tenemos una barra uniforme, aislada, de longitud 1 cuyos extre-
mos se mantienen a una temperatura de 0 grados con condiciones iniciales dadas por f (x);
de modo que nuestras condiciones iniciales y de frontera son:
Solucion analtica
2 2 2
u(t, x) 0.0604 sin(x)e t 0.0070 sin(2x)e4 t + 0.0020 sin(3x)e9 t ... (1.13)
Empezamos con una particion uniforme de la region fsica [0, 1] con m puntos, de modo
que 0 = x1 < x2 < ... < xm = 1. Analogamente, discretizamos el dominio temporal tal que
0 = t0 < t1 < .... Debido a que tomamos una malla o particion uniforme, tenemos que
1
x = xi+1 xi = , t = tk+1 tk , i [1, m 1],
m1
uk+1
i = cuki1 + (1 2c)uki + cuki+1 , (1.14)
t
donde c = (x)2
. De modo que tenemos un esquema iterativo que aproxima una solucion
para los valores posteriores del tiempo partiendo de las condiciones iniciales.
La inicializacion de nuestro esquema viene dada por las condiciones iniciales, de modo
que
u0i = f (xi ), i [1, m].
uk1 = ukm = 0, k N0 .
30 Captulo 1. Introduccion
Si escribimos el sistema que genera el esquema (1.14) de manera vectorial tenemos que
k N0
uk+1 = Auk + bk , (1.15)
donde
uk2
1 2c c 0 0
c 1 2c c 0
..
0 c 1 2c c 0 .
.. .. ..
uk =
.
,A =
0 c . .
,
.. .. .. ..
. 0 . . . 0
.. ..
. . c
ukm1
m21 0 0 c 1 2c
m2m2
y bk Rm21 es tal que su primera y ultima entrada son las condiciones de frontera
izquierda y derecha, respectivamente. En nuestro caso bk = 0.
2u
Z Z Z
u u
2 dx = dx 2 udx,
Ci t x t Ci Ci
uk+1
i = cuki1 + (1 2c)uki + cuki+1 , (1.18)
t
donde c = (x)2
.
Podemos ver que el esquema en volumenes finitos (1.18) es peculiarmente parecido al
esquema en diferencias finitas (1.14), de hecho resulta ser el mismo; sin embargo, no debe-
mos de olvidar que representan dos cosas diferentes, ya que volumenes finitos es un metodo
conservativo, el cual usa la forma integral de la ecuacion y trabaja sobre un volumen (seg-
mento comprendido entre dos puntos consecutivos de la malla), mientras que diferencias
finitas trabaja con la forma diferencial y evalua en los puntos de la discretizacion.
Para evaluar las aproximaciones y la solucion analtica truncada, aplicamos las con-
diciones iniciales y de frontera dadas por (1.11) con = 1; tomando 11 puntos en la
discretizacion espacial y 101 en la temporal, i.e., m = 11, n = 101.
Sobreponiendo las graficas, como se ve en la figura 1.6, podemos comparar las soluciones
cualitativamente en diferentes tiempos y se puede ver que, conforme avanza el tiempo, las
aproximaciones se alejan rapidamente de la solucion.
Al ver el comportamiento de las aproximaciones, naturalmente surgen temores sobre
la veracidad y confiabilidad de las mismas, Sera suficiente tomar muchos puntos en la
discretizacion para que esto converja?, si la respuesta es s, cuantos puntos son muchos?,
y la pregunta principal, Como saber cuando una aproximacion representa la realidad?.
Dichas preguntas seran respondidas al analizar la Estabilidad, Consistencia y Convergencia
de nuestros esquemas en los captulos 3 y 4.
32 Captulo 1. Introduccion
0.07 0.07
Solucin Analtica Solucin Analtica
Diferencias Finitas Diferencias Finitas
Volmenes Finitos Volmenes Finitos
0.06 0.06
0.05 0.05
0.04 0.04
u(t,x)
0.03 0.03
0.02 0.02
0.01 0.01
0 0
0.01 0.01
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
x
0.07
Solucin Analtica
Diferencias Finitas
Volmenes Finitos
0.06
0.05
0.04
u(t,x)
0.03
0.02
0.01
0.01
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.1
Antecedentes
Podemos decir que el universo consiste en una sustancia y que a esta sustancia la
llamamos ((atomos)), o tambien ((monada)). Democrito la denomino atomo. Leibniz la
llamo monada. Por fortuna, los dos hombres jamas se conocieron, de lo contrario se
hubiera armado una discusion muy aburrida. Estas ((partculas)) fueron puestas en
movimiento por alguna causa o principio fundamental, o quizas algo se cayo en algun
lugar.
Woody Allen, 1966
33
34 Captulo 2. Antecedentes
A todos los materiales que satisfacen la definicion anterior, se les dice que se comportan
como un Continuo.
Ya que hemos decidido utilizar la perspectiva euleriana, derivemos las ecuaciones de
Saint-Venant a partir de las ecuaciones que modelan fluidos en general, mejor conocidas
2.2. Ecuaciones de Navier-Stokes 35
como ecuaciones de Navier-Stokes. Para los propositos de esta tesis nos concentraremos en
fluidos incompresibles, los cuales satisfacen que su volumen no cambia al verse sometidos
a diversas presiones.
dm
= 0.
dt
Por otro lado, debido a que el flujo esta pasando a traves de , se debe de mantener el
36 Captulo 2. Antecedentes
X X
dxdydz + (Ai Ui ) (Aj Uj ),
t
i j
donde las sumas denotan salidas y entradas de masas respectivamente, a traves de la super-
ficie de area Ai , con velocidad Ui . Sustituyendo valores y haciendo operaciones algebraicas
llegamos a la ecuacion
+ (u) + (v) + (w) = + (U) = 0, (2.3)
t x y z t
Ahora calculemos el momento lineal del fluido en nuestro volumen de control (figura
2.1), el cual se define como la cantidad de movimiento por unidad de volumen U sobre
, esto es Z
UdV.
Ahora, para determinar su cambio con respecto del tiempo calculamos su derivada, y
aplicamos el Teorema de Reynolds [Fay, 1996], de modo que
Z Z
d
UdV + U(U n)dS. (2.4)
dt
X X
(U)dxdydz + Ui (Ai Ui ) Uj (Aj Uj ),
t
i j
2.2. Ecuaciones de Navier-Stokes 37
Esta ultima ecuacion denota la fuerza neta sobre el volumen de control , indicando que
esta debe ser infinitesimal y proporcional al volumen; dicha fuerza esta conformado por las
fuerzas volumetricas y las superficiales.
Las fuerzas volumetricas se deben a campos externos que actuan sobre la masa del
volumen. En este caso consideraremos la fuerza gravitacional en el eje vertical, y la de
Coriolis1 en los horizontales, lo cual denotaremos de la siguiente manera
fv
Fdxdydz, con F = f u , (2.6)
[p + ij ] dxdydz. (2.7)
Igualando la fuerza neta (2.5) a la suma de las fuerzas superficiales (2.7) con las fuerzas
volumetricas (2.6), y dividiendo entre el volumen dxdydz, obtenemos la ecuacion diferencial
de conservacion del momento
U
+ U U = p + ij + F, (2.8)
t
Dicho sistema es valido para describir fulano fluido con zutano movimiento, se puede
encontrar en cualquier libro de hidraulica basica.
Para nuestro proposito escribimos las ecuaciones de modo que el sistema sea estable,
lo que nos lleva a que las ecuaciones (2.9) se transforman en
p
(u) + (u2 ) + (uv) + (uw) = + (xx ) + (yx ) + (zx ) + f v,
t x y z x x x x
p
(v) + (uv) + (v 2 ) + (vw) = + (xy ) + (yy ) + (zy ) f u,
t x y z y x x x
p
(w) + (uw) + (vw) + (w2 ) = + (xz ) + (yz ) + (zz ) g.
t x y z z x x x
(2.10)
Es facil verificar que podemos ir del sistema de ecuaciones (2.10) al (2.9) aplicando la
regla de Leibniz en las derivadas y usando la ecuacion de conservacion de masa (2.3).
S S S S
+u +v +w = 0,
t x y z
que quiere decir que la salinidad, en cierto bloque de agua, permanecera constante si nos
movemos con ella. Para la ecuacion de temperatura se aplica un analisis semejante.
Recordemos que estamos trabajando con fluidos incompresibles, lo que significa que su
densidad no depende de la presion. Esto no significa que su densidad sea constante, sino
que su ecuacion de estado se escribe como = f (T, S), ie., la densidad solo esta en funcion
de la temperatura y de la salinidad.
En nuestro caso, hablando de agua, la tomamos como incompresible para simplificar
el analisis de las ecuaciones; dicha suposicion no se encuentra tan alejada de la realidad,
puesto que se han realizado estudios donde se muestra que el cambio de la densidad de un
40 Captulo 2. Antecedentes
volumen, con respecto a la presion, es del orden de 108 kg/m2 [Avila, 1997].
Ahora bien, haciendo caso omiso a los efectos de la difusividad, tenemos que la tasa de
cambio de la densidad con respecto del tiempo es
d dT dS
= + = +u +v +w ,
dt T dt S dt t x y z
u v w
+ + = 0. (2.12)
x y z
donde Z t+ T2
1
u(x, t) = u(x, )d.
T t T2
cion de la gravedad.
Las fuerzas de masa que actuan son la gravedad en la direccion vertical y la fuerza
de Coriolis en el plano horizontal.
Aunado a estas, recordemos que el fenomeno a tratar en esta tesis se desarrolla en aguas
someras, las cuales se caracterizan por tener su escala vertical Sv mucho mas pequena que
la horizontal Sh ; en la teora se toma que, al menos, la escala horizontal sea 20 veces mayor
Sv
que la vertical, i.e., Sh < 0.05. En el caso de las velocidades horizontales u, v, usualmente
solo hay una escala interna Su .
Aplicando dichas escalas en la ecuacion de continuidad (2.12), tenemos que los terminos
u v Su
x , y son del orden de Sh ; sin embargo, usualmente estas no se cancelan entre s, por lo que
w
z debe de ser del mismo orden, de otro modo el equilibrio no sera posible. Asumiendo
que la escala vertical de la profundidad del agua es a, por consiguiente, la componente
aSu
vertical de la velocidad es del orden Sh .
Ahora veamos el efecto de las escalas en la conservacion del momento vertical (2.10c).
Al igual que con la ecuacion de continuidad, todos los terminos con derivadas parciales de
la ecuacion (2.10c) pueden ser estimados burdamente mediante las escalas, a excepcion del
gradiente de la presion, por lo que el termino de aceleracion local t (w) es del orden de
aSu Sh 2
TSh , donde T = a1/2
; los terminos advectivos x (uw), y (vw), z (w ) son del orden
2
de aS u
Sh 2
; y los terminos de los esfuerzos
x (xz ), x (yz ), x (zz ) son del orden de Sau2 .
Comparando dichas aproximaciones con el termino de la gravedad g podemos concluir que
son muy pequenas, por lo que solo queda el gradiente de la presion para lograr un balance,
de modo que la ecuacion (2.10c) se simplifica en la distribucion de persion hidrostatica
dada por
p
= g, (2.13)
z
donde esta en funcion de la salinidad y la temperatura. Dicha aproximacion resulta ser
la propiedad central en la teora de aguas bajas.
Recordemos que para que una EDP tenga solucion unica, las condiciones de frontera son
primordiales. Denotaremos al fondo del cuerpo de agua por Zb = Zb (x, y), dicha funcion
42 Captulo 2. Antecedentes
describe la topografa del terreno; mientras que la superficie esta dada por h = h(t, x, y)
(ver figura 2.3).
Figura 2.3: Seccion longitudinal del dominio ocupado por el flujo en el plano yz, con x fijo.
Zb Zb
u +v w = 0. (2.14)
x y
Ahora, cuando nos posicionamos en la superficie tenemos que esta puede variar, por
lo que ahora la que desaparece es la componente normal relativa a h de la velocidad, de
modo que
h h h
+u +v w = 0. (2.15)
t x z
Por otra parte tenemos las condiciones de frontera dinamicas, las cuales hablan de las
fuerzas que actuan en las fronteras. En el fondo tomaremos condiciones de no deslizamiento,
esto quiere decir que el fluido viscoso se queda pegado al fondo, de modo que
u = v = 0. (2.16)
2.4. Ecuaciones de Saint-Venant 43
Mientras que en la superficie se asume que los esfuerzos en el agua justo debajo de la
superficie, son los mismos que los del agua en contacto con el aire, lo que significa que no se
toma en cuenta la tension superficial; de modo que nuestra presion es la presion atmosferica
Pa y el nivel de presion absoluta es tomado como 0 al no ser relevante. Sin embargo, en la
superficie pueden actuar esfuerzos cortantes generados por el viento, aquellos tangentes a
la superficie se escriben como
h h
sx = xx xy + xz ,
x y
h h
sy = yx yy + yz ,
x y
(2.17)
de modo que, si tomamos las ecuaciones (2.17) junto con la definicion de ij , obtenemos
una condicion de frontera para el campo de velocidades.
esto debido a que, para propositos de este trabajo, tomaremos promedios en la profundidad
de modo que la densidad puede ser tomada como una constante con respecto a z. Por lo
que los gradientes de presion se expresan como
p h Pa p h Pa
= g + g(h z) + , = g + g(h z) + .
x x x x y y y y
u 2 h g 1 Pa
+ (u ) + (uv) + (uw) + g + (h z) + +
t x y z x 0 x 0 x
1
(xx ) + (xy ) + (xz ) f v = 0,
0 x x x
v 2 h g 1 Pa
+ (uv) + (v ) + (vw) + g + (h z) + +
t x y z y 0 y 0 y
1
(yx ) + (yy ) + (yz ) + f u = 0.
0 x x x
(2.19)
Este par de ecuaciones junto con la ecuacion de continuidad (2.12) forman el sistema
de ecuaciones conocido como Ecuaciones de Saint-Venant en 3D, donde las ecuaciones
(2.19) predicen el comportamiento de las velocidades horizontales u, v; mientras que la
componente vertical de la velocidad viene dada por (2.12) y h se obtiene de la condicion
de frontera en la superficie (2.15).
donde u, v son velocidades promedio sobre el valor de la profundidad, us , vs son los terminos
de correcion de la superficie y ub , vb los del fondo, los cuales se obtienen por la integracion y
diferenciacion en las fronteras. Usando las condiciones dinamicas y cinematicas de frontera
(2.14, 2.16), llegamos a que los terminos referentes al fondo se cancelan y que los terminos de
la superficie describen la tasa de cambio del nivel de la superficie; de modo que obtenemos
la ecuacion
h
+ (au) + (av) = 0, (2.20)
t x y
a la cual tambien se puede llegar considerando el balance de masas en la columna vertical
del agua.
Del mismo modo integramos las ecuaciones de Saint-Venant en 3D (2.19). Para los
terminos advectivos el proceso es igual al anterior, de modo que los terminos en la superficie
2.4. Ecuaciones de Saint-Venant 45
y fondo se cancelan por las condiciones de frontera, sin embargo, obtenemos terminos no
lineales como: Z h Z h
uvdz = auv + (u u)(v v),
Zb Zb
se realiza un proceso analogo para el momento en la direccion y. Por lo que juntando los
terminos anteriores, resulta que la integracion sobre la profundidad de (2.19) es
h ga2 1
(au) + (au2 ) + (auv) + ga + bx (aTxx ) (aTxy ) f av = Fx ,
t x y x 20 x 0 x y
h ga2 1
(av) + (auv) + (av 2 ) + ga + by (aTxy ) (aTyy ) + f au = Fy ,
t x y y 20 y 0 x y
(2.21)
donde Tij denota los esfuerzos laterales, los cuales incluyen los terminos viscosos, de tur-
bulencia y de adveccion diferencial, y estan dados por
Z h
1 ui uj
Tij = + u0i u0j + (ui ui )(uj uj ) dz.
a Zb xj xi
En conjunto, las ecuaciones (2.20) y (2.21) forman las ecuaciones de Saint-Venant en 2D;
sin embargo, las ecuaciones estandar de aguas someras se obtienen omitiendo algunas
complicaciones y adoptando algunas parametrizaciones en su lugar [Vreugdenhil, 1994].
Si omitimos los esfuerzos laterales y las fuerzas motrices, y asumimos una expresion mas
46 Captulo 2. Antecedentes
sencilla para el esfuerzo del fondo en las ecuaciones (2.20) y (2.21), tenemos el sistema
h
+ (au) + (av) = 0,
t x y
h p
(au) + (au2 ) + (auv) f av + ga + cf u u2 + v 2 = 0,
t x y x
h p
(av) + (auv) + (av 2 ) + f au + ga + cf v u2 + v 2 = 0. (2.22)
t x y y
Dichas ecuaciones son conocidas como ecuaciones conservativas para aguas someras, cuya
forma matricial esta dada de la siguiente manera
U f1 f2
+ + + s = 0, (2.23)
t x y
donde
h au
U = au , f1 = au2 + 12 gh2 ,
av auv
av 0
f2 = auv , s = f av + cf u u2 + v 2 .
1
av 2 + 2 gh2 f au + cf v u2 + v 2
Metodos Numericos
Mallita.- transformacion de una region fsica con geometra compleja a una mas simple,
proveniente del surestre de Mexico, la cual predijo que el mundo acabara en el 2012.
Patricio Monero, 2011
f
f : C ,
f
f : C , tal que f |c = f,
47
48 Captulo 3. Metodos Numericos
donde las lneas coordenadas estan dadas por la imagen de f (, 0 ) y f (0 , ) (ver figura
3.2).
Cuando la malla es estructurada podemos identificar rapidamente los nodos interiores
y exteriores de la malla, donde cada nodo interior cuenta con el mismo numero de nodos
adyacentes [Flores, 2016].
Cabe mencionar que no todo mapeo es util, una malla aceptable sobre debe de evitar
entrelazamiento de lneas y debe de mapear los lados del cuadrado C a cuatro segmentos
curvilneos sobre la frontera de , como se muestra en la figura 3.2. Un ejemplo de esto
se puede ver en la figura 3.1, donde f es la biyeccion entre el espacio fsico (el Halcon
Milenario H) y el computacional (R=[0, 1] [0, 1]); dicha malla fue creada con el programa
UNAMALLA
[workgroup,
R 2011].
f(x ,y )
i j
R H
Existen tres principales metodos de generacion de mallas estructuradas, los cuales son
algebraicos, diferenciales y variacionales.
3.1. Mallas Estructuradas 49
Metodos algebraicos
Estos metodos son muy usados debido a su simplicidad y rapidez computacional, sin
embargo, en general no generan mallas convexas en regiones no convexas; decimos que
una malla de mapeo es convexa si cada una de sus celdas es un cuadrilatero convexo y
no degenerado. Dichos metodos toman la parametrizacion de los segmentos de frontera
y sobre ellos consideran una interpolacion polinomica entre fronteras, dicha interpolacion
suele ser de tipo Lagrange o Hermite [S.D. Conte, 1980].
Un ejemplo tpico de un metodo algebraico con interpoladores de Lagrange es la Inter-
polacion Transfinita o TFI por sus siglas en ingles. Este metodo funciona de la siguiente
manera: supongamos que contamos con la descripcion de las fronteras de la region fsica
, esto es, las ecuaciones parametricas
xb (), xt (), 0 1,
xl (), xr (), 0 1,
herradura, consecuentemente, resulta difcil obtener una buena malla, sin embargo en la
figura 3.3 se ve que mediante TFI se obtiene una malla suave y sin dobleces.
Metodos diferenciales
Como se vio al inicio de este captulo, la generacion de mallas puede plantearse como
un problema de valores a la frontera para encontrar las partes reales e imaginarias de una
funcion casi conforme. Esto significa que, dada una distribucion de puntos en la frontera, se
pueden generar mallas mediante una EDP que los satisfaga, las cuales suelen ser elpticas
e hiperbolicas; a dicho procedimiento se le conoce como metodo diferencial.
A diferencia de las mallas generadas de manera algebraica, al utilizar metodos diferen-
ciales se pueden obtener mallas mas suaves y con menos dobleces, por lo que se suelen
usar como suavizadores de las primeras; podemos ver un ejemplo de esto en la figura 3.4,
para la cual se uso como malla inicial generada mediante TFI (figura 3.3). Sin embargo,
debido a que resultan de la solucion numerica de una EDP, obtenemos una malla mas
suave con cada iteracion de la aproximacion por lo que el metodo no es tan rapido como
el primero.
De entre los metodos diferenciales elpticos el mas utilizado es el generador de Poisson,
3.1. Mallas Estructuradas 51
cuya distribucion de los puntos interiores viene dada por la solucion de las ecuaciones
2 2 2 2
+ = P (, ), + = Q(, ),
x2 y 2 x2 y 2
donde P y Q son funciones que controlan el espacio entre los puntos interiores del dominio;
tomando P = Q = 0 obtenemos el generador de Laplace [Joe F. Thompson, 1991].
Por otra parte estan los metodos hiperbolicos con los cuales se genera una malla a partir
de una inicial, propagandola en direccion normal a la superficie en el actual nivel de puntos
a uno nuevo. Estos metodos se utilizan en casos de dominios no acotados, en los cuales una
onda se va transportando por adveccion y se genera la malla. Las EDPs que se deben de
satisfacer para este metodo son
x x y y x x y y
+ = 0, = A(x, y),
donde A(x, y) es el area de la celda situada en el punto (x, y). Un ejemplo de este tipo de
mallas se puede ver en la figura 3.5.
Metodos Variacionales
A diferencia de los dos metodos mencionados con anterioridad, los metodos variacio-
nales han sido usados relativamente poco en la industria debido a que maneja conceptos
matematicos un poco mas avanzados como lo es el calculo variacional [Elsgoltz, 1991].
La ventaja de este metodo es que, mediante el uso de funcionales, nos provee de control
sobre la longitud de los segmentos, el area y la ortogonalidad de los angulos de las celdas
pertenecientes a la malla generada.
La manera tradicional de resolver un funcional es obtener las ecuaciones de Euler-
Lagrange a partir de este, las cuales resultan ser transformaciones que minimizan el fun-
cional; empero, al aplicar un enfoque discreto para la creacion de mallas mediante el metodo
variacional haceindo uso del Metodo directo, ya que nos permite garantizar que se generan
mallas convexas en regiones irregulares. Dicho metodo se define de la siguiente manera:
donde G es una funcion suave de 4 vari ables, con x = (x, y) tal que x(, ) y y(, ) son
funciones suaves definidas en [0, 1] [0, 1].
Sea c un vector de funciones tal que x + c es el espacio de vectores de funciones dados
, entonces la primera variacion del funcional I en la direccion c en el punto x esta dada
por
d
Dc I[x] = I[x + c]|=0 ,
d
y la segunda variacion esta dada por
d
Dc2 I[x] = Dc I[x + c]|=0 .
d
De modo que para que I[x] alcance su mnimo en x, se debe cumplir que Dc2 I[x] 0 c.
Funcional de longitud
!
1Z 1 x2 + y2 x2 + y2
Z
1
IL [x] = + dd.
2 0 0
54 Captulo 3. Metodos Numericos
Funcional de area
1Z 1
J2
Z
1
IA [x] = dd.
2 0 0
Funcional de ortogonalidad
Z 1Z 1
1
IO = (x x + y y )2 dd.
2 0 0
1Z 1 (x2 + y2 )(x2 + y2 )
Z
1
IAO = dd.
2 0 0
x y
Donde xi = i , yi = i ; = (, ) > 0 y = (, ) > 0 son funciones de peso, las
cuales nos dan control sobre la malla; y J 2 = (x2 + y2 )(x2 + y2 ) (x x + y y )2 es el
Jacobiano de la transformacion.
Siguiendo con el ejemplo de la herradura, en la figura 3.6 podemos ver las mallas genera-
das por el software UNAMALLA
[workgroup,
R 2011], obtenidas emplenado los funcionales
antes mencionados.
Existen tantos generadores de mallas debido a que, para obtener una buena apro-
ximacion no es suficiente con hacer los tamanos de paso lo mas pequenos posibles, sin
mencionar que esto aumenta el numero de puntos de la malla lo cual lleva consigo un alto
costo computacional.
Un indicador de la calidad de la malla es que los tamanos de paso x, y sean lo
mas parecidos posibles, de otro modo se puede perder el orden de la aproximacion y se
incrementa el numero de condicion del problema discreto. Para ejemplificar lo anterior,
tomemos la ecuacion del calor en 1D (1.9)1 sobre una malla no uniforme, donde x =
xi+1 xi = hi , con hi distintos i [1, m 1] (ver figura 3.7).
Al hacer el desarrollo en serie de Taylor para la evaluacion en los puntos xi1 y xi+1 ,
1
Esta ecuacion se aproximo en una malla uniforme en el captulo 1.
3.1. Mallas Estructuradas 55
Ya que los tamanos de paso son distintos no podemos solo sumar para eliminar terminos,
por lo que multiplicamos la ecuacion (3.1) por hi y la (3.2) por hi1 , sumando y despejando
la segunda derivada llegamos a que
De la ecuacion anterior podemos ver que resulta una aproximacion de orden 1, mientras
que al utilizar una malla regular obtenemos una aproximacion de orden 2. Para la parcial
con respecto del tiempo aplicamos diferencias hacia adelante, de modo que la aproximacion
3.2. Diferencias Finitas 57
donde
1 2 ht 2 h2 (ht
1 h2 1 +h2 )
0 0
2 h2 (ht 1 2 ht 2 h3 (ht 0
2 +h3 ) 2 h3 2 +h3 )
..
.. ..
2 h3 (ht 1 2 ht
0 . . .
3 +h4 ) 3 h4
.. ..
. 0 2 h4 (ht
4 +h5 )
.
A= ,
.. .. ..
. . .
.. ..
. . 0
.. .. t
. . 2 hm2 (hm2 +hm3 )
t t
0 0 2 hm2 (hm2 +hm1 ) 1 2 hm2 hm1
con uk como en (1.15). Sin embargo, al tomar diferentes tamanos de paso tenemos que las
entradas de la matriz A son diferente orden de magnitud, lo cual incrementa el numero de
condicion de la matriz. Esto es relevante ya que, si incrementa mucho esto se puede volver
un problema mal condicionado.
En el captulo 1 se dio una explicacion breve de lo que son las diferencias finitas y
como se aplican a regiones con mallas rectangulares regulares. Ya que en este trabajo nos
enfocaremos a regiones fsicas cuyo dominio es no regular, las cuales utilizan mallas como
las de la seccion anterior, aplicaremos el metodo de diferencias finitas generalizadas.
58 Captulo 3. Metodos Numericos
Para aproximar una EDP de segundo orden de manera general, tomamos el operador
lineal basico de segundo orden
2u 2u 2u u u
Lu = A + B + C +D +E + F u,
x2 xy y 2 x y
Pq
P2
P1
P0
donde i es constante para cada pi = (xi , yi ) i [0, q]. Para que este esquema cumpla que
la aproximacion se acerque a la solucion conforme los nodos vecinos se acerquen al nodo
central p0 , es necesario que se cumpla la condicion de consistencia:
q
X
Lu|p0 i u(pi ) 0. (3.7)
i=0
donde x y y son las distancias, tanto horizontales como verticales, del nodo central p0
a sus vecinos pi . Por lo que para que se satisfaga la condicion (3.7), es necesario que cada
uno de los coeficientes que se encuentran entre parentesis de la expresion (3.8) se anulen,
i.e.,
q
X q
X
F (p0 ) i = 0, D(p0 ) i xi = 0,
i=0 i=0
q q
X X i (xi )2
E(p0 ) i yi = 0, A(p0 ) = 0,
2
i=0 i=0
q q
X X i (yi )2
B(p0 ) i xi yi = 0, C(p0 ) = 0. (3.9)
2
i=0 i=0
De modo que si esto se satisface nuestra diferencia quedara acotada por una fun-
cion O(xi , yi ), la cual involucra a las derivadas de orden mayor y disminuye conforme
p1 , ..., pq p0 si la funcion es lo suficientemente suave.
Por simplicidad, podemos reescribir las condiciones dadas por (3.9) de manera matricial,
obteniendo as el sistema
1 1 1 0 F (p0 )
0
x1 xq 1 D(p0 )
0 y1 yq 2 E(p0 )
= ,
0 (x1 )2 (xq )2
2A(p0 )
0 x y
1 1 xq yq B(p0 )
0 (y1 )2 (yq )2 q 2C(p0 )
60 Captulo 3. Metodos Numericos
el cual tiene 6 ecuaciones con q + 1 incognitas. Esto quiere decir que en la mayora de los
casos el sistema no esta bien determinado.
Ahora bien, por inspeccion podemos ver que la primera ecuacion se puede calcular por
separado como
q
X
0 = F (p0 ) i , (3.10)
i=1
donde
x1 xq 1 D(p0 )
y1 yq 2 E(p0 )
2 2 ,
M =
= y =
(x 1 ) (x q ) 2A(p 0 ) .
x1 y1 xq yq B(p0 )
Recordemos que nos interesa saber los valores del vector para poder aplicar el esquema
(3.6) por lo que buscamos resolver el sistema (3.11). Esto se puede realizar tomandolo desde
diferentes enfoques:
sujeto a (3.11).
Una vez calculados los valores de tendremos los pesos de cada uno de los nodos
vecinos en el esquema, obteniendo as el esquema en diferencias finintas generalizadas
3.2. Diferencias Finitas 61
u u u
+a +a = 0.
t x y
con
0 = 1 2 3 .
Resolviendo este sencillo sistema de ecuaciones tenemos que el vector de pesos para-
metrizado, con un grado de libertad, es
a
h 1
1
= a
.
h
1
1
62 Captulo 3. Metodos Numericos
Para la derivada con respecto del tiempo aplicamos diferencias finitas hacia adelante,
de modo que la aproximacion para el punto p0 en un paso de tiempo posterior es
h a a i
uk+1
0 = uk
0 + t ( )u
1 0
k
+ uk
1 1 + ( )u
1 2
k
+ k
1 3 .
u
h h
Al final del captulo 1 se planteo la cuestion de como garantizar que nuestra aproxima-
cion se acerca a la solucion exacta de la ecuacion, minimizando el error. Hasta el momento,
sabemos que una parte importante para obtener una buena aproximacion es tener una
buena malla, por lo cual uno pensara que basta con hacer t, x y y tender a 0 para
obtener convergencia en nuestra aproximacion, sin embargo no es tan sencillo.
Para responder a dicha pregunta estudiaremos el Teorema de equivalencia Lax, el cual
nos dice que a fin de obtener una aproximacion convergente, por una parte es necesario que
esta sea consistente con la ecuacion gobernante. Esto es, que el error local de truncamiento
se vaya a 0 en cada puno de la malla; y por otra parte, que el algoritmo utilizado para
resolver las ecuaciones algebraicas resultantes de la discretizacion sea estable.
Una primera estimacion del error es tomar la diferencia entre la aproximacion y la
evaluacion de la solucion en un mismo punto, de modo que definimos al vector de error
64 Captulo 3. Metodos Numericos
local E como
E = u u,
donde u denota la evaluacion de la funcion en los puntos de la malla, por lo que este vector
contiene los errores en cada uno de ellos; para poder acotar este vector debemos de tomar
alguna norma.
Consistencia
uk+1
i = cuki1 + (1 2c)uki + cuki+1 , (3.12)
t
donde c = (x)2
. Si sustituimos la evaluacion de la solucion u(t, x) en los puntos de la
malla, de tenemos que
donde el conjunto terminos que se encuentran entre parentesis se conoce como Error local
de truncamiento.
Por la ecuacion (1.9) sabemos que los primeros dos terminos se anulan, de modo que
se debe de satisfacer la relacion
Es facil ver que entre mas decrezcan los tamanos de paso, el error local de truncamiento
disminuira; de modo que si tomamos el lmite cuando t, x 0, este se anula. A esta
propiedad se le llama Consistencia.
Estabilidad
ik = |uki uki |,
generados en cada punto (tk , xi ), de modo que el error del esquema (3.12) para cada punto
es
ik+1 = ci1
k
+ (1 2c)ik + ci+1
k
. (3.14)
Asumiendo que los valores de las condiciones iniciales y de frontera estan dados, tenemos
que los errores iniciales i0 , y los de frontera 1k , m
k se anulan, i.e, 0 = 0 i [1, m] y
i
1k = m
k = 0 k [0, n]; lo cual nos lleva al sistema
k+1 = A k , (3.15)
donde
1 2c c 0 0
c 1 2c c 0
2k
.. .
0 c 1 2c c 0 .
..
.. ..
k = ik .
A = 0 c . . ,
.. .. .. .. ..
. 0 . . . 0 .
.. .. k
m1
. . c
0 0 c 1 2c
66 Captulo 3. Metodos Numericos
Podemos ver que la matriz A es de Toeplitz, de modo que sus valores propios estan dados
por
j
j = 1 4c sin2 ,
2(m 1)
lo que nos indica que los errores desminuiran conforme k crece, si la transformacion A es
una contraccion. Esto implica que
2 j
1 1 4c sin 1, j [1, m 2],
2(m 1)
Por lo que diremos que el metodo es estable siempre y cuando se satisfaga que c 12 , a
dicha constante se le conoce como coeficiente de Courant-Friedrich-Levy o CFL, por sus
siglas.
Los metodos en los que se debe de cumplir alguna restriccion sobre el CFL se cono-
cen como condicionalmente estables, en caso contrario son incondicionalmente estables;
mientras que si nunca se cumple que |j | 1 son metodos incondicionalmente inestables.
Demostracion. Tomemos la relacion de recurrencia para los errores (3.15), dado que el
tamano de paso x es pequeno y que la solucion de la ecuacion diferencial es lo suficien-
temente suave, existe M = M (T ) tal que
Recordemos que, al ser el metodo estable, se cumple que ||A|| 1, lo que nos lleva a que
T
|| n || < M n(x)p M (x)p .
t
Recordemos la mayor motivacion de los volumenes finitos son las Leyes de Conserva-
cion, las cuales se definen de forma general como
fj : D Rp , j [1, d].
d
u X
+ (fj (u)) = 0, x = (x1 , , xd ) Rd , t > 0, (3.16)
t xj
j=1
y la forma integral es
Z xi
d
u(t, x) = fj (t, u(xi1 )) fj (t, u(xi )), (3.17)
dt xi1
u : [0, ) Rd D, (3.18)
(t, x1 , , xd ) (u1 , , up ) (3.19)
Cabe mencionar que no existen en general soluciones en el sentido clasico, pues a partir
de un intervalo de tiempo finito pueden generarse discontinuidades. Un ejemplo claro de
esto son las ondas de choque, la cuales surgen en la dinamica de los gases.
La existencia de estas soluciones discontinuas nos conduce a introducir soluciones debi-
les del problema de Cauchy, para lo que es necesario escribir las leyes de conservacion en
su forma integral.
Sea C01 ([0, +)Rd ) el espacio de funciones C 1 con soporte compacto en [0, +)Rd .
Si u es una solucion clasica y C01 ([0, +)Rd )p , utilizando la formula de Green tenemos
que
Z Z d
u +
X
0= (fj (u)) dxdt =
0 R d t x j
j=1
Z Z d Z
u +
X
fj (u) dxdt u(0, x) (0, x)dx.
0 Rd t xj Rd
j=1
3.3. Volumenes Finitos 69
Por tanto, cualquier solucion clasica del problema de Cauchy verifica que C01 ([0, +)
Rd )p ,
Z Z d Z
u +
X
fj (u) dxdt + u(0, x) (0, x)dx = 0. (3.21)
0 R d t xj Rd
j=1
Por construccion cualquier solucion clasica del problema de Cauchy es una solucion
debil. Recprocamente, si u es de clase C 1 , tomando C01 ([0, +) Rd )p , entonces w
satisface (3.16) y es una solucion clasica; mas aun, integrando (3.21) por partes, (3.16) se
satisface puntualmente.
Ya que hemos descrito el tipo de soluciones que buscaremos, veamos como se aplica el
metodo de volumenes finitos para obtener una aproximacion.
Ci = (xi1/2 , xi+1/2 ),
pensando que estamos en una malla regular, tendremos que el tamano de paso x es el
70 Captulo 3. Metodos Numericos
ni,j+1 Vy
Vx
ni1,j ni+1,j
y
Vx
Vy ni,j1
mismo para todas. El valor Qni aproximara el valor promedio sobre la i-esima celda, en el
instante tn de manera que
Z xi+1/2 Z
1 1
Qni u(tn , x)dx = u(tn , x)dx. (3.22)
x xi1/2 x Ci
Una de las propiedades importantes de los metodos numericos que surgen de leyes de
conservacion, como lo son los volumenes finitos, es que podemos asegurar que es un metodo
conservativo ya que imita el comportamiento de la solucion real, lo cual es en extremo
importante. Esto sucede debido a que N n
P
i=1 Qi x aproxima la integral de u sobre todo
el intervalo [a, b], y al usar un metodo que se encuentra en forma conservativa, la suma
discreta solo cambiara debido a los flujos en las frontera x = a y x = b. Fsicamente, esto
nos dice que la masa en el dominio computacional se conservara o, al menos, cambiara
conforme lo dicten las condiciones de frontera dadas.
3.3. Volumenes Finitos 71
Tomando la forma integral de la ley de conservacion (3.17) sobre la celda tenemos que
Z
d
u(t, x)dx = f (u(t, xi1/2 )) f (u(t, xi+1/2 )), (3.23)
dt Ci
de modo que mediante esta expresion podemos generar un esquema para aproximar el valor
de Qn+1
i , dado Qni . Integrando (3.23) en el tiempo, de tn a tn+1 tenemos que
Z Z Z tn+1 Z tn+1
u(tn+1 , x)dx u(tn , x)dx = f (u(t, xi1/2 ))dt f (u(t, xi+1/2 ))dt.
Ci Ci tn tn
Esta relacion nos dice exactamente como cambiara el valor promedio de u sobre la i-esima
celda (3.22) en un paso de tiempo posterior. En general, no podemos evaluar las integrales
con respecto del tiempo de forma exacta, ya que el valor de u(t, xi1/2 ) vara con el tiempo
para cada frontera de la celda. Debido a que en los problemas hiperbolicos la informacion
se propaga con velocidad finita, es razonable que supongamos el valor del flujo numerico
en las fronteras a partir de Qni1 y Qni , de modo que tomaremos la aproximacion del flujo
promedio como Z tn+1
n 1
Fi1/2 = F(Qni1 , Qni ) f (u(t, xi1/2 )), (3.25)
t tn
donde F es una funcion de flujo numerico. Aplicando (3.22) y (3.25) en (3.24), el metodo
se escribe como
t
Qn+1
i = Qni [F(Qni , Qni+1 ) F(Qni1 , Qni )], (3.26)
x
de modo que obtenemos un metodo explcito que depende de como elijamos la funcion de
flujo numerico F.
u f (u) u
+ = 0, con f (u) = ,
t x x
donde la funcion f representa el flujo. Dados los valores promedios en dos celdas contiguas
72 Captulo 3. Metodos Numericos
Qi1 ,Qi (3.22), el flujo numerico F(Qi1 , Qi ) en la frontera entre ellas puede ser definido
de manera natural como
Qi Qi1
F(Qi1 , Qi ) = i1/2 ,
x
donde 11/2 (xi1/2 ), nos indica la difusividad en la frontera entre ambas celdas. Se
dice que es definido de manera natural ya que representa la interpretacion fsica de que
la magnitud conservada medida por u, que pasa de una celda a otra con una velocidad
proporcional a la diferencia entre los valores de los promedios Q de dichas celdas.
Sustituyendo el valor de F en nuestro metodo dado por (3.26), llegamos a la discreti-
zacion
t
Qn+1 = Qni + [ (Qn Qni ) i1/2 (Qni Qni1 )], (3.27)
i
(x)2 i+1/2 i+1
la cual es identica a la discretizacion estandar en diferencias finitas de la ecuacion de
difusion en 1D debido a la eleccion de F; en el caso de las ecuaciones no lineales, la eleccion
del flujo numerico no resulta tan natural. Ademas, no debemos olvidar que obtuvimos la
expresion (3.27) a traves de la forma integral de la ecuacion (1.9), obteniendo as un metodo
conservativo.
Una vez descritos los metodos numericos, haremos uso y abuso de los mismos para apro-
ximar la solucion de las ecuaciones de Saint-Venant en su version conservativa:
h
+ (au) + (av) = 0, (4.1)
t x y
h p
(au) + (au2 ) + (auv) f av + ga + cf u u2 + v 2 = 0, (4.2)
t x y x
h p
(av) + (auv) + (av 2 ) + f au + ga + cf v u2 + v 2 = 0. (4.3)
t x y y
de modo que cambiamos de las variables clasicas a las conservativas, trabajando ahora con
el tirante (q1 ) y los gastos (q2 , q3 ); lo que ademas simplifica la notacion. Es inmediato ver
que la ecuacion (4.1) se convierte en
q1 q2 q3
+ + = 0. (4.5)
t x y
73
74 Captulo 4. Discretizacion de las ecuaciones de Saint-Venant
Ahora veamos el caso de la ecuacion (4.2), la cual se puede escribir de la siguiente manera
r
(u2 + v 2 )a2
(au)(au) (au)(av) h
(au) + + f (av) + ga + cf u = 0.
t x a y a x a2
q22 g 2
q2 q2 q3 q2
q
+ + q1 + f q3 + cf q22 + q32 = 0. (4.6)
t x q1 2 y q1 (q1 Zb )2
q32 g 2
q3 q2 q3 q3
q
+ + + q1 + f q2 + cf q22 + q32 = 0. (4.7)
t x q1 y q1 2 (q1 Zb )2
Q Qx Qy
+ + + G = 0, (4.8)
t x y
donde
q1 q2
q2 g
Q = q2 , Qx = 2
q1 + 2 q1 ,
2
q2 q3
q3 q1
q3 0
q2 q3 q2
p
2 + q2
Qy =
2 q1
, G= f q3 + cf (q 1 Z )2 q 2 3 .
b p
q3 g 2 q3 2 2
q1 + q
2 1
f q2 + cf (q1 Z )2 q2 + q3
b
4.1. Esquema en Diferencias Finitas 75
Empezemos tomando el cuadrado unitario [0, 1] [0, 1] como la region fsica con una
discretizacion uniforme, de modo que los tamanos de paso x, y, t son constantes.
Al aplicar el esquema FTCS con un estencil de 4 puntos (figura 4.1) a las ecuaciones
(4.5 - 4.7), obtenemos el sistema que aproxima las incognitas para un paso posterior en
el tiempo. A partir de ahora, por simplicidad, denotaremos a la incognita evaluada en el
(k)
punto (i.j), en el tiempo k como ql(i,j) . De modo que tenemos el sistema
(k) (k) (k) (k)
(k+1) (k)
q2(i+1,j) q2(i1,j) q2(i,j+1) q2(i,j1)
q1(i,j) = q1(i,j) t + , (4.9)
2x 2y
(k) (k)
(k+1) (k) t (q2(i+1,j) )2 (q2(i1,j) )2 g
(k) (k)
q2(i,j) = q2(i,j) (k)
(k) + (q1(i+1,j) )2 (q1(i1,j) )2
2x q1(i+1,j) q1(i1,j) 2
(k) (k) (k) (k)
t q2(i,j+1) q3(i,j+1) q2(i,j1) q3(i,j1) (k)
(k)
(k)
+ tf q3(i,j)
2y q1(i,j+1) q1(i,j1)
(k)
q2(i,j)
r
(k) (k)
t cf 2 (q2(i,j) )2 + (q3(i,j) )2 , (4.10)
(k)
q1(i,j) Zb(i,j)
76 Captulo 4. Discretizacion de las ecuaciones de Saint-Venant
(k) (k) (k) (k)
(k+1) (k) t q2(i+1,j) q3(i+1,j) q2(i1,j) q3(i1,j)
q3(i,j) = q3(i,j) (k)
(k)
2x q1(i+1,j) q1(i1,j)
(k) 2 (k)
t (q3(i,j+1) ) (q3(i,j1) )2 g (k) (k)
(k)
(k) + (q1(i,j+1) )2 (q1(i,j1) )2
2y q1(i,j+1) q1(i,j1) 2
(k)
q
r
(k) 3(i,j) (k) (k)
tf q2(i,j) t cf 2 (q2(i,j) )2 + (q3(i,j) )2 . (4.11)
(k)
q1(i,j) Zb(i,j)
Para corroborar la estabilidad del sistema anterior empecemos con verificar una condi-
cion necesaria, mas no suficiente, conocida como Analisis de Von Neumann. Dicho analisis
surge de resolver el problema de Cauchy para una EDP lineal haciendo uso de la transfor-
mada de Fourier. La razon principal por lo que esto funciona, es porque las funciones ex y
ey , con los numeros de onda constantes y , la amplitud de onda e = 1, son
eigenfunciones del operador diferencial x y y , respectivamente; de modo que el valor la
funcion desconocida de nuestra EDP, por ejemplo Q, evaluada en las coordenadas (xi , yj )
4.1. Esquema en Diferencias Finitas 77
(k)
Q(i,j) = k e(ix+jy) .
De manera mas general, podemos permitir cierto crecimiento del factor de amplificacion
mediante la Estabilidad de Lax-Richtmyer.
||g k || Cs , kt T, t < t0 .
De modo que si
||g|| 1 + bt, t < t0 ,
entonces
||g k || (1 + bt)k ebkt ebT , kt T.
Debido a que nuestro sistema (4.8) es no lineal, tomaremos la linealizacion del mismo
para poder realizar el analisis de Von Neumann. Sean dadas, mediante series de Fourier,
las soluciones exactas de nuestras ecuaciones
(k)
q1(i,j) = k e(ix+jy) ,
(k)
q2(i,j) = k e(ix+jy) ,
(k)
q3(i,j) = k e(ix+jy) . (4.12)
78 Captulo 4. Discretizacion de las ecuaciones de Saint-Venant
t h k ((i+1)x+jy) i
(k+1) e(ix+jy) = k e(ix+jy) e k e((i1)x+jy)
2x
t h k (ix+(j+1)y) i
e k e(ix+(j1)y) .
2y
t k ex ex t k ey ey
k+1 k
= . (4.13)
x 2 y 2
Para el siguiente esquema (4.10) tomaremos los valores de f y cf nulos ya que multipli-
can a evaluaciones de las funciones en puntos de la malla, cuando a nosotros nos interesa
estudiar el comportamiento de los errores de las aproximaciones para las derivadas; ademas,
ya que el analisis de Von Neumann se aplica a sistemas lineales, analizaremos el esquema
para la ecuaciones linealizadas, las cuales se obtienen mediante un analisis asintotico to-
mando la funcion qi como la suma de una constante Qi con una pequena perturbacion qi ,
i.e., qi = Qi + qi para i = 1, 2, 3. De modo que las ecuaciones (4.6) y (4.7) linealizadas,
respectivamente, se escriben como
q2 Q22 q1 Q2 q2 q1 Q2 Q3 q1 Q2 q3 Q3 q2
2 +2 + gQ1 + + = 0, (4.14)
t Q1 x Q1 x x Q21 y Q1 y Q1 y
q3 Q2 Q3 q1 Q2 q3 Q3 q2 Q23 q1 Q3 q3 q1
2 + + 2 +2 + gQ1 = 0. (4.15)
t Q1 x Q1 x Q1 x Q1 y Q1 y y
k+1 k k Q2 Q3 k Q2 k Q3 sin (x)
= t + +
Q21 Q1 Q1 x
2
Q Q3 sin (y)
t k 23 + k 2 + k gQ1 . (4.17)
Q1 Q1 y
s1 s2
1 x y
Q2
h i h i
s1
QQ2 Q2 3 y
s2
1 2Q2 s1 Q3 s2
Q 2 s2
A1 = Q22 + gQ1 x Q1 x + Q1 y Q1 y
,
h 1 2 1 i h i
Q
QQ2 Q2 3 x
s1
+ Q32 + gQ1 y s2
Q 3 s1
Q1 x 1 Q2 s1
Q1 x + 2Q 3 s2
Q1 y
1 1
amplificacion
t t t
||I F1 || ||I|| + ||F1 || = 1 + ||F1 ||. (4.19)
h h h
Dado que tenemos control sobre t y h, podemos obtener una condicion para la estabi-
lidad lo que nos indica que tenemos un metodo condicionalmente estable; sin embargo,
no podemos olvidar que la cota depende de la norma que elijamos para F1 , lo mas con-
veniente resulta ser tomar || ||1 , de modo que si al tomar una cota mas holgada para
(4.19) obtenemos una buena aproximacion, se espera que con las otras se conserve esa cota
superior ya que esta norma es la que mas amplifica a los eigenvectores de cualquier matriz
[Lloyd N. Trefethen, 1990].
Tomemos ahora dos esteciles diferentes para la aproximacion de las parciales en x y y los
1 1
cuales tienen los pesos Tx = 6x (0, 1, 1, 1, 0, 0, 1, 1, 1) y Ty = 6y (0, 1, 0, 1, 1, 1, 1, 0, 1)
respectivamente, podemos tomarlos as ya que satisfacen las ecuaciones (3.10) y (3.11); con
lo que obtenemos el siguiente esquema para aproximar el sistema (4.8).
(k+1) (k)
q1(i,j) = q1(i,j)
t h (k) (k) (k) (k) (k) (k)
i
q2(i1,j1) q2(i1,j) q2(i1,j+1) + q2(i+1,j1) + q2(i+1,j) + q2(i+1,j+1)
6x
t h (k) (k) (k) (k) (k) (k)
i
q3(i1,j1) q3(i1,j+1) + q3(i,j1) q3(i,j+1) + q3(i+1,j1) q3(i+1,j+1) ,
6y
(4.20)
4.1. Esquema en Diferencias Finitas 81
2 2 2
(k) (k) (k)
t q2(i1,j1) q2(i1,j) q2(i1,j+1)
(k+1) (k)
q2(i,j) = q2(i,j) (k)
6x (k) (k)
q1(i1,j1) q1(i1,j) q1(i1,j+1)
2 2 2
(k) (k) (k)
q
t 2(i+1,j1) q 2(i+1,j) q 2(i+1,j+1)
+ +
(k) (k) (k)
6x
q1(i+1,j1) q1(i+1,j) q1(i+1,j+1)
2
t g (k)
2
(k)
2
(k)
q1(i1,j1) q1(i1,j) q1(i1,j+1)
6x 2
2
t g (k) 2
(k)
2
(k)
q1(i+1,j1) + q1(i+1,j) + q1(i+1,j+1)
6x 2
(k) (k) (k) (k) (k) (k)
q q
t 2(i1,j1) 3(i1,j1) q q
2(i1,j+1) 3(i1,j+1) q q
2(i,j1) 3(i,j1)
(k)
(k)
+ (k)
6y q1(i1,j1) q1(i1,j+1) q1(i,j1)
(k) (k) (k) (k) (k) (k)
q q
t 2(i,j+1) 3(i,j+1) q q
2(i+1,j1) 3(i+1,j1) q q
2(i+1,j+1) 3(i+1,j+1)
(k)
+ (k)
(k)
6y q q q
1(i,j+1) 1(i+1,j1) 1(i+1,j+1)
(k)
q2(i,j)
r
(k) (k) (k)
+ tf q3(i,j) tcf 2 (q2(i,j) )2 + (q3(i,j) )2 , (4.21)
(k)
q1(i,j) Zb(i,j)
82 Captulo 4. Discretizacion de las ecuaciones de Saint-Venant
(k) (k) (k) (k) (k) (k)
(k+1) (k) t q2(i1,j1) q3(i1,j1) q2(i1,j) q3(i1,j) q2(i1,j+1) q3(i1,j+1)
q3(i,j) = q3(i,j) (k)
(k)
(k)
6x q1(i1,j1) q1(i1,j) q1(i1,j+1)
(k) (k) (k) (k) (k) (k)
t q2(i+1,j1) q3(i+1,j1) q2(i+1,j) q3(i+1,j) q2(i+1,j+1) q3(i+1,j+1)
(k)
+ (k)
+ (k)
6x q1(i+1,j1) q1(i+1,j) q1(i+1,j+1)
2 2 2
(k) (k) (k)
q
t 3(i1,j1) q 3(i1,j+1) q 3(i,j1)
+
(k) (k) (k)
6y
q1(i1,j1) q1(i1,j+1) q1(i,j1)
2 2 2
(k) (k) (k)
t q3(i,j+1) q3(i+1,j1) q3(i+1,j+1)
(k) + (k)
(k)
6y
q 1(i,j+1) q q
1(i+1,j1) 1(i+1,j+1)
2
t g (k) 2
(k)
2
(k)
q1(i1,j1) q1(i1,j+1) + q1(i,j1)
6y 2
2
t g (k)
2
(k)
2
(k)
q1(i,j+1) + q1(i+1,j1) q1(i+1,j+1)
6y 2
(k)
q3(i,j)
r
(k) (k) (k)
tf q2(i,j) tcf 2 (q2(i,j) )2 + (q3(i,j) )2 . (4.22)
(k)
q1(i,j) Zb(i,j)
k+1 = A2 k ,
con t1,2 = t t
3 sin (x)(2 cos (y)+1) y t2,1 = 3 sin (y)(2 cos (x)+1). Si tomamos
x = y = h, podemos reescribir la matriz como
t
I F2 ,
h
4.1. Esquema en Diferencias Finitas 83
t
||A2 || 1 + ||F2 ||,
h
lo cual nos indica que el esquema propuesto es condicionalmente estable si tomamos ta-
t
manos de paso tales que h sea lo suficientemente pequeno.
Para mejorar la estabilidad del sistema con el esquema anterior seguimos la idea de
Lax-Friedrichs [LeVeque, 2007], de modo que aproximamos la funcion u en el punto (i, j)
en el k-esimo paso en el tiempo, con un promedio de la misma en el espacio,
Aplicando el analisis de Von Neumann del mismo modo en que lo hemos venido hacien-
do, obtenemos que la matriz que indica el comportamiento de los factores de amplificacion
A3 es
c1 +c2 t
1,2 t2,1
2 x y
Q22
h i h i
2 + gQ1 tx 1,2
+ QQ2 Q2 3
t2,1 c1 +c2
2Q 2 t1,2 Q3 t2,1 Q2 t2,1
Q1 x
y i 2 Q1 y
,
h Q1 2 1 h Q1 y i
t1,2 Q t2,1 t1,2 Q2 t1,2 t2,1
QQ2 Q2 3 x + Q32 gQ1 y
Q3
Q 1 x
c1 +c2
2 Q1 x + 2Q
Q1
3
y
1 1
con t1,2 = t t
3 sin (x)(2 cos (y) + 1), t2,1 = 3 sin (y)(2 cos (x) + 1), c1 =
cos (x) y c2 = cos (y). Tomando x = y = h, reescribimos la matriz como
t
I F3 ,
h
Ya que este tipo de ecuaciones se pueden aplicar para el modelado de canales, tomare-
mos una region elongada para representar una seccion de un canal circular (ver figura 4.2);
cabe mencionar que dicha region se usa solo para ejemplificar el funcionamiento de los es-
quemas, ya que no representa una seccion hidraulica de maxima eficiencia [Chanson, 2004].
Una vez obtenidos los esquemas para regiones rectangulares, pasarlo a regiones elon-
gadas con simetra cilndrica o polar no significa mayor problema, sin embargo habra un
ligero cambio; tomaremos submallas de 3 3 para las cuales calcularemos explcitamente
el peso de los nodos (s) de dichas submallas. Ya que tomamos una region elongada en
la direccion del angulo polar, obtenemos un corte transversal axisimetrico, de modo que el
calculo de los coeficientes s se realiza una sola vez ya que resultan ser invariantes ante
trasnformaciones rgidas.
Tomando las consideraciones anteriores podemos aplicar los esquemas antes menciona-
dos para regiones rectangulares, cuyos analisis de estabilidad son analogos a los realizados
con anterioridad.
donde
q1 q2
q2 g
Q = q2 , Qx = 2
q1 + 2 q1 ,
2
q2 q3
q3 q1
q3 0
q2 q3 q2
p
2 2
Qy = f q3 + cf (q1 Zb )2p q2 + q3
, G= y
2 q1
q3 g 2 q3
q1 + 2 q1
f q2 + cf (q1 Z b)
2 q22 + q32
Ci,j = ((xi1/2 , xi+1/2 ) (yj1/2 , yj+1/2 )).
ya que todos los terminos que se encuentran entre parentesis son evaluaciones de las fun-
ciones, el valor de la integral es
(k+1) (k) (k) (k) (k) (k)
q1(i,j) q1(i,j) q2(i+1,j) q2(i1,j) q3(i,j+1) q3(i,j1)
+ + Aij = 0,
t 2x 2y
4.2. Esquema en Volumenes Finitos Hbridos 89
donde Aij denota el area de la celda Ci,j . Despejando para un paso posterior en el tiempo
obtenemos el esquema
(k) (k) (k) (k)
(k+1) (k)
q2(i+1,j) q2(i1,j) q2(i,j+1) q2(i,j1)
q1(i,j) = q1(i,j) t + , (4.28)
2x 2y
el cual se ve identico al primer esquema que obtuvimos mediante diferencias finitas, empero,
no debemos olvidar que este surge de la forma integral de la ecuacion y que las evaluaciones
se realizan en los centroides de las celdas, no en los nodos.
Para la segunda ecuacion tenemos que su forma integral esta dada por
q22 g 2
Z
q2 q2 q3 q2
q
+ + q1 + f q3 + cf 2 2
q2 + q3 dA = 0. (4.29)
Ci,j t x q1 2 y q1 (q1 zb )2
q32 g 2
Z
q3 q2 q3 q3
q
+ + + q1 + f q2 + cf 2 2
q2 + q3 dA = 0, (4.31)
Ci,j t x q1 y q1 2 (q1 zb )2
De modo que los esquemas (4.28), (4.30) y (4.32) nos dan una aproximacion a la
solucion del sistema (4.8), la cual sabemos que puede ser convergente en el caso del sistema
linealizado1 .
A diferencias del metodo de diferencias finitas, para volumenes finitos se han realizado
mayores estudios sobre las aproximaciones de ecuaciones no lineales, siendo el mas relevante
el metodo de Godunov [LeVeque, 1992].
1
Se realiza un analisis analogo al aplicado para el esquema en diferencias finitas (FTCS).
Captulo 5
Una vez propuesto los esquemas pongamoslos en practica para estudiar su compor-
tamiento. Para esto realizaremos diversas pruebas numericas en diferentes regiones fsicas
-tanto rectangulares como elongadas- dentro del intervalo temporal [0,1]. Para dichas prue-
bas tomaremos las contribuciones de las fuerzas volumetricas como constantes, al igual que
el coeficiente de friccion en el fondo (para agua y lodo), tomando los valores
donde la velocidad angular de la tierra es = 21600 rad/s y el angulo de latitud geografico
es = 19.61049828. Esto se puede ya que consideramos secciones pequenas de algun canal
cuyo fondo es de un mismo material.
(x0.5)2 (y0.5)2
q1 (x, y, 0) = 0.5 + 0.002e .001 ,
q1 (x, y, 0) = 0.5 + 0.003 sin (5(x + y)),
donde la primera representa un soliton y la segunda representa ondas tipo Airy, ambas
propuestas por [Mader, 2000]; mientras que como condicion de frontera tomaremos la pro-
91
92 Captulo 5. Pruebas numericas y resultados
para todo tiempo; los gastos antes mencionados se tomaran como condicion inicial. Para las
regiones elongadas tomaremos el mismo perfil parabolico para representar la distribucion
de velocidades, sin embargo, en este caso el gasto sobre el eje y, q3 , no se anula sino que
esta dado por Z Z xi+1
vdA = v(x, y)dx;
xi
nuevamente, tomaremos los gastos antes mencionados como condicion inicial. No debemos
olvidar que las unidades fsicas de los gastos son de m3 /s, en la literatura, al hacer la
integracion en la direccion vertical (realizada en el captulo 2) se deja de escribir la unidad
de longitud correspondiente.
Todas las pruebas numericas fueron realizadas mediante la implementacion de los esque-
5.2. Region cuadrada 93
Teniendo en mente que las condiciones inicales solo cambiaran para el tirante q1 , si
94 Captulo 5. Pruebas numericas y resultados
graficamos la condicion inicial para el gasto sobre el eje x, q2 , vista desde planta obtenemos
la figura 5.3; recordemos que para el eje y, el gasto q3 es nulo en el tiempo inicial, por
lo que es innecesario incluir la grafica. En las graficas que mostraremos en las secciones
siguientes la escala vertical esta amplificada para realzar las caractersticas de la geometra
de la solucion, no obstante debe tenerse presente que las escalas reales corresponden a un
problema de aguas someras.
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Para mostrar los resultados de las simulaciones, seleccionamos tres tiempos (0.05s, 0.1s,
0.15s) y graficamos las aproximaciones calculadas mediante todos los metodos en estos
tiempos, de esta forma se puede realizar una comparacion cualitativa entre los mismos; se
eligieron tiempo cercanos al tiempo inicial debido a la estabilidad de los sistemas, ademas de
que al acercarnos al tiempo final, en promedio, la superficie del agua queda practicamente
plana ya que las oscilaciones restantes suelen ser espurias; cada simulacion tomo menos de
2 horas para completarse.
5.2.1. Soliton
Para las primeras pruebas tomaremos como condicion inicial para el tirante q1 un soliton
situado a la mitad de la region fsica, cuya representacion grafica se puede observar en la
figura 5.4.
FTCS
0.5025
0.502
0.5015
q1
0.501
0.5005
0.5
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
y
x
como era de esperarse. Debido a que la velocidad maxima de nuestro perfil parabolico de
velocidades es de 0.2m/s, es normal que no se distinga el desplazamiento del pulso en los
tiempos seleccionados.
96 Captulo 5. Pruebas numericas y resultados
0.5005
0.5004
0.5003
0.5002
0.5001
q1
0.5
0.4999
0.4998
0.4997
0.4996
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.5005
0.5004
0.5003
0.5002
0.5001
q1
0.5
0.4999
0.4998
0.4997
0.4996
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.5005
0.5004
0.5003
0.5002
0.5001
q1
0.5
0.4999
0.4998
0.4997
0.4996
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Para los gastos sobre el eje x, q2 , podemos ver como se difunde en su mayora con la
misma direccion que las velocidades, mientras que los gastos que van en sentido contrario
son resultado del decrecimiento del tirante. Dicho comportamiento resulta ser consistente
con el comportamiento esperado.
3
x 10
1 6
0.9
5
0.8
0.7
4
0.6
0.5
y
0.4
2
0.3
0.2
1
0.1
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
5
0.9
4.5
0.8
0.7
3.5
0.6
3
0.5
y
2.5
0.4
2
0.3
1.5
0.2
1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
5
0.9
4.5
0.8
4
0.7
3.5
0.6
3
0.5
y
2.5
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
En el caso de los gastos sobre el eje y, q3 podemos ver como estos se difunden de manera
simetrica sobre el mismo eje, debido a que su unica contribucion resulta de la difusion del
tirante.
3
x 10
1
1
0.9
0.8
0.8
0.6
0.7
0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.4
0.3
0.6
0.2
0.8
0.1
1
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
4
x 10
1
0.9 4
0.8 3
0.7 2
0.6 1
0.5 0
y
0.4 1
0.3 2
0.2 3
0.1 4
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
4
x 10
1
0.9 3
0.8
2
0.7
1
0.6
0.5 0
y
0.4
1
0.3
2
0.2
0.1 3
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Al tomar diferentes pesos sobre los nodos para la aproximacion de las parciales, obte-
nemos un comportamiento similar al dado por el esquema FTCS, sin embargo, el tirante
se difunde con mayor suavidad como se muestra en la figura 5.8.
0.5005
0.5
0.4995
q1
0.499
0.4985
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.5005
0.5
0.4995
0.499
0.4985
1
1
0.8
0.5 0.6
0.4
0.2
0 0
(b) t = 0.1s
0.5005
0.5
0.4995
q1
0.499
0.4985
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Figura 5.8: Aproximacion del tirante q1 mediante diferencias finitas con diferentes esque-
mas.
100 Captulo 5. Pruebas numericas y resultados
0.9 5
0.8
4
0.7
0.6
3
0.5
y
0.4
2
0.3
0.2
1
0.1
0 0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
0.9 5
0.8
4
0.7
0.6
3
0.5
y
0.4
2
0.3
0.2
1
0.1
0 0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
5
0.9
4.5
0.8
0.7
3.5
0.6
3
0.5
y
2.5
0.4
2
0.3
1.5
0.2
1
0.1 0.5
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.9: Aproximacion del gasto q2 mediante diferencias finitas con diferentes esquemas.
5.2. Region cuadrada 101
4
x 10
1 6
0.9
4
0.8
0.7
2
0.6
0.5 0
y 0.4
2
0.3
0.2
4
0.1
0 6
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
4
x 10
1
6
0.9
0.8
4
0.7
2
0.6
0.5 0
y
0.4
2
0.3
4
0.2
0.1
6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
4
x 10
1
5
0.9
4
0.8 3
0.7 2
0.6 1
0.5 0
y
0.4 1
0.3 2
0.2 3
4
0.1
5
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.10: Aproximacion del gasto q3 mediante diferencias finitas con diferentes esquemas.
102 Captulo 5. Pruebas numericas y resultados
0.5
0.5
0.5
0.5
0.5
0.5
q1
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.5
0.5
0.5
0.5
0.5
0.5
q1
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.5
0.5
0.5
0.5
0.5
0.5
q1
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Figura 5.11: Aproximacion del tirante q1 aplicando mediante finitas con promedios de Lax.
5.2. Region cuadrada 103
Si observamos las graficas del tirante (figura 5.11), podemos ver que efectivamente se
conserva la masa; no se mueve debido a que la velocidad de malla no es lo suficientemente
pequena para que deje pasar a la fsica.
Ahora bien, ya que los gastos deben de ser iguales tanto en la entrada como en la salida
de flujo, viendo los resultados del tirante, es consistente que los gastos se acumulen en
dichas zonas, como se muestra en la figura 5.12.
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.12: Aproximacion del gasto q2 mediante diferencias finitas con promedios de Lax.
104 Captulo 5. Pruebas numericas y resultados
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
7
x 10
1 1
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
7
x 10
1 1
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.13: Aproximacion del gasto q3 mediante diferencias finitas con promedios de Lax.
5.2. Region cuadrada 105
Volumenes hbridos
Ahora aplicaremos el metodo de volumenes hbridos, cabe mencionar que este metodo
aproxima gastos y no derivadas. En la figura 5.14 podemos ver la evolucion del tirante, se
aprecia que el movimiento se concentra en la zona cercana al soliton.
0.5005
0.5004
0.5003
0.5002
0.5001
0.5
q1
0.4999
0.4998
0.4997
0.4996
0.4995
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.5005
0.5004
0.5003
0.5002
0.5001
0.5
q1
0.4999
0.4998
0.4997
0.4996
0.4995
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.5005
0.5004
0.5003
0.5002
0.5001
0.5
q1
0.4999
0.4998
0.4997
0.4996
0.4995
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Para los gastos, observamos un comportamiento muy semejante al obtenido con FTCS.
3
x 10
1
0.9
5
0.8
0.7 4
0.6
3
0.5
y
0.4
2
0.3
0.2
1
0.1
0 0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
5
0.9
4.5
0.8
4
0.7
3.5
0.6
3
0.5
y
2.5
0.4
2
0.3
1.5
0.2 1
0.1 0.5
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1 5
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5
y
2.5
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
4
x 10
1
8
0.9
6
0.8
4
0.7
2
0.6
0.5 0
y 0.4
2
0.3
4
0.2
6
0.1
8
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
4
x 10
1 4
0.9
3
0.8
2
0.7
1
0.6
0.5 0
y
0.4
1
0.3
2
0.2
3
0.1
0 4
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
4
x 10
1
3
0.9
2
0.8
0.7
1
0.6
0.5 0
y
0.4
1
0.3
0.2
2
0.1
3
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
0.507
0.506
0.505
0.504
0.503
0.502
q1
0.501
0.5
0.499
0.498
0.497
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
FTCS
0.51
0.508
0.506
0.504
q1
0.502
0.5
0.498
0.496
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.51
0.508
0.506
0.504
q1
0.502
0.5
0.498
0.496
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.51
0.508
0.506
0.504
q1
0.502
0.5
0.498
0.496
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
3
x 10
1
8
0.9
6
0.8
0.7
4
0.6
2
0.5
y
0.4
0
0.3
2
0.2
0.1
4
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
0.9 8
0.8 6
0.7
4
0.6
2
0.5
y
0
0.4
2
0.3
0.2 4
0.1
6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
0.9 8
0.8
6
0.7
4
0.6
0.5
y
0
0.4
2
0.3
0.2 4
0.1 6
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
3
x 10
1
5
0.9
4
0.8
3
0.7
2
0.6
1
0.5
y 0
0.4 1
0.3 2
3
0.2
4
0.1
5
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
8
0.9
6
0.8
4
0.7
0.6 2
0.5
y
0.4
2
0.3
4
0.2
0.1 6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
0.9 6
0.8
4
0.7
2
0.6
0
0.5
y
0.4 2
0.3
4
0.2
6
0.1
8
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
0.51
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
0.494
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Figura 5.21: Aproximacion del tirante q1 mediante diferencias finitas con diferentes esque-
mas.
5.2. Region cuadrada 113
3
x 10
1
8
0.9
0.8
6
0.7
0.6 4
0.5
y 2
0.4
0.3 0
0.2
2
0.1
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
10
0.9
0.8 8
0.7
6
0.6
4
0.5
y
0.4 2
0.3
0
0.2
2
0.1
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1 10
0.9
8
0.8
6
0.7
0.6 4
0.5
y
0.4
0
0.3
0.2 2
0.1
4
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.22: Aproximacion del gasto q2 mediante diferencias finitas con diferentes esquemas.
114 Captulo 5. Pruebas numericas y resultados
3
x 10
1
4
0.9
3
0.8
2
0.7
1
0.6
0
0.5
y
0.4 1
0.3 2
0.2
3
0.1
4
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
6
0.9
4
0.8
0.7
2
0.6
0.5 0
y
0.4
2
0.3
0.2
4
0.1
6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
5
0.9
4
0.8
3
0.7
2
0.6
1
0.5
y
0.4 1
0.3 2
3
0.2
4
0.1
5
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.23: Aproximacion del gasto q3 mediante diferencias finitas con diferentes esquemas.
5.2. Region cuadrada 115
0.5
0.5
0.5
0.5
0.5
0.5
q1
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
0 0
(b) t = 0.1s
0.5
0.5
0.5
0.5
0.5
0.5
q1
0.5
0.5
0.5
0.5
0.5
1
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
Figura 5.24: Aproximacion del tirante q1 mediante diferencias finitas con promedios de
Lax.
116 Captulo 5. Pruebas numericas y resultados
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
0.9 4.5
0.8 4
0.7 3.5
0.6 3
0.5 2.5
y
0.4 2
0.3 1.5
0.2 1
0.1 0.5
0 0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.25: Aproximacion del gasto q2 mediante diferencias finitas con promedios de Lax.
5.2. Region cuadrada 117
7
x 10
1 1
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
7
x 10
1 1
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
7
x 10
1 1
0.9 0.8
0.8 0.6
0.7 0.4
0.6 0.2
0.5 0
y
0.4 0.2
0.3 0.4
0.2 0.6
0.1 0.8
0 1
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Figura 5.26: Aproximacion del gasto q3 mediante diferencias finitas con promedios de Lax.
118 Captulo 5. Pruebas numericas y resultados
Volumenes hbridos
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
0.494
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(a) t = 0.05s
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
0.494
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(b) t = 0.1s
0.508
0.506
0.504
0.502
q1
0.5
0.498
0.496
0.494
0.8
1
0.6 0.8
0.4 0.6
0.4
0.2
0.2
y 0 0 x
(c) t = 0.15s
3
x 10
1
8
0.9
6
0.8
0.7
4
0.6
2
0.5
y
0.4
0
0.3
2
0.2
0.1
4
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
0.9 8
0.8
6
0.7
4
0.6
2
0.5
y
0.4 0
0.3
2
0.2
4
0.1
6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
10
0.9
8
0.8
6
0.7
4
0.6
2
0.5
y
0.4
2
0.3
4
0.2
6
0.1
8
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
3
x 10
1 6
0.9
4
0.8
0.7
0.6
0.5
y
0.4
0.3 2
0.2
4
0.1
0
0 0.2 0.4 0.6 0.8 1
x
(a) t = 0.05s
3
x 10
1
6
0.9
4
0.8
0.7
2
0.6
0
0.5
y
0.4
2
0.3
4
0.2
0.1
6
0
0 0.2 0.4 0.6 0.8 1
x
(b) t = 0.1s
3
x 10
1
8
0.9
6
0.8
4
0.7
2
0.6
0
0.5
y
0.4 2
0.3 4
0.2 6
0.1 8
0
0 0.2 0.4 0.6 0.8 1
x
(c) t = 0.15s
Podemos ver que al aplicar el metodo de diferencias finitas con diferentes esquemas, de
nuevo, la malla no es lo suficientemente fina para permitir que la velocidad fsica pase. Por
otro lado, al aplicar los otros metodos podemos ver que estos reproducen la mecanica del
problema de manera satisfactoria.
En las aproximaciones de los gastos podra parecer que las olas rebotan, sin embargo
esto no fue programado, sino que resulta de errores computacionales al truncar la aproxi-
macion con las condiciones a las fronteras.
5.3. Region elongada 121
Ahora pondremos a prueba los metodos en la region elongada (figura 4.2) la cual no
se discretiza de manera uniforme, mas elegimos cierta cantidad de puntos por lado de
modo que nos den como resultado celdas casi rectangulares; tomaremos 21 puntos para las
fronteras de entrada y salida del flujo, y 41 para los margenes laterales como se muestra en
la figura 5.30. Para disminuir el error de la aproximacion se sugieren utilizar tamanos de
paso mas pequenos, sin embargo, para este tipo de regiones y para la version de MATLAB
c
Al igual que para las regiones rectangulares tomaremos como condiciones iniciales para
el tirante q1 un soliton u ondas tipo Airy. Recordemos que al graficar q1 , tanto para las
condiciones iniciales como para las aproximaciones, la escala vertical esta amplificada para
realzar las caractersticas de la geometra de la solucion, cuando en realidad las escalas
corresponden a un problema de aguas someras. Mientras que los gastos iniciales para todas
las simulaciones, tanto en x como en y, vistos desde planta se muestran en la figura 5.31.
122 Captulo 5. Pruebas numericas y resultados
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0 0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) Gastos q2 .
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0 0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) Gastos q3 .
Figura 5.31: Condicion inicial para los gastos vista desde planta.
5.3. Region elongada 123
Para mostrar los resultados obtenidos, seleccionamos tres tiempos y graficamos las apro-
ximaciones para cada uno de estos, de modo que se muestra la evolucion de las mismas,
tanto para el tirante como para los gastos dada por los diferentes metodos; se tomaron
valores del tiempo cercanos a la condicion incial debido a que, al tomar mallas no dis-
cretizadas de manera regular, los esquemas son estables para un intervalo de tiempo mas
pequeno. Cada simulacion tomo aproximadamente 10 horas para completarse, lo cual es
razonablemente bueno dada la potencia de la maquina y la cantidad de informacion ma-
nejada.
5.3.1. Soliton
Primeramente tomamos como condicion inicial un soliton (figura 5.32), el cual se descri-
be mendiante una exponencial; para ambas aproximaciones, tanto diferencias como volume-
nes, tomamos los tiempos 0.05s, 0.1s y 0.15s y graficamos las aproximaciones obtenidas.
0.5009
0.5008
0.5007
0.5006
0.5005
q1
0.5004
0.5003
0.5002
0.5001
0.5
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
0.51
0.508
0.506
0.504
0.502
0.5
q1
0.498
0.496
0.494
0.492
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(a) t = 0.05s
0.51
0.508
0.506
0.504
0.502
0.5
q1
0.498
0.496
0.494
0.492
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(b) t = 0.1s
0.51
0.508
0.506
0.504
0.502
0.5
q1
0.498
0.496
0.494
0.492
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(c) t = 0.15s
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0 0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0 0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.1s
3
x 10
2
10
1.8
8
1.6
6
1.4
1.2 4
1
y
0.8
0
0.6
2
0.4
4
0.2
0 6
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.15s
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
3
x 10
2
1.8 12
1.6
10
1.4
1.2 8
1
y
0.8
0.6 4
0.4
0.2
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.1s
2
0.025
1.8
1.6 0.02
1.4
0.015
1.2
0.01
1
y
0.005
0.8
0
0.6
0.4 0.005
0.2 0.01
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.15s
0.515
0.51
0.505
q1
0.5
0.495
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(a) t = 0.05s
0.515
0.51
0.505
q1
0.5
0.495
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(b) t = 0.1s
0.515
0.51
0.505
q1
0.5
0.495
0.49
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(c) t = 0.15s
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2
5
1
y
4
0.8
3
0.6
0.4 2
0.2 1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
3
x 10
2
9
1.8
8
1.6
7
1.4
6
1.2 5
1 4
y
3
0.8
2
0.6
1
0.4
0
0.2
1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.1s
2
1.8
0.01
1.6
1.4
0.005
1.2
1
y
0.8
0.6 0.005
0.4
0.01
0.2
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.15s
3
x 10
2
1.8
10
1.6
1.4 8
1.2
6
1
y
0.8
0.6
0.4
2
0.2
0 0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
3
x 10
2
16
1.8
1.6 14
1.4 12
1.2 10
1 8
y
0.8 6
0.6 4
0.4 2
0.2 0
0 2
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.1s
2
1.8
0.03
1.6
0.02
1.4
1.2
0.01
1
y
0
0.8
0.6
0.01
0.4
0.2 0.02
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.15s
Podemos observar que ambas aproximaciones son consistentes con la mecanica del
fenomeno, sin embargo, con el metodo de volumenes finitos se obtiene una transicion mas
suave.
0.505
0.5
q1
0.495
1.8
1.6
1.4
1.2
0.8
0.6
0.4
y
0.2
0.2 0
0.6 0.4
1 0.8
0 1.4 1.2
1.8 1.6
2
x
0.65
0.6
0.55
0.5
q1
0.45
0.4
0.35
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(a) t = 0.05s
0.65
0.6
0.55
0.5
q1
0.45
0.4
0.35
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(b) t = 0.08s
0.65
0.6
0.55
0.5
q1
0.45
0.4
0.35
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(c) t = 0.11s
2
0.02
1.8
0.015
1.6
1.4
0.01
1.2
0.005
1
y
0.8
0
0.6
0.005
0.4
0.2
0.01
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
2
1.8
0.03
1.6
0.02
1.4
0.01
1.2
1
y
0.8
0.01
0.6
0.02
0.4
0.2 0.03
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.08s
2
0.1
1.8
1.6
0.05
1.4
1.2
1 0
y
0.8
0.6 0.05
0.4
0.2 0.1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.11s
2
0.04
1.8
0.03
1.6
0.02
1.4
0.01
1.2
y
0
0.8
0.01
0.6
0.02
0.4
0.03
0.2
0 0.04
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
2
1.8 0.1
1.6
1.4 0.05
1.2
1 0
y
0.8
0.6 0.05
0.4
0.2 0.1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.08s
2
1.8
0.3
1.6
0.2
1.4
1.2 0.1
1
y
0.8
0.1
0.6
0.4
0.2
0.2
0.3
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.11s
0.6
0.58
0.56
0.54
0.52
0.5
q1
0.48
0.46
0.44
0.42
0.4
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(a) t = 0.05s
0.6
0.58
0.56
0.54
0.52
0.5
q1
0.48
0.46
0.44
0.42
0.4
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(b) t = 0.08s
0.6
0.58
0.56
0.54
0.52
0.5
q1
0.48
0.46
0.44
0.42
0.4
2
1.5 0
0.5
1
1
0.5
1.5
0 2
y
x
(c) t = 0.11s
2
0.02
1.8
0.015
1.6
1.4
0.01
1.2
1 0.005
y
0.8
0.6
0.4 0.005
0.2
0.01
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
2
0.03
1.8
1.6 0.02
1.4
0.01
1.2
0
1
y
0.8
0.01
0.6
0.02
0.4
0.2
0.03
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.08s
2 0.1
1.8 0.08
1.6
0.06
1.4
0.04
1.2
0.02
1
y
0.8
0.02
0.6
0.04
0.4
0.06
0.2
0.08
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.11s
1.8
0.03
1.6
0.02
1.4
0.01
1.2
1
y
0.8
0.01
0.6
0.02
0.4
0.2
0.03
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(a) t = 0.05s
2
0.1
1.8
0.08
1.6
0.06
1.4
0.04
1.2
0.02
1
y
0.8 0.02
0.6 0.04
0.06
0.4
0.08
0.2
0.1
0
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(b) t = 0.08s
2
0.3
1.8
1.6 0.2
1.4
0.1
1.2
1
y
0.8
0.1
0.6
0.4
0.2
0.2
0 0.3
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
x
(c) t = 0.11s
Al tomar condiciones iniciales tipo Airy para el tirante q1 , podemos ver que las ondas se
disipan sobre la region mientras que los gastos se mueven en la direccion deseada, a pesar
de que la resolucion tomada no es la suficiente para que ambos esquemas sean estables
para todo el intervalo temporal deseado. Se tomo la mayor resolucion que la computadora
pudo manejar a fin de estabilizar, a medida de lo posible, los esquemas numericos.
138 Captulo 5. Pruebas numericas y resultados
Captulo 6
Conclusiones
[...] Y la gente murmurando te mira los calcetines (pues uno te esta faltando),
pensando que locura, que tremenda chifladura,
y del brillo de tus ojos y tus actos impulsivos
deducen que estas chalado de aqu hasta que seas anciano.
Mas ya termino el suplicio que casuso tanto desquicio,
pues en el blanco papel hay palabras en tropel,
y llega la diversion: has concluido otro cuento de ciencia ficcion.
Isaac Asimov, 1957
139
140 Captulo 6. Conclusiones
Dicho lo anterior, no se debe olvidar que para garantizar la efectividad de los metodos,
es importante realizar analisis de convergencia de malla, estabilidad para las ecuaciones no
linealizadas, y verificar que tanto los gastos como la masa se conservan, empero, estos es-
capan del alcance de este trabajo, por lo que se proponen como trabajo a futuro. Junto con
esto, tambien queda pendiente optimizar tanto el tiempo como el espacio computacional
necesario, esto se puede lograr utilizando algun otro lenguaje de programacion e imple-
mentandolo en un ordenador con mayor potencia. Todas estas mejoras se piensan para
poder implementar los esquemas a regiones no regulares con batimetras cuyas pendientes
sean suaves.
Apendice A
CalorDif.m
%% Inicializaci\on
x=linspace(0,1,m); % malla uniforme del intervalo [0,1] en el espacio
dx=x(2)-x(1); % tama\~no de paso en el espacio
dt=1/(T-1); % tama\~no de paso en el tiempo
U=zeros(m,T); % inicializaci\on de la soluci\on
c=v*dt/dx/dx;
141
142 Apendice A
% Condiciones inicales
U(:,1)=f(x,m);
%% Aproximaci\on
for k=2:T % un paso adelante en el tiempo
% puntos no contiguos a la frontera
for i=3:m-2
U(i,k)=U(i,k-1)+c*(U(i-1,k-1)-2*U(i,k-1)+U(i+1,k-1));
end
% punto contiguo a la frontera izquierda
i=2;
U(i,k)=U(i,k-1)+c*(cfi-2*U(i,k-1)+U(i+1,k-1));
% punto contiguo a la frontera derecha
i=m-1;
U(i,k)=U(i,k-1)+c*(U(i-1,k-1)-2*U(i,k-1)+cfd);
end
end
143
CalorVol.m
Codigo utilizado en el captulo 1 para aproximar,mediante Volumenes Finitos, la solu-
cion de la ecuacion de calor en 1D . Se encuentra programado en el lenguaje de programa-
cion MATLAB
c
[Moler, 2016].
%% Inicializaci\on
x=linspace(0,1,m); % malla uniforme del intervalo [0,1] en el espacio
for i=1:m-1
X(i)=(x(i)+x(i+1))/2; %centroides de las celdas
end
dx=X(2)-X(1); % tama\~no de paso en el espacio
dt=1/(T-1); % tama\~no de paso en el tiempo
U=zeros(m-1,T); % inicializaci\on de la soluci\on
c=v*dt/dx/dx;
% Condiciones inicales
U(:,1)=f(X,m-1);
%% Aproximaci\on
for k=2:T % un paso adelante en el tiempo
% puntos no contiguos a la frontera
for i=3:m-3
U(i,k)=U(i,k-1)+c*(U(i-1,k-1)-2*U(i,k-1)+U(i+1,k-1));
end
144 Apendice A
tfihorseshoe.m
Codigo utilizado en el captulo 3 realizar una malla, mediante TFI, sobre una herra-
dura de caballo. Se encuentra programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [x,y]=tfihorseshoe(n,m)
%% Especificaciones
% Interpolaci\on transfinita sobre una herradura de caballo
% n n\umero de puntos en los lados izquierdo y derecho de la regi\on
% f\isica (xl, xr)
% m n\umero de puntos en los lados superior e inferior de la regi\on
% f\isica (xt, xb)
% Martha Leticia Ruiz Zavala. Enero 2017
% Ejemplo [x,y]=tfihorseshoe(11,21);
%% Inicializaci\on
if m>1 % tama\~nos de paso en xt, y xb
h1=1/(m-1);
end
if n>1 % tama\~nos de paso en xl, y xr
h2=1/(n-1);
end
%% Mapeo de TFI
for i=1:n
eta=(i-1)*h2;
for j=1:m
xi=(j-1)*h1;
v=(1-xi)*xl(eta)+xi*xr(eta)+(1-eta)*xb(xi)+eta*xt(xi)-...
(1-xi)*(1-eta)*xb(0)-(1-xi)*eta*xt(0)-(1-eta)*xi*xb(1)-...
eta*xi*xt(1);
x(i,j)=v(1);
y(i,j)=v(2);
end
end
end
146 Apendice A
tfic.m
Codigo utilizado en el captulo 5 realizar una malla, mediante TFI, sobre el cua-
drado unitario. Se encuentra programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [x,y]=tfic(m,n)
%% Especificaciones
% Interpolaci\on transfinita para un cuadrado de [0,1]x[0,1]
% m n\umero de puntos en el eje x
% n n\umero de puntos en el eje y
% Martha Leticia Ruiz Zavala. Diciembre 2016
% Ejemplo [x,y]=tfic(41,41)
%% Inicializaci\on
if m>1
h1=1/(m-1);
end
if n>1
h2=1/(n-1);
end
%% Mapeo de TFI
for i=1:n
eta=(i-1)*h2;
for j=1:m
xi=(j-1)*h1;
v=(1-xi)*xl(eta)+xi*xr(eta)+(1-eta)*xb(xi)+eta*xt(xi)-...
(1-xi)*(1-eta)*xb(0)-(1-xi)*eta*xt(0)-(1-eta)*xi*xb(1)-...
eta*xi*xt(1);
x(i,j)=v(1);
y(i,j)=v(2);
end
end
end
SVFTCSR.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de Saint-
Venant, aplicando el esquema FTCS, en regiones rectangulares. Se encuentra programado
en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3]=SVFTCSR(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de diferencias finitas (FTCS), las ecuaciones
% de Saint-Venant con condiciones de flujo continuo en las fonteras
% de entrada y salida, y de no deslizamiento en los m\argenes izquiedo y
% derecho; en regiones rectangulares.
% m n\umero de pasos en x
% n n\umero de pasos en y
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h tirante
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3]=SVFTCSR(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[n,m] = size(x);
T = linspace(0,Tf,t); % Crea el intervalo temporal
dt = T(2)-T(1); % Tama\~no de paso en el tiempo
dx = x(1,2)-x(1,1); % Tama\~no de paso en el eje x
dy = y(2,1)-y(1,1); % Tama\~no de paso en el tiempo eje y
q1 = zeros(n,m,t);
q2 = zeros(n,m,t);
q3 = zeros(n,m,t);
g = 9.81; % Fuerza de gravedad.
f = 4.879*10^(-5); % Aceleraci\on de Coriolis.
cf = 0.005; % Coeficiente de fricci\on en el fondo
%% Condiciones iniciales
150 Apendice A
for j=1:m
for i=1:n
% Condici\on inicial para el tirante (q1)
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(x(i,j)-.5)^2 - (y(i,j)-.5)^2)/.001);
% Ondas tipo Airy
% q1(i,j,1) = .5 + 0.003*sin(5*pi*(x(i,j) + y(i,j)));
% Perfil parab\olico inicial para los gastos en x (q2)
q2(i,j,1)=-.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
end
%% Condiciones de frontera
for k = 1:t
% Margen izquierdo del canal
q1(n,:,k)=0.500;
q2(n,:,k)=0;
q3(n,:,k)=0;
% Margen derecho del canal
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
q2(1,1,k)=0;
for i=2:n-1
q2(i,1,k)= -.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
q2(n,1,k)=0;
q3(:,1,k)=0;
% Salida del flujo
q1(:,m,k)=0.500;
q2(1,m,k)=0;
151
for i=2:n-1
q2(i,m,k)= -.8*(3*y(i,m)*dy*(y(i,m) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,m) + dy));
end
q2(n,m,k)=0;
q3(:,m,k)=0;
end
% Aproximamos q2
q2(i,j,k) = q2(i,j,k-1) - dt*(...
(q2(i,j+1,k-1)^2/q1(i,j+1,k-1) + g*q1(i,j+1,k-1)^2/2 -...
q2(i,j-1,k-1)^2/q1(i,j-1,k-1) - g*q1(i,j-1,k-1)^2/2)/2/dx +...
(q2(i+1,j,k-1)*q3(i+1,j,k-1)/q1(i+1,j,k-1) -...
q2(i-1,j,k-1)*q3(i-1,j,k-1)/q1(i-1,j,k-1))/2/dy -...
f*q3(i,j,k-1) + cf*q2(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1).^2)^(1/2));
% Aproximamos q3
q3(i,j,k) = q3(i,j,k-1) - dt*(...
(q2(i,j+1,k-1)*q3(i,j+1,k-1)/q1(i,j+1,k-1) - ...
q2(i,j-1,k-1)*q3(i,j-1,k-1)/q1(i,j-1,k-1))/2/dx + ...
152 Apendice A
SVPesosR.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de
Saint-Venant, aplicando el diferencias finitas con diferentes pesos para los nodos, en regio-
nes rectangulares. Se encuentra programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3]=SVPesosR(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de diferencias finitas usando un est\enciles
% diferenes para aproximar las parciales,las ecuaciones de Saint-Venant
% con condiciones de flujo continuo en las fonteras de entrada y salida,
% y de no deslizamiento en los m\argenes izquiedo y derecho; en
% regiones rectangulares.
% m n\umero de pasos en x
% n n\umero de pasos en y
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h alturas para cada punto (x,y)
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3]=SVPesosR(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[n,m] = size(x);
T = linspace(0,Tf,t); % Crea el intervalo temporal
dt = T(2)-T(1); % Tama\~no de paso en el tiempo
dx = x(1,2)-x(1,1); % Tama\~no de paso en el tiempo
dy = y(2,1)-y(1,1); % Tama\~no de paso en el tiempo
q1 = zeros(n,m,t);
q2 = zeros(n,m,t);
q3 = zeros(n,m,t);
g = 9.81; % Fuerza de gravedad.
f = 4.879*10^(-5); % Aceleraci\on de Coriolis.
cf = 0.005; % Coeficiente de fricci\on en el fondo
154 Apendice A
%% Condiciones iniciales
for j=1:m
for i=1:n
% Condici\on inicial para el tirante (q1)
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(x(i,j)-.5)^2 - (y(i,j)-.5)^2)/.001);
% Ondas tipo Airy
%q1(i,j,1) = .5 + 0.003*sin(5*pi*(x(i,j) + y(i,j)));
% Perfil parab\olico inicial para los gastos en x (q2)
q2(i,j,1)=-.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
end
%% Condiciones de frontera
for k = 1:t
% Margen izquierdo del canal
q1(n,:,k)=0.500;
q2(n,:,k)=0;
q3(n,:,k)=0;
% Margen derecho del canal
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
q2(1,1,k)=0;
for i=2:n-1
q2(i,1,k)= -.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
q2(n,1,k)=0;
q3(:,1,k)=0;
% Salida del flujo
155
q1(:,m,k)=0.500;
q2(1,m,k)=0;
for i=2:n-1
q2(i,m,k)= -.8*(3*y(i,m)*dy*(y(i,m) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,m) + dy));
end
q2(n,m,k)=0;
q3(:,m,k)=0;
end
% Aproximamos q2
q2(i,j,k) = q2(i,j,k-1) - dt*(...
(-q2(i-1,j-1,k-1)^2/q1(i-1,j-1,k-1) - ...
q2(i,j-1,k-1)^2/q1(i,j-1,k-1) - ...
q2(i+1,j-1,k-1)^2/q1(i+1,j-1,k-1) + ...
q2(i-1,j+1,k-1)^2/q1(i-1,j+1,k-1) + ...
q2(i,j+1,k-1)^2/q1(i,j+1,k-1) + ...
q2(i+1,j+1,k-1)^2/q1(i+1,j+1,k-1) + ...
g*(-q1(i-1,j-1,k-1)^2 - q1(i,j-1,k-1)^2 - ...
q1(i+1,j-1,k-1)^2 + q1(i-1,j+1,k-1)^2 + ...
156 Apendice A
% Aproximamos q3
q3(i,j,k) = q3(i,j,k-1) - dt*( ...
(-q2(i-1,j-1,k-1)*q3(i-1,j-1,k-1)/q1(i-1,j-1,k-1) - ...
q2(i,j-1,k-1)*q3(i,j-1,k-1)/q1(i,j-1,k-1) - ...
q2(i+1,j-1,k-1)*q3(i+1,j-1,k-1)/q1(i+1,j-1,k-1) + ...
q2(i-1,j+1,k-1)*q3(i-1,j+1,k-1)/q1(i-1,j+1,k-1) + ...
q2(i,j+1,k-1)*q3(i,j+1,k-1)/q1(i,j+1,k-1) + ...
q2(i+1,j+1,k-1)*q3(i+1,j+1,k-1)/q1(i+1,j+1,k-1))/6/dx +...
(q3(i-1,j-1,k-1)^2/q1(i-1,j-1,k-1) - ...
q3(i+1,j-1,k-1)^2/q1(i+1,j-1,k-1) + ...
q3(i-1,j,k-1)^2/q1(i-1,j,k-1) - ...
q3(i+1,j,k-1)^2/q1(i+1,j,k-1) + ...
q3(i-1,j+1,k-1)^2/q1(i-1,j+1,k-1) - ...
q3(i+1,j+1,k-1)^2/q1(i+1,j+1,k-1) + ...
g*(q1(i-1,j-1,k-1)^2 - q1(i+1,j-1,k-1)^2 + ...
q1(i-1,j,k-1)^2 - q1(i+1,j,k-1)^2 + ...
q1(i-1,j+1,k-1)^2 - q1(i+1,j+1,k-1)^2)/2)/6/dy + ...
f*q2(i,j,k-1) + ...
cf*q3(i,j,k-1)/(q1(i,j,k-1)-z(i,j))^2*(q2(i,j,k-1)^2+...
q3(i,j,k-1)^2)^(1/2));
end
end
end
157
SVPromR.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de Saint-
Venant, aplicando el diferencias finitas con diferentes pesos para los nodos y siguiendo
la idea de Lax, en regiones rectangulares. Se encuentra programado en el lenguaje de
programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3]=SVPromR(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de diferencias finitas usando est\enciles
% diferenes para aproximar las parciales,las ecuaciones de Saint-Venant
% con condiciones de flujo continuo en las fonteras de entrada y salida,
% y de no deslizamiento en los m\argenes izquiedo y derecho; en
% regiones rectangulares.
% Se sigue la idea de los promedios de Lax para mejorar la estabilidad.
% m n\umero de pasos en x
% n n\umero de pasos en y
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h alturas para cada punto (x,y)
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3]=SVPromR(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[n,m] = size(x);
T = linspace(0,Tf,t); % Crea el intervalo temporal
dt = T(2)-T(1); % Tama\~no de paso en el tiempo
dx = x(1,2)-x(1,1); % Tama\~no de paso en el tiempo
dy = y(2,1)-y(1,1); % Tama\~no de paso en el tiempo
q1 = zeros(n,m,t);
q2 = zeros(n,m,t);
q3 = zeros(n,m,t);
g = 9.81; % Fuerza de gravedad.
f = 4.879*10^(-5); % Aceleraci\on de Coriolis.
159
%% Condiciones iniciales
for j=1:m
for i=1:n
% Condici\on inicial para el tirante (q1)
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(x(i,j)-.5)^2 - (y(i,j)-.5)^2)/.001);
% Onda tipo Airy
% q1(i,j,1) = .5 + 0.003*sin(5*pi*(x(i,j) + y(i,j)));
% Perfil parab\olico inicial para los gastos en x (q2)
q2(i,j,1)=-.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
end
%% Condiciones de frontera
for k = 1:t
% Margen izquierdo del canal
q1(n,:,k)=0.500;
q2(n,:,k)=0;
q3(n,:,k)=0;
% Margen derecho del canal
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
q2(1,1,k)=0;
for i=2:n-1
q2(i,1,k)= -.8*(3*y(i,1)*dy*(y(i,1) + dy) + dy^3)/3 + ...
.4*(dy*(2*y(i,1) + dy));
end
q2(n,1,k)=0;
q3(:,1,k)=0;
160 Apendice A
% Aproxima q2
q2(i,j,k) = (q2(i+1,j,k-1) + q2(i-1,j,k-1) + ...
q2(i,j+1,k-1) + q2(i,j-1,k-1))/4- dt*(...
(-q2(i-1,j-1,k-1)^2/q1(i-1,j-1,k-1) - ...
q2(i,j-1,k-1)^2/q1(i,j-1,k-1) - ...
q2(i+1,j-1,k-1)^2/q1(i+1,j-1,k-1) + ...
q2(i-1,j+1,k-1)^2/q1(i-1,j+1,k-1) + ...
q2(i,j+1,k-1)^2/q1(i,j+1,k-1) + ...
161
q2(i+1,j+1,k-1)^2/q1(i+1,j+1,k-1) + ...
g*(-q1(i-1,j-1,k-1)^2 - q1(i,j-1,k-1)^2 - ...
q1(i+1,j-1,k-1)^2 + q1(i-1,j+1,k-1)^2 + ...
q1(i,j+1,k-1)^2 + q1(i+1,j+1,k-1)^2)/2)/6/dx + ...
(q2(i-1,j-1,k-1)*q3(i-1,j-1,k-1)/q1(i-1,j-1,k-1) - ...
q2(i+1,j-1,k-1)*q3(i+1,j-1,k-1)/q1(i+1,j-1,k-1) + ...
q2(i-1,j,k-1)*q3(i-1,j,k-1)/q1(i-1,j,k-1) - ...
q2(i+1,j,k-1)*q3(i+1,j,k-1)/q1(i+1,j,k-1) + ...
q2(i-1,j+1,k-1)*q3(i-1,j+1,k-1)/q1(i-1,j+1,k-1) - ...
q2(i+1,j+1,k-1)*q3(i+1,j+1,k-1)/q1(i+1,j+1,k-1))/6/dy -...
f*q3(i,j,k-1) + ...
cf*q2(i,j,k-1)/(q1(i,j,k-1)-z(i,j))^2*(q2(i,j,k-1)^2+...
q3(i,j,k-1)^2)^(1/2));
% Aproxima q3
q3(i,j,k) = (q3(i+1,j,k-1) + q3(i-1,j,k-1) + ...
q3(i,j+1,k-1) + q3(i,j-1,k-1))/4 - dt*( ...
(-q2(i-1,j-1,k-1)*q3(i-1,j-1,k-1)/q1(i-1,j-1,k-1) - ...
q2(i,j-1,k-1)*q3(i,j-1,k-1)/q1(i,j-1,k-1) - ...
q2(i+1,j-1,k-1)*q3(i+1,j-1,k-1)/q1(i+1,j-1,k-1) + ...
q2(i-1,j+1,k-1)*q3(i-1,j+1,k-1)/q1(i-1,j+1,k-1) + ...
q2(i,j+1,k-1)*q3(i,j+1,k-1)/q1(i,j+1,k-1) + ...
q2(i+1,j+1,k-1)*q3(i+1,j+1,k-1)/q1(i+1,j+1,k-1))/6/dx +...
(q3(i-1,j-1,k-1)^2/q1(i-1,j-1,k-1) - ...
q3(i+1,j-1,k-1)^2/q1(i+1,j-1,k-1) + ...
q3(i-1,j,k-1)^2/q1(i-1,j,k-1) - ...
q3(i+1,j,k-1)^2/q1(i+1,j,k-1) + ...
q3(i-1,j+1,k-1)^2/q1(i-1,j+1,k-1) - ...
q3(i+1,j+1,k-1)^2/q1(i+1,j+1,k-1) + ...
g*(q1(i-1,j-1,k-1)^2 - q1(i+1,j-1,k-1)^2 + ...
q1(i-1,j,k-1)^2 - q1(i+1,j,k-1)^2 + ...
q1(i-1,j+1,k-1)^2 - q1(i+1,j+1,k-1)^2)/2)/6/dy + ...
f*q2(i,j,k-1) + ...
cf*q3(i,j,k-1)/(q1(i,j,k-1)-z(i,j))^2*(q2(i,j,k-1)^2+...
q3(i,j,k-1)^2)^(1/2));
162 Apendice A
end
end
end
SVVolR.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de Saint-
Venant, aplicando volumenes finitos hbridos, en regiones rectangulares. Se encuentra pro-
gramado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3,X,Y]=SVVolR(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de vol\umenes finitos h\ibridos, las ecuaciones
% de Saint-Venant con condiciones de flujo continuo en las fonteras
% de entrada y salida, y de no deslizamiento en los m\argenes izquiedo y
% derecho; en regiones rectangulares.
% m n\umero de pasos en x
% n n\umero de pasos en y
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h tirante
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3,X,Y]=SVVolR(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[n,m] = size(x);
X = zeros(n-1,m-1);
Y = zeros(n-1,m-1);
% Calcula los centroides de las celdas
for i=1:n-1
for j=1:m-1
X(i,j)=(x(i,j)+x(i,j+1))/2;
Y(i,j)=(y(i,j)+y(i+1,j))/2;
end
end
T = linspace(0,Tf,t);
T = linspace(0,Tf,t); % Crea el intervalo temporal
dt = T(2)-T(1); % Tama\~no de paso en el tiempo
164 Apendice A
%% Condiciones iniciales
for j=1:m-1
for i=1:n-1
% Condici\on inicial para el tirante (q1)
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(X(i,j)-.5)^2 - (Y(i,j)-.5)^2)/.001);
% Olas tipo Airy
%q1(i,j,1) = .5 + 0.003*sin(5*pi*(X(i,j) + Y(i,j)));
% Perfil parab\olico inicial para los gastos en x (q2)
q2(i,j,1)=-.8*(3*Y(i,1)*dY*(Y(i,1) + dY) + dY^3)/3 + ...
.4*(dY*(2*Y(i,1) + dY));
end
end
%% Condiciones de frontera
for k = 1:t
% Margen izquierdo del canal
q1(n-1,:,k)=0.500;
q2(n-1,:,k)=0;
q3(n-1,:,k)=0;
% Margen derecho del canal
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
165
q2(1,1,k)=0;
for i=2:n-2
q2(i,1,k)= -.8*(3*Y(i,1)*dY*(Y(i,1) + dY) + dY^3)/3 + ...
.4*(dY*(2*Y(i,1) + dY));
end
q2(n-1,1,k)=0;
q3(:,1,k)=0;
% Salida del flujo
q1(:,m-1,k)=0.500;
q2(1,m-1,k)=0;
for i=2:n-2
q2(i,m-1,k)= -.8*(3*Y(i,m-1)*dY*(Y(i,m-1) + dY) + dY^3)/3 + ...
.4*(dY*(2*Y(i,m-1) + dY));
end
q2(n-1,m-1,k)=0;
q3(:,m-1,k)=0;
end
% Aproxima q2
q2(i,j,k) = q2(i,j,k-1) - dt*(...
(q2(i,j+1,k-1)^2/q1(i,j+1,k-1) + g*q1(i,j+1,k-1)^2/2 -...
q2(i,j-1,k-1)^2/q1(i,j-1,k-1) - g*q1(i,j-1,k-1)^2/2)/2/dX +...
166 Apendice A
(q2(i+1,j,k-1)*q3(i+1,j,k-1)/q1(i+1,j,k-1) -...
q2(i-1,j,k-1)*q3(i-1,j,k-1)/q1(i-1,j,k-1))/2/dY -...
f*q3(i,j,k-1) + cf*q2(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1).^2)^(1/2));
% Aproxima q3
q3(i,j,k) = q3(i,j,k-1) - dt*(...
(q2(i,j+1,k-1)*q3(i,j+1,k-1)/q1(i,j+1,k-1) - ...
q2(i,j-1,k-1)*q3(i,j-1,k-1)/q1(i,j-1,k-1))/2/dX + ...
(q3(i+1,j,k-1)^2/q1(i+1,j,k-1) + g*q1(i+1,j,k-1)^2/2 - ...
q3(i-1,j,k-1)^2/q1(i-1,j,k-1) - g*q1(i-1,j,k-1)^2/2)/2/dY +...
f*q2(i,j,k-1) + cf*q3(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1)^2)^(1/2));
end
end
end
tfiCanal.m
Codigo utilizado en el captulo 5 para realizar una malla, mediante TFI, sobre la re-
gion elongada 4.2. Se encuentra programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [x,y]=tfiCanal(m,n)
% Interpolaci\on transfinita del semiarco
% m n\umero de puntos sobre theta
% n n\umero de puntos sobre R
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [x,y]=tfiCanal(41,21)
theta=linspace(pi,pi/2,m);
R=linspace(1,2,n);
x=R*cos(theta);
y=R*sin(theta);
line(x,y,Color,k);line(x,y,Color,k);
end
168 Apendice A
SVDFE.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de Saint-
Venant, aplicando diferencias finitas generalizadas, en regiones elongadas. Se encuentra
programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3]=SVDFE(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de diferencias finitas, las ecuaciones
% de Saint-Venant con condiciones de flujo continuo en las fonteras
% de entrada y salida, y de no deslizamiento en los m\argenes izquiedo y
% derecho; sobre regiones elongadas.
% m n\umero de pasos en la entrada y salida
% n n\umero de pasos en los m\argenes
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h tirante
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3]=SVDFE(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[m,n] = size(x);
T = linspace(0,Tf,t);
dt = T(2)-T(1);
q1 = zeros(m,n,t)+.5;
q2 = zeros(m,n,t);
q3 = zeros(m,n,t);
G = zeros(m,n);
g = 9.81; % Fuerza de gravedad.
f = 4.879*10^(-5); % Aceleraci\on de Coriolis.
cf = 0.005; % Coeficiente de fricci\on en el fondo
%% Condiciones iniciales
dx=1/m;
169
for j=1:n
for i=1:m
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(x(i,j)+1.5)^2 - (y(i,j)-.65)^2)/.001);
% Ondas tipo Airy
% q1(i,j,1) = .5 + 0.003*sin(5*pi*(x(i,j) + y(i,j)));
G(i,j)= -4*(3*x(i,1)*dx*(x(i,1) + dx) + dx^3)/15 - ...
12*(dx*(2*x(i,1) + dx))/10-8*dx/5;
q2(i,j,1)= sin(pi*(j-1)/2/(n-1))*G(i,j);
q3(i,j,1)= cos(pi*(j-1)/2/(n-1))*G(i,j);
end
end
%% Condiciones de frontera
for k = 1:t
% M\argen izquierdo
q1(m,:,k)=0.500;
q2(m,:,k)=0;
q3(m,:,k)=0;
% M\argen derecho
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
q2(:,1,k)=0;
q3(1,1,k)=0;
for i=2:m-1
q3(i,1,k)= -4*(3*x(i,1)*dx*(x(i,1) + dx) + dx^3)/15 - ...
12*(dx*(2*x(i,1) + dx))/10-8*dx/5;
end
q3(m,1,k)=0;
% Salida del flujo
q1(:,n,k)=0.500;
q2(1,n,k)=0;
170 Apendice A
for i=2:m-1
q2(i,n,k)= -4*(-3*y(i,n)*dx*(-y(i,n) + dx) + dx^3)/15 - ...
12*(dx*(-2*y(i,n) + dx))/10-8*dx/5;
end
q2(m,n,k)=0;
q3(:,n,k)=0;
end
% Aproxima q1
q1(i,j,k) = q1(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1))) + ...
sum(sum(Gommay.*q3(i-1:i+1,j-1:j+1,k-1))));
% Aproxima q2
q2(i,j,k) = q2(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1).^2./...
q1(i-1:i+1,j-1:j+1,k-1) + ...
Gommax*g*q1(i-1:i+1,j-1:j+1,k-1).^2/2)) + ...
sum(sum(Gommay.*q2(i-1:i+1,j-1:j+1,k-1).*...
q3(i-1:i+1,j-1:j+1,k-1)./q1(i-1:i+1,j-1:j+1,k-1)))-...
f*q3(i,j,k-1) + cf*q2(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1)^2)^(1/2));
% Aproxima q3
q3(i,j,k) = q3(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1).*...
q3(i-1:i+1,j-1:j+1,k-1)./q1(i-1:i+1,j-1:j+1,k-1)))+...
sum(sum(Gommay.*q3(i-1:i+1,j-1:j+1,k-1).^2./...
q1(i-1:i+1,j-1:j+1,k-1) + ...
Gommay*g*q1(i-1:i+1,j-1:j+1,k-1).^2/2)) + ...
f*q2(i,j,k-1) + cf*q3(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1)^2)^(1/2));
end
end
end
SVVolE.m
Codigo utilizado en el captulo 5 para aproximar la solucion de las ecuaciones de Saint-
Venant, aplicando volumenes hbridos generalizados, en regiones elongadas. Se encuentra
programado en el lenguaje de programacion MATLAB
c
[Moler, 2016].
function [q1,q2,q3,X,Y]=SVVolE(x,y,z,t,Tf)
%% Especificaciones
% Aproxima, por medio de vol\umenes h\ibridos generalizados, las ecuaciones
% de Saint-Venant con condiciones de flujo continuo en las fonteras
% de entrada y salida, y de no deslizamiento en los m\argenes izquiedo y
% derecho; sobre regiones elongadas.
% m n\umero de pasos en la entrada y salida
% n n\umero de pasos en los m\argenes
% t n\umero de pasos en el tiempo en el intervalo [0,Tf]
% Tf tiempo final de la simulaci\on
% q1=h tirante
% q2=au gasto en x
% q3=av gasto en y
% Martha Leticia Ruiz Zavala. Abril 2017
% Ejemplo [q1,q2,q3,X,Y]=SVVolE(x,y,z,1e5+1,1);
%% Inicializaci\on
close all
[m,n] = size(x);
% Calculamos los centroides de las celdas
X = (x(1:m-1,1:n-1) + x(2:m,2:n) + x(1:m-1,2:n) + x(2:m,1:n-1))/4;
Y = (y(1:m-1,1:n-1) + y(2:m,2:n) + y(1:m-1,2:n) + y(2:m,1:n-1))/4;
T = linspace(0,Tf,t); % Crea un intervalo temporal
dt = T(2)-T(1); % Tama\~no de paso en el tiempo
q1 = zeros(m-1,n-1,t)+.5;
q2 = zeros(m-1,n-1,t);
q3 = zeros(m-1,n-1,t);
G = zeros(m-1,n-1);
g = 9.81; % Fuerza de gravedad
f = 4.879*10^(-5); % Aceleraci\on de Coriolis
cf = 0.005; % Coeficiente de fricci\on en el fondo
173
%% Condiciones iniciales
dx=1/m;
for j=1:n-1
for i=1:m-1
% Solit\on
q1(i,j,1) = .5 + 0.002*exp((-(X(i,j)+1.5)^2 - (Y(i,j)-.65)^2)/.001);
% Ondas tipo Airy
%q1(i,j,1) = .5 + 0.003*sin(5*pi*(X(i,j) + Y(i,j)));
% Perfil de gastos
G(i,j)= -4*(3*X(i,1)*dx*(X(i,1) + dx) + dx^3)/15 - ...
12*(dx*(2*X(i,1) + dx))/10-8*dx/5;
% Gasto en x
q2(i,j,1)= sin(pi*(j-1)/2/(n-1))*G(i,j);
% Gasto en y
q3(i,j,1)= cos(pi*(j-1)/2/(n-1))*G(i,j);
end
end
%% Condiciones de frontera
for k = 1:t
% M\argen izquierdo
q1(m-1,:,k)=0.500;
q2(m-1,:,k)=0;
q3(m-1,:,k)=0;
% M\argen derecho
q1(1,:,k)=0.500;
q2(1,:,k)=0;
q3(1,:,k)=0;
% Entrada del flujo
q1(:,1,k)=0.500;
q2(:,1,k)=0;
q3(1,1,k)=0;
for i=2:m-2
q3(i,1,k)= -4*(3*X(i,1)*dx*(X(i,1) + dx) + dx^3)/15 - ...
174 Apendice A
12*(dx*(2*X(i,1) + dx))/10-8*dx/5;
end
q3(m-1,1,k)=0;
% Salida del flujo
q1(:,n-1,k)=0.500;
q2(1,n-1,k)=0;
for i=2:m-2
q2(i,n-1,k)= -4*(-3*Y(i,n-1)*dx*(-Y(i,n-1) + dx) + dx^3)/15 - ...
12*(dx*(-2*Y(i,n-1) + dx))/10-8*dx/5;
end
q2(m-1,n-1,k)=0;
q3(:,n-1,k)=0;
end
% Aproxima q1
q1(i,j,k) = q1(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1))) + ...
sum(sum(Gommay.*q3(i-1:i+1,j-1:j+1,k-1))));
% Aproxima q2
q2(i,j,k) = q2(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1).^2./...
q1(i-1:i+1,j-1:j+1,k-1) + ...
Gommax*g*q1(i-1:i+1,j-1:j+1,k-1).^2/2)) + ...
sum(sum(Gommay.*q2(i-1:i+1,j-1:j+1,k-1).*...
q3(i-1:i+1,j-1:j+1,k-1)./q1(i-1:i+1,j-1:j+1,k-1)))-...
f*q3(i,j,k-1) + cf*q2(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1)^2)^(1/2));
% Aproxima q3
q3(i,j,k) = q3(i,j,k-1) - dt*(...
sum(sum(Gommax.*q2(i-1:i+1,j-1:j+1,k-1).*...
q3(i-1:i+1,j-1:j+1,k-1)./q1(i-1:i+1,j-1:j+1,k-1)))+...
sum(sum(Gommay.*q3(i-1:i+1,j-1:j+1,k-1).^2./...
q1(i-1:i+1,j-1:j+1,k-1) + ...
Gommay*g*q1(i-1:i+1,j-1:j+1,k-1).^2/2)) + ...
f*q2(i,j,k-1) + cf*q3(i,j,k-1)/...
(q1(i,j,k-1) - z(i,j))^2*(q2(i,j,k-1)^2 +...
q3(i,j,k-1)^2)^(1/2));
end
end
end
176 Apendice A
[Avila, 1997] Avila, G. S. (1997). Hidraulica general Vol.1. Editorial Limusa, 1 edition.
[Chanson, 2004] Chanson, H. (2004). Enviromental Hydraulics for Open Channel Flow.
Elsevier Butterworth-Heinemann, 1 edition.
[C.Hirsch, 1994] C.Hirsch (1994). Numerical computation of internal and external flows.
John Wiley & Sons, 1 edition.
[Iserles, 1996] Iserles, A. (1996). A first course in the numerical analysis of differential
equations. Cambridge University Press, 1 edition.
177
178 Bibliografa
[Knupp and Steinber, 1993] Knupp, P. and Steinber, S. (1993). Fundamentals of grid ge-
neration. CRC Press.
[LeVeque, 1992] LeVeque, R. J. (1992). Numerical methods for conservation laws. ETH
Zurich.
[LeVeque, 2007] LeVeque, R. J. (2007). Finite difference methods for ordinary and partial
differential equations. SIAM.
[Lloyd N. Trefethen, 1990] Lloyd N. Trefethen, David Bau, I. (1990). Numerical Linear
Algebra. SIAM, 1 edition.
[Mader, 2000] Mader, C. L. (2000). Numerical modeling of water waves. CRC Press, 2
edition.
[Prieve, 2000] Prieve, D. C. (2000). A course in fluid mechanics with vector field theory.
Carnegie Mellon University.
[S.D. Conte, 1980] S.D. Conte, C. d. B. (1980). Elementary numerical analysis. An algo-
rithmic approach. McGraw-Hill, 3 edition.
[workgroup, 2011] workgroup, U. (2011). An automatic package for numerical grid gene-
ration.