Documentos de Académico
Documentos de Profesional
Documentos de Cultura
68
1. 1.1.
La hip tesis b sica de un ujo reptante, desarrollada por Stokes (1851), es que o a los t rminos de densidad (inercia) son despreciables en la ecuaci n de movimiento. e o Este tipo de ujo es el que se tiene en el caso de uidos de alta viscosidad a baja velocidad, dando lugar a un n mero de Reynolds bajo Re << 1. Sumando la condici n u o de incompresibilidad el sistema de ecuaciones diferenciales resulta v = 0, v = + f , t donde v=V n = 0 := pI + v+ vT , sobre D , para t > 0, sobre o , para t > 0, (3) (4) (5)
(1) (2)
con := y, = D o . Siendo v la velocidad, p la presi n, la densidad, la viscosidad din mica y el o a tensor de tensiones. La condici n impuesta por (4) es del tipo do-nothing o de tensi n o o nula. La misma se incluye en la formulaci n d bil. o e 1.1.1. Formulaci n d bil o e
La formulaci n d bil se dene multiplicando la ecuaci n de movimiento (2) con o e o d una funci n suave : R que satisface (x) = 0 para todo x D , e integrando o sobre . An logamente, se multiplica la ecuaci n de continuidad (1) con una funci n a o o suave : R. Esto conduce a v + D() : D(v) p t 2
f v,
v =0
Aqu se us la expresi n del tensor rapidez de deformaci n D() := + T . o o o Usando esta formulaci n se incorpora la condici n de tensi n libre a la salida (4) en la o o o formulaci n d bil. o e
69
1.1.2.
Discretizaci n o
Para discretizar la formulaci n d bil del problema se procede de acuerdo al m todo o e e de las lneas. As, primero se discretiza el problema en el espacio, produciendo un sis tema acoplado de ODEs, el que luego se discretiza y resuelve usando un procedimiento time-stepping. La discretizaci n espacial consiste de elementos triangulares conformes con renao miento por bisecci n. Sean los espacios abstractos de elementos nitos: o Vh := span{ 1 , . . . , Mv } H 1 () V0,h := Vh H 1 w (), 0,
M Ph := span{1 , . . . , p p } H 1 () p
Uh := Vh Ph . Se debe tener en cuenta que los espacios Vh y Ph deben cumplir con la condici n o LBB para que la discretizaci n este bien planteada. o Para la discretizaci n temporal se elige una secuencia de pasos de tiempo variables o n > 0, n = 1, . . . , N y se ja
n
tn :=
m=1
m ,
T = tN ,
= mx m . a
m=1,...,N
Se busca una aproximaci n un := (v n , pn ) Uh de la soluci n exacta en los tiempos o h o h h discretos tn . Como es usual, esto se alcanza reemplazando la derivada en el tiempo uh (tn ) con el cociente de una diferencia (Backward Euler)
n1 un uh duh (tn ) h . dt n Una vez discretizada la formulaci n d bil se puede reordenar formando el siguiente o e sistema matricial.
Au = donde Aij :=
A B BT 0
v p
F 0
(6)
1 i j + D( i ) : D( j ) n 2 k j 1 v n1 n i
Bik :=
Fi :=
i f v +
70
A B F A
El sistema lineal (6) se conoce como un problema del tipo saddle-point, un sistema con esta estructura no solo aparece para el ujo de Stokes. Otros ejemplos donde se lo puede encontrar son: problemas de optimizaci n no-lineal, elasticidad incompresio ble, an lisis de circuitos y an lisis estructural entre otros. Para una descripci n m s a a o a detallada sobre los casos donde aparecen este tipo de sistemas, incluyendo peque as n variaciones de los mismos, ver Benzi et al. (2005). 2. 2.1. SOLVERS Complemento de Schur, factorizaci n en bloque o
Si la submatriz A es invertible, la matriz A admite la siguiente factorizaci n triano gular en bloques, A= A B BT 0 = I 0 BT A1 I A 0 0 S I A1 B 0 I , (14)
donde S = BT A1 B se denomina el complemento de Schur de A en A. Un importante n mero de propiedades se pueden derivar en base a la ecuaci n (14), ver Benzi u o et al. (2005). Otras factorizaciones tipo LU son: A= y A= I 0 1 B A I
T
A 0 BT S
I A1 B 0 I A 0 B S
(15)
(16)
La primera con U teniendo unos en la diagonal y la segunda con L teniendo unos en la diagonal. Si se utiliza la factorizaci n LU en bloque (16), premultiplicando por o L1 , se puede obtener el siguiente sistema transformado I 0 BT A1 I esto es, A B 0 S v p = F B A1 F
T
A B BT 0
v p
I 0 BT A1 I .
F 0
(17)
(18)
71
Utilizando sustituci n hacia atr s en bloques se puede resolver el sistema de forma o a segregada. Entonces se obtiene para la presi n o S p = BT A1 F, una vez que se obtuvo p de (19), se puede obtener v de la ecuaci n o A v = F B p (20) (19)
Como puede verse, en el caso segregado se resuelve de forma separada dos sistemas lineales, uno para la presi n y otro para la velocidad de tama o m y n respectivameno n te. La forma de resolver este sistema da lugar a una clasicaci n m s, la resoluci n o a o iterativa o la directa del sistema segregado. 2.2. Gradientes conjugados
El m todo de gradientes conjugados es el m todo iterativo m s destacado para ree e a solver sistemas lineales de ecuaciones sparse, cuando la matriz de los coecientes es cuadrada, sim trica y denida positiva. El m todo es efectivo para resolver sistemas e e de ecuaciones de la forma, Mx=b (21) donde x es la inc gnita, b es un vector conocido, y M es la matriz de los coecientes. o El algoritmo (2.1) muestra los pasos para resolver el sistema de ecuaciones. Para m s a detalles ver Shewchuk (1994). Algoritmo 2.1 Dado x(0) , << 1 y Nmax . Siendo una norma apropiada. 1. Calcular d(0) = r (0) = b M x(0) residuo inicial y primera direcci n de o b squeda, u 2. Longitud del paso: (i) = r T r (i) /dT M d(i) , distancia a recorrer sobre la (i) (i) direcci n de b squeda, o u 3. Soluci n aproximada: x(i+1) = x(i) + (i) d(i) o 4. Residuo: r (i+1) = r (i) (i) M d(i)
T 5. Mejora del paso: (i+1) = r T (i+1) r (i+1) /r (i) r (i)
6. Nueva direcci n de b squeda: d(i+1) = r (i+1) + (i+1) d(i) o u Si r (i+1) > volver al paso 2 y i i + 1. Si no, la soluci n del problema es x(i+1) . o
72
2.3.
Para resolver el sistema de Stokes utilizando el m todo de gradientes conjugados se e resuelve el sistema (19), utilizando implcitamente el sistema (20). El residuo para el paso i correspondiente al sistema (19) es r (i) = BT A1 F S p(i) , recordando que S = BT A1 B, se obtiene r (i) = BT A1 F + BT A1 B p(i) , (23) (22)
Se utiliza la (20) en la anterior para eliminar p(i) . La expresi n del residuo resulta o r (i) = BT v (i) (24)
Se introducen las siguientes inc gnitas intermedias u y z. Donde u se obtiene a o partir de (20), A v (i+1) = F B p(i+1) = = = = = F B p(i) + d(i) F B p(i) B d(i) A v (i) B d(i) v (i) A1 B d(i) v (i) u (25)
(26) (27)
A u = B d(i) . La inc gnita z se obtiene de (24), o r (i+1) = BT v (i+1) = BT v (i) u r (i+1) donde z = BT u. = BT v (i) + BT u = r (i) + z
(28) (29)
Con lo anterior en mente se presenta el algoritmo de resoluci n del sistema de o Stokes por el m todo de gradientes conjugados. e Algoritmo 2.2 Dado p(0) (si no hay una estimaci n inicial tomar p(0) = 0), << 1 y Nmax >> 1. o Estando p(i) , d(i) , r (i) , y z, en el espacio de la presi n Ph y v (i) , u, en el espacio de la o velocidad Vh . Resolver: A v (0) = F B p(0)
73
1. Residuo y direcci n de b squeda inicial: d(0) = r (0) = B v (0) . o u 2. Obtener u A u = B d(i) 3. Obtener z donde z = BT u 4. Longitud del paso: = 5. Soluci n aproximada o p(i+1) = p(i) + d(i) v (i+1) = v (i) u 6. Residuo r (i+1) = r (i) + z 7. Si r (i+1) < o n > Nmax , salir, si no hacer: (i+1) = rT (i+1) r (i+1) r T r (i) (i) (34) (35) (33) (31) (32) r T r (i) (i) dT BT u (i) (30)
d(i+1) = r (i) + (i+1) d(i) volver al paso 2 con i i + 1. Para m s detalles ver Pironneau (1989). a 2.4. Solver directo
Un solver directo (en el presente trabajo implementado con UMFPACK) factoriza la matriz PAQ o PRAQ en el producto LU, donde L y U son matrices triangular inferior y superior, respectivamente, P y Q son matrices de permutaci n, y R es una o matriz diagonal de factores para escalar las las. Tanto P como Q se elijen para reducir el ll-in (nuevas entradas no nulas en L y U correspondientes a entradas nulas en A). La matriz de permutaci n P tiene el doble rol de reducir el ll-in y de mantener la o exactitud num rica. e Un solver directo para matrices rala consta de cuatro pasos diferentes, 1. Un paso de ordenamiento que reordena las y columnas, tal que los factores sufren poco ll-in, o que la matriz tenga una estructura especial tal como una forma triangular de a bloques,
74
2. Un paso de an lisis o de factorizaci n simb lica que determina la estructura de a o o elementos no nulos de los factores y crea una estructura adecuada de los factores, 3. Una factorizaci n num rica que calcula los factores L y U, o e 4. Un paso de resoluci n que realiza una sustituci n hacia atr s y hacia adelante o o a utilizando los factores del punto anterior. Usualmente los pasos 1 y 2 involucran unicamente los grafos de la matriz, y por lo tanto operaciones con enteros. Los pasos 3 y 4 involucran operaciones de punto otante. El paso 3 es usualmente el que consume m s tiempo, mientr s que el paso a a 4 es alrededor de un orden de magnitud m s r pido. El algoritmo usado en el paso a a 1 es bastante independiente del usado en el 3. Pero el algoritmo en el paso 2 esta frecuentemente muy relacionado con el del paso 3. Para los sistemas no-sim tricos e m s generales el solver combina los pasos 1, 2, y 3 (tal es el caso de UMFPACK) tal a que los valores num ricos tambi n cumplen un rol en la determinaci n del orden de la e e o eliminaci n. Ver Duff et al. (1986) y Davis (2004b). o 3. IMPLEMENTACION
El sistema de ecuaciones (6) es producto de la aproximaci n de la soluci n del o o problema de Stokes utilizando el m todo de los elementos nitos. Para ensamblar las e matrices A, B y el vector F se utiliza el paquete de herramientas ALBERTA (Schmidt and Siebert (2005)). El desarrollo de las estructuras de datos de ALBERTA se basa en el concepto abstracto de un espacio de elementos nitos como un triplo formado por i) un conjunto de elementos de malla, ii) un conjunto de funciones base locales sobre un elemento y iii) una conexi n de las funciones base locales y globales dando los grados de libertad o globales (Schmidt and Siebert (2005)). Usando estas estructuras de datos ALBERTA provee toda la estructura abstracta como espacio de elementos nitos, junto con mallas jer rquicas, rutinas para adaptar la malla y la administraci n completa de los espacios a o de elementos nitos y los correspondientes grados de libertad durante las modicaciones de la malla. Estas caractersticas hacen que ALBERTA sea una buena elecci n al momento de o ensamblar las matrices necesarias para armar el sistema (6). 3.1. Implementaci n solver CG o
Para resolver el sistema (6) utilizando el m todo de gradientes conjugados se implee menta el algoritmo (2.2). Las operaciones entre matrices y vectores se realizan utilizando funciones de ALBERTA basadas en las libreras BLAS. Por otro lado la resoluci n o de los subsistemas de ecuaciones (27) y (29) se realizan utilizando solvers provistos por ALBERTA. Entre estos se elijen los solvers est ndar CG y el GMRes. a
75
3.2.
El solver a utilizar es UMFPACK (Davis and Duff (1997), Davis and Duff (1999), Davis (2004b), y Davis (2004a), http://www.cise.u.edu/research/sparse/umfpack/). UMFPACK es un conjunto de rutinas para resolver sistemas lineales sparse nosim tricos, Ax = b, el cual utiliza el m todo Unsymmetric MultiFrontal. Est escrito e e a en ANSI/ISO C. Incluye una interface para MATLAB, una llamable desde C, y una llamable desde Fortran. Una de las rutinas que posee UMFPACK es un conversor de matrices, el argumento de la misma es la matriz en formato de triplo (i, j, aij ) y el resultado es la matriz en un formato optimo para trabajar dentro de UMFPACK. Esto motiva la implementaci n de un conversor de matrices desde la estructura de datos utilizada en ALBERTA o a formato triplo. Luego se utiliza la rutina mencionada anteriormente poder trabajar con UMFPACK. Se implementa tambi n un conversor de vectores desde y hacia ALe BERTA, primero para exportar los vectores correspondientes al t rmino forzante desde e ALBERTA, luego para importar la soluci n del problema. o Debido a que se desea resolver el problema (6) tambi n se implementa una funci n e o para ensamblar la matriz A teniendo en cuenta las condiciones de borde. 4. 4.1. RESULTADOS NUMERICOS Hardware y sistema operativo
Los c lculos se realizaron en una computadora de escritorio con las siguientes caa ractersticas: posee un procesador Intel Pentium 4 (3.00 GHz), 2Ghz de RAM (400 MHz) y como sistema operativo se utiliza Ubuntu 7.10, Kernel 2.6.22-15. Para compilar las libreras y los programas se utiliza el compilador de GNU, gcc versi n 4.1. o 4.2. Par metros a determinar a
En los experimentos num ricos se plantea aumentar la cantidad de grados de libere tad, observando en cada caso la performance de cada m todo a trav s de los siguientes e e par metros a Tiempo de c lculo, a Cantidad de memoria RAM pedida al sistema operativo (SO). 4.3. Caso de estudio 1
El primer experimento num rico utiliza un ejemplo ya tratado en Caron et al. (2007) e Este ejemplo consiste en analizar el ujo de Stokes producido cuando se deforma un dominio en el tiempo como el que se muestra en la gura (1). Este se puede considerar como un modelo simplicado del llenado de un molde met lico con caucho cuando se a utiliza moldeo por compresi n/transferencia. Para m s detalles ver Caron et al. (2007). o a El ejemplo planteado es no-estacionario. Para evaluar la performance del m todo e se toman valores crticos del ensayo num rico. Para el caso de la memoria RAM se e
76
m (t)
o (t)
Figura 1: La gura ilustra el dominio (t), la frontera = s o m (t), donde s es la porci n de o la frontera ja e impermeable, o representa una ventana de salida ja y m (t) es una frontera m vil o
toma el valor m ximo requerido y para el tiempo de c lculo por paso se toma el valor a a medio. 4.3.1. Resultados
En la tabla (1) se presentan los resultados obtenidos. La estrategia es la siguiente: se resuelve el problema con ambos solvers increment ndose la cantidad de grados de lia bertad (GDL), se deja de calcular cuando hay alg n limitante. En el caso del solver CG u el tiempo de c lculo es la principal restricci n, mientras que para el solver UMFPACK a o el limitante es la cantidad de memoria RAM necesaria para realizar el c lculo. As se a detiene el c lculo cuando el solver CG toma 12796 segundos (aproximadamente 3:30 a horas) y cuando UMFPACK requiere 1662 Mb (casi el el total de memoria disponible. En los c lculos correspondientes al solver CG de la tabla (1) se utiliza uno tolerancia a 10 de 10 para el lazo exterior y 1012 para la resoluci n iterativa de los sistemas (27) o y (29). En la gura (2) se muestra el consumo de memoria RAM del solver UMFPACK. Adem s se muestra la estimaci n de la cantidad de memoria requerida cuando se vuela o ve a aumentar la cantidad de grados de libertad del problema. En la gura (3) se muestra la evoluci n de consumo de memoria durante el c lculo. o a Se indica tambi n el momento en donde empieza a funcionar UMFPACK, cabe aclarar e que en el caso de utilizar el solver CG en este punto no aumenta el uso de memoria RAM. Se observa entonces la cantidad de memoria extra para resolver utilizando el solver directo UMFPACK.
77
Sistema UMFPACK CG Relaci n o GDL Entradas Wallclock RAM Wallclock N tiempos no nulas[ %] time [seg] [Mb] time [seg] Iter. TCG /TUMFPACK 470 5.24 0.03 3.312 0.6 43 20 704 3.68 0.04 3.416 1.4 48 35 1139 2.24 0.08 5.340 4.06 71 51 1670 1.58 0.09 6.008 8.86 81 98 2751 0.95 0.14 8.948 28.02 105 200 4250 0.64 0.23 12.768 90.67 128 394 7271 0.37 0.36 18.712 368.89 162 1025 12002 0.23 0.80 32.008 888.13 171 1110 21495 0.13 1.83 55.132 1989.7 186 1087 70679 0.07 3.35 196.028 4812.74 187 1436 131090 0.04 7.78 389.840 12796 191 1644 251991 0.01 21.03 784.272 483410 0.01 63.07 1662.21 Tabla 1: Resultados comparativos de ambos solvers con el tama o del problema creciente n
1.5
Experimental Regresion 1
0.5
Figura 2: Cantidad de memoria RAM necesaria cuando se aumenta el tama o del problema n
78
Uso de memoria en un paso de tiempo - Flujo de Stokes 483410 GDL 1.8 1.6 1.4 Uso de memoria RAM [Gb] 1.2 1 0.8 0.6 0.4 0.2 0 0 50 100 Tiempo de calculo [s] 150 200 Comienzo solucion con UMFPACK
VmSize VmRSS
Figura 3: Uso de memoria del programa, donde VmSize es la memoria pedida al sistema y VmRSS es la memoria utilizada por el programa
79
4.4.
Caso de estudio 2
Como segundo ejemplo se plantea lo siguiente: analizar el ujo transitorio generado cuando se tiene un uido en reposo entre dos paredes y se mueve la pared inferior bruscamente desde cero a velocidad constante en x, manteniendo la pared superior en reposo. El objetivo es alcanzar con la simulaci n la soluci n de estado estacionario o o vericando el tiempo requerido por cada solver. El dominio de estudio es [0, 1]2 , en el mismo se imponen condiciones del tipo donothing en los lados verticales, al lado superior se le impone velocidad nula y al lado inferior se le impone en t = 0 una velocidad constante unitaria en la direcci n x. o Adem s de los solvers utilizados anteriormente se considera una tercera posibilidad: a utilizar la misma factorizaci n simb lica en todos los pasos de tiempo. Esto permite o o un ahorro en tiempo de CPU a costo de mantener la factorizaci n en memoria. Esto o se puede hacer debido a que la distribuci n de entradas no nulas de la matriz est vino a culada con la conectividad de la malla y a que, en este caso, la misma no cambia en diferentes pasos. Se plantea resolver el problema en (, t) = [0; 1]2 [0; 0, 25). La cantidad de pasos de tiempo utilizados son 400 y se toman densidades de malla desde 6903 grados de libertad, 6098 para la velocidad y 805 para la presi n, hasta 82839, 73490 y 9349, o respectivamente. Las tolerancias utilizadas para el solver CG coinciden con las del caso de estudio 1. GDL GDL vel. GDL pres. 6903 6098 805 22999 20370 2629 43021 38154 4867 82839 73490 9349 CG UMFPACK 1 UMFPACK 2 00:13:10 00:08:00 00:06:57 00:54:21 00:39:33 00:38:28 02:33:39 01:11:43 01:05:40 05:57:06 02:50:56 02:51:22
Tabla 2: Comparaci n de tiempos de c lculo para el problema de ujo entre placas. UMFPACK 1 se o a reere al caso cuando no se reutiliza la factorizaci n simb lica, UMFPACK 2 para el caso en que si se o o reutiliza. El tiempo se encuentra en formato HH:mm:ss
En la gura (4) se observa que la soluci n en t = 0,25 no es una recta como se o espera en el caso estacionario (ver Batchelor (1967) p gina 191). Esto se debe a que a el dominio no es el adecuado para representar la soluci n exacta. Como el objetio vo es comparar la performance de cada solver no se considera necesario representar exactamente la soluci n exacta del problema, si no asegurar que se llega al estado o estacionario.
80
0.6
0.4
0.2
81
5.
CONCLUSIONES
Se resuelve el problema de Stokes utilizando dos estrategias. La primera consiste en implementar el algoritmo (2.2), la segunda resuelve el sistema (6) directamente utilizando un solver directo (UMFPACK). Los resultados muestran que el solver directo es mucho m s r pido que el iterativo, a a esto se logra a expensas del uso de memoria, lo cual limita el tama o del problema n a unos 500000 grados de libertad. Cabe aclarar que es una limitaci n no salvable, o pasado el lmite no se llega a una soluci n. En el caso del solver CG la limitaci n es el o o tiempo que se tarda en resolver, pero se puede llegar a una soluci n, aunque no resulta o pr ctico. a En los casos en que la factorizaci n simb lica consuma una cantidad de tiempo o o signicativa, y que no se modique la malla en el tiempo, se puede reutilizar la factorizaci n simb lica. Como se dijo, la distribuci n de entradas no nulas est vinculada o o o a con la conectividad de la malla, mientras m s compleja sea la geometra del problema a m s tiempo consumir la factorizaci n simb lica. a a o o
82
REFERENCIAS Batchelor G.K. Fluid Dynamics. 1967. Benzi M., Golub G.H., and Liesen J. Numerical solution of saddle point problems. Acta Numerica, 14:1137, 2005. Caron P.A., Porta P.F., and K ster D.T. Flujo de un uido newtoniano reactivo en o un dominio movil. Asociacion Argentina de Mecanica Computacional, Mecanica Computacional(26):974, 2007. Davis T.A. Algorithm 832: Umfpack v4.3an unsymmetric-pattern multifrontal method. ACM Transactions on Mathematical Software (TOMS), 30(2):196199, 2004a. Davis T.A. A column pre-ordering strategy for the unsymmetric-pattern multifrontal method. ACM Transactions on Mathematical Software (TOMS), 30(2):165195, 2004b. Davis T.A. and Duff I.S. An unsymmetric-pattern multifrontal method for sparse lu factorization. SIAM J. Matrix Anal. Appl., 18(1):140158, 1997. doi:http://dx.doi. org/10.1137/S0895479894246905. Davis T.A. and Duff I.S. A combined unifrontal/multifrontal method for unsymmetric sparse matrices. ACM Transactions on Mathematical Software (TOMS), 25(1):120, 1999. Duff I.S., Erisman A.M., and Reid J.K. Direct methods for sparse matrices. 1986. Pironneau O. The Finite Element Methods for Fluids. 1989. Schmidt A. and Siebert K.G. Design of Adaptive Finite Element Software: The Finite Element Toolbox ALBERTA. Lecture Notes in Computational Science and Engineering. 1 edition, 2005. Shewchuk J.R. An introduction to the conjugate gradient method without the agonizing pain. Preprint, 1994.