Sunteți pe pagina 1din 13

I2VIS: Un código para el modelamiento termomecánico en

geociencias
Juan David Hernández Montenegro

1. Introducción
El modelamiento geodinámico a través de métodos numéricos ha cobrado gran importancia en los últimos
años gracias al desarrollo de diferentes lenguajes de programación (e.g. MATLAB, Python, C++, etc.) y al
acelerado progreso en hardware que ha resultado en un mejoramiento notable de la eficiencia de procesos
computacionales. Estos avances han permitido superar muchas de las limitaciones espaciales y temporales en
las observaciones realizadas por el hombre. De modo qué, la geologı́a ha dejado de ser una disciplina puramente
observacional e intuitiva para convertirse en una ciencia deductiva y predictiva que se fundamenta en gran medida
en la aplicación de métodos numéricos para explicar fenómenos que ocurren en diferentes escalas (Morra, 2017).
Actualmente, gran parte del conocimiento que se genera sobre la evolución térmica y tectónica de la Tierra
requiere de simular escenarios realistas con respecto a la dinámica de la litosfera y el manto. La solución de este
tipo de problemas implica modelar con buena resolución diferentes parámetros reológicos de materiales terrestres,
los cuales también dependen en gran medida de otros factores tales como la temperatura, la composición, la
tasa de deformación (strain-rate), el contenido de volátiles, el tamaño de grano y la presión de fluidos. Esto
resulta particularmente complejo, ya que, la ecuación de momentum, a esta escala, se convierte en una ecuación
diferencial parcial elı́ptica no-lineal cuya solución es todo un desafı́o computacional debido a la inmensa variación
en el orden de magnitud de los elementos y propiedades que conforman las matrices de solución (Gerya and
Yuen, 2003). Frente a la complejidad de este tipo de modelamiento, una propuesta relativamente reciente es el
uso de un método de marcadores-en-celda basados en caracteristicas combinados con un esquema de diferencias
finitas conservativas: ((Characteristics-based marker-in-cell method with conservative finite-difference scheme)).
Esta técnica permite resolver las ecuaciones de momentum, continuidad y temperatura en 2D mediante el uso
de una grilla escalonada con diferentes tipos de nodos y marcadores aleatoriamente distribuidos.
En este trabajo, presentaré el uso de este método mediante el código I2VIS originalmente diseñado y estruc-
turado por Gerya and Yuen (2003) y Gerya (2010). Para los objetivos del curso, el código ha sido modificado
de la versión presentada en Gerya (2010) para presentar un escenario geológico real (la simulación en la versión
original sólo incluye dos capas verticales en diez intervalos de tiempo). Adicionalmente, este código ha sido
traducido en su totalidad a lenguaje Python (originalmente escrito en MATLAB) con algunas ligeras modi-
ficaciones en el diseño de los marcadores y la estructura de los nodos, las cuales han sido necesarias para el
funcionamiento del código y la correcta reproducción de los resultados originales en Python.

2. Condiciones de un código geodinámico


Como se mencionó anteriormente, la reologı́a de las rocas en la corteza y el manto depende en gran medida
de la temperatura, la deformación, el contenido de volátiles, el tamaño del grano y la presión de fluidos. Pero
además de la complejidad que introduce esta dependencia de la reologı́a de varias de las propiedades intrı́nsecas
del material, hay algunos otros problemas que deben ser solucionados para poder modelar termomecánicamente
un sistema en el medio continuo: i ) La fuerte variación en la viscosidad de las rocas de la corteza y el manto
resulta en la no-linealidad de la ecuación de momentum que refleja un comportamiento, asimismo, no-lineal
entre los tensores de stress y strain-rate; ii ) la fuerte dependencia y variabilidad de la conductividad térmica
con la temperatura, presión y mineralogı́a causa dificultades numéricas que no se observan cuando se asume una
conductividad térmica constante; y iii ) propiedades fı́sicas de transporte en las rocas como la viscosidad y la
conductividad varı́an ampliamente de acuerdo a la composición quı́mica y mineralogı́a de los materiales (Gerya
and Yuen, 2003). Ası́ pues, para superar estos obstáculos, es necesario que el modelamiento termomecánico
cumpla los siguientes requisitos (Gerya, 2010; Gerya and Yuen, 2003):

1. Conservar stress bajo condiciones que involucren marcadas discontinuidades en la distribución de la vis-
cosidad.
2. Conservar el flujo de calor bajo condiciones que involucren marcadas variaciones de conductividad y
gradientes de temperatura en las capas quı́micas o térmicas cuya temperatura sea dependiente de la

1
3 Estructura del código I2VIS (Gerya, 2010) 2

conductividad.
3. Conservar propiedades de transporte tales como temperatura, especies quı́micas, viscosidad y densidad,
en flujos con un fuerte carácter advectivo.

3. Estructura del código I2VIS (Gerya, 2010)


Cumpliendo con los requerimientos que fueron mencionados arriba, el código termomecánico debe tener
en cuenta las relaciones fı́sicas entre las ecuaciones de momentum, continuidad, temperatura y advección. Un
ejemplo de esto, es la ecuación de temperatura que requiere valores de calor adiabático y calor de cizalla, los
cuales son, por su parte, calculados a partir de los campos de velocidad, presión, stress y strain-rate. De manera
que la ecuación de temperatura sólo puede ser resuelta después de resolver las ecuaciones de momentum y
continuidad. Además, estas dos ecuaciones - momentum y continuidad - deben ser resueltas simultáneamente
para obtener ası́ los valores de velocidad que están incluidos en ambas ecuaciones. Por su parte, la ecuación
de advección se resuelve a partir del campo de velocidad, es decir, después de solucionar las ecuaciones de
momentum y continuidad.

3.1. Descripción del algoritmo

Fig. 1: Diagrama de flujo para la implementación del código termomecánico I2VIS mediante la solución de las ecuaciones
de momentum, continuidad y temperatura. Tomado de: (Gerya, 2010).

El diagrama de flujo de la Figura 1 es un ejemplo de un código termomecánico tomado de Gerya (2010). Este
código soluciona en 2D las ecuaciones de momentum, continuidad y temperatura mediante el uso de diferencias
finitas y la técnica de markers-in-cell. De manera general, las etapas del algoritmo implican los siguientes
procedimientos dentro del código:

1. Calcular las propiedades fı́sicas escalares (η, ρ, α, CP , k, Hr ) para cada uno de los marcadores e interpolar
estas propiedades, junto con la temperatura advectiva, desde los marcadores a los nodos Eulerianos. Aplicar
condiciones de frontera para las temperaturas en los nodos que fueron interpoladas desde los marcadores.

2. Resolver las ecuaciones de momentum y continuidad en 2D con una formulación de presión y temperatura
sobre una grilla escalonada mediante la composición e inversión de la matriz global usando un método de
eliminación Gaussiana (simple de operar, estable y de alta precisión).
3 Estructura del código I2VIS (Gerya, 2010) 3

3. Definir un desplazamiento óptimo de tiempo ∆t para los marcadores basado en el campo de velocidad
calculado en el paso anterior.
4. Calcular el calor adiabático (Ha ) y el calor de cizalla (Hs ) en los nodos Eulerianos.

5. Definir un desplazamiento óptimo en el tiempo ∆t para la ecuación de temperatura. Gerya (2010) toma
el menor intervalo de tiempo de tres posibles: i ) el lı́mite del intervalo de tiempo absoluto en escala
geológica en el que se puedan observar los procesos geológicos observados (para el código aquı́ presentado
es de 1 M.a.); ii ) el tiempo en que se alcance el máximo desplazamiento relativo de los marcadores en la
grilla (tı́picamente entre 0.1 - 0.2) y iii ) el tiempo que tome el máximo cambio de temperatura permitido
(normalmente entre 1 y 20K).

6. Resolver la ecuación no lineal de temperatura implı́citamente en los marcadores (usando la formulación


Lagrangiana) mediante un método directo de inversión Gaussiana.
7. Interpolar los cambios de temperatura en los nodos hacia los marcadores y calcular nuevas temperaturas
para los marcadores teniendo en cuenta la difusión fı́sica a nivel de subgrilla, es decir, la transferencia de
temperatura entre marcadores vecinos.

8. Usar un esquema Runge-Kutta de cuarto orden en el espacio para mover todos los marcadores en la grilla
de acuerdo a la velocidad calculada globalmente... Regresar al paso 1 para continuar en el tiempo t + 1.

3.2. Estructura geométrica de nodos y marcadores


Antes de iniciar el desarrollo matemático y la explicación del algoritmo correspondiente al código I2VIS,
es conveniente aclarar en que consiste la aplicación del método markers-in-cell descrito inicialmente en Gerya
and Yuen (2003). El método consiste en un esquema de diferencias finitas conservativas usando una grilla
escalonada e irregularmente espaciada que conforma una cuadricula Euleriana (i.e. un marco de referencia fijo
con relación al cual cada nodo va a permanecer en una única posición durante todos los intervalos de tiempo).
Esta configuración Euleriana de diferencias finitas es combinada con marcadores móviles siguiendo un enfoque
Lagrangiano (i.e. un sistema de referencia en el que cada punto del espacio está conectado a un punto material,
por lo que el espacio Lagrangiano resulta siendo móvil en el tiempo). En los marcadores se asignan propiedades
fı́sicas escalares tales como viscosidad, densidad, calor especı́fico, conductividad térmica, etc., que deben ser
luego interpolados a los nodos en el espacio Euleriano. En el caso de los cambios de temperatura en el tiempo,
el procedimiento es inverso, estos cambios son calculados en los nodos y luego interpolados a los marcadores
para minimizar la difusión numérica de la temperatura.
La configuración geométrica de los nodos en la grilla Euleriana y de los marcadores en el espacio Lagrangiano
se muestran como referencia en las Figuras 2a y 2b, respectivamente. En la Figura 2a, se muestra una grilla
escalonada ((fully staggered )) e irregularmente espaciada, con diferentes tipos de nodos en un espacio Euleriano.
Este tipo de grilla está conformado por una grilla no escalonada (i.e. únicamente nodos básicos), a la cual se le
incorporan nodos adicionales entre el espacio definido por los nodos básicos con el fin de definir diferentes tipos
de variables en diferentes tipos de nodos. Ası́, la discretización de ecuaciones termomecánicas es más natural y
resulta en formulas simples para resolver problemas mediante diferencias finitas. Por su parte, la Figura 2b es
una representación esquemática de la interpolación de un parámetro B desde marcadores Lagrangianos hacia
nodos Eulerianos y viceversa. Cada uno de los marcadores tiene información sobre T , coordenadas espaciales,
componentes del vector de deformación; representando la historia de deformación y el tipo de material. Las
propiedades que se definen en los nodos de la grilla Euleriana son:

vx , vy = velocidad k = conductividad térmica


qx , qy = f lujo de calor Cp = capacidad calorif ica
ηn , ηs = viscosidad normal y de cizalla α = coef iciente de expansión térmica

ε̇xy , ε̇xx , ε̇yy = strain − rate Ha , Hs = calor adiabático y de cizalla


σxy , σxx , σyy = stress T = temperatura
ρ = densidad P = presión

Para interpolar valores desde los marcadores hacia los nodos, como es el caso de la etapa 1 del algoritmo se
usa el esquema de la izquierda en la Figura 2b, el cual es una interpolación bilineal de la forma:
4 Desarrollo conceptual de cada etapa del algoritmo 4

Fig. 2: a) Configuración de nodos Eulerianos en una grilla escalonada irregularmente espaciada. Los sı́mbolos corres-
ponden a cuatro tipos de propiedades escalares, vectoriales y tensores en las direcciones x (dist. horizontal) y y
(profundidad) (Gerya, 2010). b) Representación esquemática de la interpolación de un parámetro B desde mar-
cadores Lagrangianos hacia nodos Eulerianos y viceversa. Cada uno de los marcadores tiene información sobre
T , coordenadas espaciales, componentes del vector de deformación; representando la historia de deformación y el
tipo de material.

X
Bm wm(i,j)
m
Bi,j = X , (1)
wm(i,j)
m
   
∆xm ∆ym
wm(i,j) = 1− × 1− .
∆x ∆y

En donde Bi,j es el valor de cualquier parámetro para el nodo ij, Bm es el valor de ese mismo parámetro en
el marcador m y wm(i,j) es el peso estadı́stico del marcador m en el nodo ij. Por otro lado, la interpolación de
parámetros fı́sicos desde los nodos Eulerianos a los marcadores Lagrangianos (como en el caso de la temperatura),
se hace también mediante una interpolación bilineal con los cuatro nodos vecinos (parte derecha de Figura 2b):

    
∆xm ∆ym ∆xm ∆ym
Bm = Bi,j 1 − 1− + Bi,j+1 1− (2)
∆x ∆y ∆x ∆y
 
∆xm ∆ym ∆xm ∆ym
+Bi+1,j 1 − + Bi+1,j+1 .
∆x ∆y ∆x∆y

4. Desarrollo conceptual de cada etapa del algoritmo


Etapa 1: Interpolación de propiedades escalares de marcadores a nodos. En la primera etapa del algoritmo,
se definen, como se mencionó anteriormente, diferentes variables escalares y vectoriales del modelo. La tempe-
ratura y el tipo de roca, por ejemplo, están representados por valores asignados a distintos marcadores que se
distribuyen en una grilla con un desplazamiento aleatorio pequeño. Por su parte, otras propiedades escalares co-
mo la densidad, viscosidad, conductividad térmica, etc., son calculadas para cada marcador en cada intervalo de
tiempo teniendo en cuenta el tipo de roca asociado con cada marcador. Ası́, se minimiza la cantidad de memoria
asociada con los marcadores a sólo tres valores de tipo flotante - las coordenadas x y y mas la temperatura - y
un entero que corresponde al tipo de roca. Cada tipo de roca tiene asociadas, además, otras propiedades (calor,
stress, densidad, etc.) que pueden ser calculadas para cada marcador a partir de sus condiciones de presión y
temperatura. Los valores de estas propiedades en los marcadores son posteriormente traspasados a los nodos
Eulerianos en cada intervalo de tiempo usando el método de interpolación descrito en la Figura 2b mediante la
Ecuación (1). La interpolación local de otras variables se lleva a cabo cuando hay una fuerte variación en los
valores de dichas variables (e.g. variaciones fuertes en la viscosidad o la conductividad térmica) para permitir
una mejor resolución de las ecuaciones de momentum, continuidad o temperatura. Luego de interpolar a los
nodos los valores de temperatura en los marcadores, deben aplicarse condiciones de frontera en cada intervalo de
4 Desarrollo conceptual de cada etapa del algoritmo 5

tiempo para evitar la acumulación de un error de interpolación que crecerı́a en cada uno de estos. Finalmente,
para el problema inverso de traspasar valores de propiedades escalares, vectoriales y tensores desde los nodos
a los marcadores, el código I2VIS emplea el método de interpolación bilineal descrito por el esquema de la
Figura 2b y la Ecuación (2) en donde los valores de los cuatro nodos Eulerianos más cercanos a un marcador
se interpolan teniendo en cuenta las distancias ∆x y ∆y entre estos.

Etapa 2: Solución de las ecuaciones de momentum y continuidad. En dos dimensiones se tienen dos ecua-
ciones de flujo lento e incompresible en un campo gravitatorio uniforme:

0
∂σxx ∂σxy ∂P
Ecuación de Stokes − x + − = −ρgx , (3)
∂x ∂y ∂x
0
∂σyy ∂σyx ∂P
Ecuación de Stokes − y + − = −ρgy , (4)
∂y ∂x ∂y
En donde:

0
σxx = 2η ε̇xx ,
0
σyy = 2η ε̇yy ,
σxy = σyx = 2η ε̇xy ,
∂vx
ε̇xx = ,
∂x
∂vy
ε̇yy = ,
∂y
 
1 ∂vx ∂vy
ε̇xy = + .
2 ∂y ∂x

0 0
Por definición el esfuerzo desviatorio (que en adelante se llamará deviatoric stress) σyy = −σxx , además para
0
fluidos incompresibles en 2D ε̇yy = ε̇xx . De modo que se puede evitar usar los términos σyy y ε̇yy , reformulando
la Ecuación (4) a la forma:

0
∂σxx ∂σxy ∂P
− + − = −ρgy . (4a)
∂y ∂x ∂y
La conservación de masa está dada por la ecuación de continuidad incompresible en 2D:

∂vx ∂vy
+ = 0. (5)
∂x ∂y

Ahora se deben discretizar las ecuaciones (3) y (4) usando diferencias finitas conservativas. (NOTA: los
detalles del procedimiento de discretización pueden consultarse en Gerya (2010), Cap.7 Eq. 7.5 y 7.6).
La ecuación de Stokes en el eje x queda formulada para el nodo horizontal de velocidad vx(i+1/2,j) como:

0
     
∂σxx ∂σxy ∂P
+ − = −(ρgx )i+1/2,j , (6)
∂x i+1/2,j ∂y i+1/2,j ∂x i+1/2,j

Esta misma ecuación en diferencias finitas se expresa como:

0 0
σxx(i+1/2,j+1/2) − σxx(i+1/2,j−1/2) σxy(i+1,j) − σxy(i,j)
2 +
xj+1 − xj−1 yi+1 − yi
P(i+1/2,j+1/2) − P(i+1/2,j−1/2) ρ(i,j) + ρ(i+1,j)
−2 =− gx ,
xj+1 − xj−1 2

En donde:
4 Desarrollo conceptual de cada etapa del algoritmo 6

vx(i+1/2,j) − vx(i−1/2,j) vy(i,j+1/2) − vy(i,j−1/2)


 
σxy(i,j) = 2ηs(i,j) + ,
yi+1 − yi−1 xj+1 − xj−1
vx(i+3/2,j) − vx(i+1/2,j) vy(i+1,j+1/2) − vy(i+1,j−1/2)
 
σxy(i+1,j) = 2ηs(i+1,j) + ,
yi+2 − yi xj+1 − xj−1

0 vx(i+1/2,j) − vx(i+1/2,j−1)
σxx(i+1/2,j−1/2) = 2ηn(i+1/2,j−1/2) ,
xj − xj−1

0 vx(i+1/2,j+1) − vx(i+1/2,j)
σxx(i+1/2,j+1/2) = 2ηn(i+1/2,j+1/2) ,
xj+1 − xj

Aquı́, los indices i, i + 1/2 y j, j + 1/2 se refieren, respectivamente, a las posiciones de los puntos nodales
Eulerianos que se observan en la Figura 2a.
De manera similar a la formulación anterior, la ecuación de Stokes para el nodo vertical de velocidad
vy(i,j+1/2) queda definida como:

0
∂σyy
     
∂σxy ∂P
+ − = −(ρgy )i,j+1/2 , (7)
∂y i,j+1/2 ∂x i,j+1/2 ∂y i,j+1/2

Ası́ mismo, esta ecuación en diferencias finitas se expresa de la siguiente manera:

0 0
σyy(i+1/2,j+1/2) − σyy(i−1/2,j+1/2) σxy(i,j+1) − σxy(i,j)
2 +
yi+1 − yi−1 xj+1 − xj
P(i+1/2,j+1/2) − P(i−1/2,j+1/2) ρ(i,j) + ρ(i,j+1)
−2 =− gy ,
yi+1 − yi−1 2
En donde:

vx(i+1/2,j) − vx(i−1/2,j) vy(i,j+1/2) − vy(i,j−1/2)


 
σxy(i,j) = 2ηs(i,j) + ,
yi+1 − yi−1 xj+1 − xj−1
vx(i+1/2,j+1) − vx(i−1/2,j+1) vy(i,j+3/2) − vy(i,j+1/2)
 
σxy(i,j+1) = 2ηs(i,j+1) + ,
yi+1 − yi−1 xj+2 − xj
0 vy(i,j+1/2) − vy(i−1,j+1/2)
σyy(i−1/2,j+1/2) = 2ηn(i−1/2,j+1/2) ,
yi − yi−1
0 vy(i+1,j+1/2) − vy(i,j+1/2)
σyy(i+1/2,j+1/2) = 2ηn(i+1/2,j+1/2) ,
yi+1 − yi
Ahora se formula la ecuación de continuidad para el nodo de presión P(i−1/2,j−1/2) , la cual queda de la
forma:

   
∂vx ∂vy
+ = 0, (8)
∂x i−1/2,j−1/2 ∂y i−1/2,j−1/2

En diferencias finitas:
vx(i−1/2,j) − vx(i−1/2,j−1) vy(i,j−1/2) − vy(i−1,j−1/2)
+ = 0.
xj − xj−1 yi − yi−1

Cuando se calculan estas ecuaciones para cada uno de los nodos, se forman varios arreglos matriciales.
La matriz global resultante se soluciona mediante un método directo de eliminación gaussiana. Esto tiene
como objetivo solucionar simultáneamente las ecuaciones de momentum (6) y (7), además de la ecuación de
continuidad (8). Mientras que las ecuaciones de momentum se solucionan para los nodos vx(i+1/2,j) y vy(i,j+1/2) ,
la ecuación de continuidad se soluciona para el nodo Pi−1/2,j−1/2 . La ecuación incompresible de continuidad
no incluye desde el inicio Pi−1/2,j1 /2 , pero la solución se garantiza por el orden de procesamiento durante la
inversión, i.e. la solución, de la matriz global basada en relacionar los nodos “secundarios”(e.g. j − 1/2, i + 1/2,
j + 3/2, etc., en la Figura 2a) con los nodos básicos (e.g. i, j, j + 1, i + 2, etc., en la Figura 2a). Lo anterior quiere
4 Desarrollo conceptual de cada etapa del algoritmo 7

decir que la Ecuación (8) para la presión en una celda determinada, por ejemplo, P(i−1/2,j−1/2) , es obtenida
después de calcular las ecuaciones (6) y (7) para los nodos vx y vy que rodean ese punto como se muestra
en la Figura 3. La precisión de la solución por este método es bastante buena, variando entre 10−15 y 10−13 ,
tales niveles de precisión dependen de las variaciones en la viscosidad ηn , por eso, cuando los contrastes en este
parámetro para nodos adyancentes son muy grandes (i.e. ≥ 106 ), se puede tener una precisión menor a 10−6
(Gerya and Yuen, 2003).

Fig. 3: Esquema usado para discretizar las ecuaciones de Stokes en una grilla escalonada de dos dimensiones

Etapas 4-7: Solución de la ecuación de temperatura. Cuando el sistema está asociado a un número de
ρα∆T gH 3 Cp
Rayleigh alto (Ra = ηk ) (i.e. flujos fuertemente dominados por advección, con baja viscosidad, donde
predomina el transporte de calor convectivo), la solución de la ecuación de calor puede resultar inestable (Ismail-
Zadeh and Tackley, 2010; Korenaga, 2013; Morra, 2017). Recordemos que se debe definir un ∆t apropiado para
resolver la ecuación de temperatura en el paso (5) del algoritmo siguiendo los tres criterios mencionados; la
ecuación de calor, sin embargo, depende inversamente de este término, por lo que se pueden generar intervalos
muy pequeños de tiempo y, como resultado, soluciones inestables con matrices globales casi singulares que
NO pueden ser invertidas, causando oscilaciones numéricas que resultan en una fuerte difusión numérica de la
temperatura en los nodos para cada intervalo de tiempo (Ismail-Zadeh and Tackley, 2010). Para resolver este
problema, Gerya and Yuen (2003) usan la forma Lagrangiana de la ecuación de conservación de calor, en donde
la temperatura T calculada en los nodos Eulerianos en cada intervalo de tiempo, es interpolada a los marcadores
de acuerdo a la Ecuación (2) y como muestra la Figura 2b para una variable B.
La forma Lagrangiana de la ecuación de conservación de calor está dada por la Ecuación (9), la cual toma
en cuenta, la generación de calor radiactivo (Hr ), adiabático (Ha ), de cizalla (Hs ) y latente (HL ):

DT ∂qx ∂qy
ρCp =− − + Hr + Ha + Hs + HL , (9)
Dt ∂x ∂y
En donde:

∂T
qx = −k ,
∂x
∂T
qy = −k ,
∂y
Hr = constante (W/m3 ),
 
DP ∂P ∂P
Ha = T α = Tα vx + vy ,
Dt ∂x ∂y
0 0 0
Hs = σxx ε̇xx + σyy ε̇yy + σxy ε̇xy + σyx ε̇yx = 2σxx ε̇xx + 2σxy ε̇xy .

Se puede notar en las ecuaciones (3), (4) y (5), que las variaciones de densidad han sido ignoradas (o se ha
asumido densidad constante) en el modelamiento; por ejemplo, la ecuación de continuidad para la conservación
de masa esta dada originalmente por: ∂ρ ∂t + ∇ · (ρv) = 0, sin embargo, al ignorar los cambios de densidad
4 Desarrollo conceptual de cada etapa del algoritmo 8

en el tiempo y en el espacio, esta ecuación queda reducida a la Ecuación (5) (Anderson and Wendt, 1995).
Esta simplificación, llamada Boussinesq approximation, es usual en modelamiento geodinámico. La densidad
está dada por ρ = ρ0 − αρ0 ∆T , pero para la corteza y el manto α es muy pequeño, por lo que ρ ≈ ρ0 . Lo
anterior, está de algún modo en contradicción con el uso Ha en la Ecuación (9), sin embargo, el cálculo del calor
adiabático también puede ser simplificado usando la misma aproximación, de manera que, ∂P ∂P
∂x y ∂y pueden ser
reemplazados por ρgx y ρgy , respectivamente, y entonces:

Ha ≈ T αρ(gx vx + gy vy ).
Luego de las consideraciones anteriores, es necesario expresar la ecuación de temperatura en diferencias
finitas. Lo primero es llevar la Ecuación (9) a una forma conservativa:
     
DT ∂qx ∂qy t t t t
ρi,j CP i,j =− − + Hr(i,j) + Ha(i,j) + Hs(i,j) + HL(i,j) , (10)
Dt i,j ∂x i,j ∂y i,j

Ahora, en diferencias finitas la Ecuación (10) queda como sigue:

t+∆t t
T(i,j) − T(i,j) qx(i,j+1/2) − qx(i,j−1/2) qy(i+1/2,j) − qy(i−1/2,j)
ρ(i,j) CP (i,j) = −2 −2
∆t xj+1 − xj−1 yi+1 − yi−1

t t t t
+ Hr(i,j) + Ha(i,j) + Hs(i,j) + HL(i,j) ,
Reagrupando los términos conocidos al lado derecho de la ecuación:

ρ(i,j) CP (i,j) t+∆t qx(i,j+1/2) − qx(i,j−1/2) qy(i+1/2,j) − qy(i−1/2,j)


T(i,j) + 2 +2
∆t xj+1 − xj−1 yi+1 − yi−1

ρ(i,j) CP (i,j) t t t t t
= T(i,j) + Hr(i,j) + Ha(i,j) + Hs(i,j) + HL(i,j) .
∆t
En donde:

t+∆t t+∆t
1 Ti,j − Ti,j−1
qx(i,j−1/2) = − (ki,j−1 + ki,j ) ,
2 xj − xj−1
t+∆t t+∆t
1 Ti,j+1 − Ti,j
qx(i,j+1/2) = − (ki,j + ki,j+1 ) ,
2 xj+1 − xj
t+∆t t+∆t
1 Ti,j − Ti−1,j
qy(i−1/2,j) = − (ki−1,j + ki,j ) ,
2 yi − yi−1
t+∆t t+∆t
1 Ti+1,j − Ti,j
qy(i+1/2,j) = − (ki,j + ki+1,j ) ,
2 yi+1 − yi
 
t t vx(i−1/2,j) + vx(i+1/2,j) vy(i,j−1/2) + vy(i,j+1/2)
Ha(i,j) = Ti,j αi,j ρi,j gx + gy ,
2 2

t 1 0 1 0
Hs(i,j) = σ ε̇xx(i−1/2,j−1/2) + σxx(i−1/2,j+1/2) ε̇xx(i−1/2,j+1/2)
2 xx(i−1/2,j−1/2) 2
1 0 1 0
+ σyy(i−1/2,j−1/2) ε̇yy(i−1/2,j−1/2) + σyy(i−1/2,j+1/2) ε̇yy(i−1/2,j+1/2)
2 2
+ 2σxy(i,j) ε̇xy(i,j)
Aquı́ t + ∆t representa el siguiente momento en el tiempo y ∆t es el intervalo de tiempo estimado en la etapa
5 del algoritmo. Esta ecuación se resuelve para cada uno de los nodos Eulerianos y se encuentra la solución de la
temperatura mediante la inversión de la matriz global. A lo largo de este reporte se ha mencionado varias veces
este método de “inversión de la matriz globalçomo la solución de las ecuaciones de momentum, continuidad y
temperatura; lo cual no es más que la solución de un sistema matricial de la forma L · S = R en donde L es
la matriz de coeficientes, R es el vector con los términos conocidos y S es el vector con la solución. Una vez se
calcula la solución por el método implı́cito en la etapa 6 del algoritmo (Figura 1), los valores de temperatura
en los nodos son interpolados a los marcadores usando la Ecuación (2) (etapa 7 del algoritmo).
5 Aplicaciones en modelamiento geodinámico 9

Etapa 8: Advección de marcadores mediante esquema Runge-Kutta. En esta última etapa los marcadores
son desplazados en dirección horizontal y vertical de acuerdo a los vectores de velocidad previamente calculados
en el paso 2. Para ello, se usa una técnica conocida como esquemas Runge-Kutta, en los que se calculan los
componentes de la velocidad efectiva del material (en este caso los marcadores) entre un periodo de tiempo t y
otro t + ∆t. El cálculo de esta velocidad efectiva se obtiene a partir de la velocidad del material en diferentes
puntos del espacio que varı́an desde 2 hasta 4 dependiendo del orden del esquema. En este caso, se usa un
esquema de cuarto orden que esta dado para cuatro puntos A, B, C y D como sigue:

1
vxef f = (vxA + 2vxB + 2vxC + vxD ),
6
1
vxef f = (vyA + 2vyB + 2vyC + vyD ),
6
Si la velocidad se calcula sobre el punto A, entonces sus coordenadas son conocidas y las coordenadas de los
puntos restantes estarán dadas por:

∆t ∆t
xB = xtA + vxA , t
yB = yA + vyA ,
2 2
∆t ∆t
xC = xtA + vxB , t
yC = yA + vyB ,
2 2
∆t ∆t
xD = xtA + vxC , t
yD = yA + vyC ,
2 2

Luego de desplazar los marcadores en el espacio Lagrangiano, el sistema que se modela tiene ahora una
nueva configuración inicial determinada por la distribución de los marcadores dentro de la grilla luego de la
advección de los marcadores usando el esquema Runge-Kutta. Ası́, el algoritmo puede retornar a la etapa 1 para
ejecutar de nuevo el proceso en el tiempo siguiente.

5. Aplicaciones en modelamiento geodinámico


5.1. Ascenso de una pluma del manto
Para mostrar la aplicación de este código dos modelos geológicos simplificados han sido implementados. Estos
modelos están basados en ideas acerca de la evolución geológica de la corteza y el manto en el Precambrico
Sizova et al. (2015); Campbell and Davies (2017); Gerya (2014). La primera simulación corresponde al ascenso de
una pluma caliente del manto hacia la base de la litosfera, en donde, por diferencia de densidad, temperatura y
viscosidad, el manto litosférico y la corteza terminan por ceder y empiezan a hundirse en el manto astenosférico.
La corteza tiene un espesor de 40 km que están constituidos por 20 km de basalto hidratado y 20 km de basalto
más denso en la base de la corteza. Luego de la corteza se tiene un manto litosférico de 40 km de espesor cuya
densidad corresponde a la de una peridotita. Por debajo de la litosfera, se ha dispuesto una astenosfera con
3300 Kg/m3 , η = 101 8P as y espesor de 100 km. Finalmente, la base es un manto solido que alcanza los 500
km de profundidad. Con respecto a la configuración inicial de la pluma, esta tiene una geometrı́a circular con
radio de 100 km cuyo centro se ubica a 250 km de profundidad. Las propiedades térmicas y mecánicas de los
materiales usadas para los modelos están en la Tabla 1.
Hay dos aspectos significativos en este modelo: el primero el ascenso de la pluma, y el segundo, la subsidencia
en la litosfera que produce la interacción con material más caliente, menos denso y menos viscoso. Es notable
como se produce el ascenso del material por flujo convectivo mostrando una inestabilidad de Rayleigh-Taylor
cuyas velocidades se reducen sustancialmente cuando el material alcanza la base litosfera. Una vez esto sucede,
la pluma sigue su ascenso, rompiendo la corteza y provocando el inicio de un proceso de subducción, mientras
aumenta la altura de la litosfera (puede notarse que en la parte superior del modelo hay una capa de 40 km
que corresponde a la atmósfera y el océano con viscosidades de 101 8 para garantizar condiciones de free-slip
y coherencia numérica en la resolución de las matrices). Aunque de alguna forma estos resultados eran de
esperarse, la magnitud de los procesos es sumamente grande (e.g. la litosfera se hunde a casi 150 km antes
de iniciar la subducción, la pluma asciende completamente en 0.6 M.a.), aunque estos resultados son bastante
ilustrativos, es probable que no sean completamente realistas, lo cual se debe a la configuración del modelo, las
simplificaciones hechas y la falta de algunos otros parámetros (NOTA: ver videos anexos).
5 Aplicaciones en modelamiento geodinámico 10

Fig. 4: Modelo de densidad para la pluma que asciende desde el manto.

5.2. Raı́z profunda en corteza continental


La segunda simulación está basada en un modelo propuesto por Campbell and Davies (2017) para el vulca-
nismo en el Arqueano. Esta propone una corteza continental de 40 km de espesor con una raı́z de 80 km con una
densidad de al menos 3500 kg/m3 . En la base de la raı́z hay una pluma mantélica que provoca fusión parcial y
posterior emplazamiento de la corteza continental que se genera. Aunque Campbell and Davies (2017) propone
que ocurre delaminación del material residual en la base, es bastante notorio que las fuerzas verticales hacia
la superficie que ejerce la pluma por su baja densidad, inhiben la fuerza vertical producida por la flotabilidad
negativa del residuo. Sin embargo, de forma similar al ejemplo anterior, también se debe ser precavido al anali-
zar los resultados dadas las simplificaciones hechas en estas simulaciones y la ausencia de otros parámetros que
6 Conclusiones y consideraciones finales 11

podrı́an ser importantes (NOTA: ver videos anexos).

Fig. 5: Modelo de densidad de una raı́z densa y profunda de la corteza continental ((Campbell and Davies, 2017)
)

6. Conclusiones y consideraciones finales


Para concluir, me gustarı́a hacer énfasis en tres aspectos que considero fundamentales para el mejoramiento
del código tanto en términos computacionales como estructurales:
El código I2VIS es una muy buena aproximación a procesos convectivos y conductivos que ocurren en el
manto, la astenosfera y la litosfera. Sin embargo, hay otros aspectos que podrı́an incluirse en el código
para hacerlo más realista. La extracción de fundido en la corteza, por ejemplo, puede incluirse en el
7 Material Suplementario 12

modelamiento siguiendo el procedimiento descrito en Sizova et al. (2015). Esto permitirı́a tener una mejor
idea acerca de los cambios de fase y densidad que llevan a la generación de corteza de menor densidad,
dando además pistas acerca del inicio de la subducción y el emplazamiento de continentes de composición
félsica.

El procesamiento de matrices con valores de tipo flotante es significativamente menos eficiente en Python
con respecto a MATLAB, al menos en términos de la conversión fiel del código entre estos dos lenguajes.
Un mejoramiento que podrı́a realizarse en el futuro es una estructuración más adecuada de los procesos
y operaciones entre matrices de manera que el manejo de la memoria sea más eficiente y la velocidad de
ejecución en cada intervalo de tiempo sea mayor.

La visualización en 2D de los materiales usados en el modelamiento podrı́a ser mejorada mediante el realce
de contraste de las imágenes resultantes y la selección de rampas de color sin interpolación que permitan
asignar colores especı́ficos a diferentes tipos de materiales. De esta manera se podrı́a hacer un seguimiento
más apropiado de las rocas y su desplazamiento en el medio continuo.

Tab. 1: Parámetros térmicos y mecánicos usados en los modelos


Material η(P as) ρ(kg/m3 ) k(W/mK) α(1/K) Hr (W/m3 ) Cp (J/Kg)
18 −3
Aire 10 1,293 0,024 3,67 ∗ 10 0 1000
Agua 1018 1000 0,58 2,57 ∗ 10−4 0 4185
Basalto Hid. 1022 2900 2 3 ∗ 10−5 0,25 ∗ 10−6 1000
−5
Basalto Dhi. 10 22
3000 2 3 ∗ 10 0,25 ∗ 10−6 1000
Manto Lit. 1020 3300 4 3 ∗ 10−5 0,02 ∗ 10−6 1000
−5
Astenosfera 10 18
3300 2 3 ∗ 10 0,02 ∗ 10−6 1050
Manto 1022 3500 2 3 ∗ 10−5 0,02 ∗ 10−6 1100
−5
Pluma 10 18
2500 2 3 ∗ 10 0,25 ∗ 10−6 1050
Corteza C. 1022 2700 2,5 3 ∗ 10−5 1,75 ∗ 10−6 1100
−5
Residuum 10 22
3500 2 3 ∗ 10 0,02 ∗ 10−6 1100
Datos tomados de Turcotte and Schubert (2014), Sizova et al. (2015), Johnson et al. (2014).

7. Material Suplementario
Junto con este informe se presentan: dos archivos con el código I2VIS implementado en Python con los
modelos geológicos que se presentaron anteriormente, cuatro videos que muestran la evolución de los dos modelos
geológicos y

Referencias
Anderson, J. D. and Wendt, J. (1995). Computational fluid dynamics, volume 206. Springer.
Campbell, I. H. and Davies, D. R. (2017). Raising the continental crust. Earth and Planetary Science Letters,
460:112–122.

Gerya, T. (2010). Introduction to Numerical Geodynamic Modelling. Cambridge University Press.


Gerya, T. (2014). Precambrian geodynamics: Concepts and models. Gondwana Research, 25(2):442–463.
Gerya, T. V. and Yuen, D. A. (2003). Characteristics-based marker-in-cell method with conservative finite-
differences schemes for modeling geological flows with strongly variable transport properties. Physics of the
Earth and Planetary Interiors, 140(4):293–318.
Ismail-Zadeh, A. and Tackley, P. (2010). Computational Methods for Geodynamics. Cambridge University Press,
Cambridge.
Johnson, T. E., Brown, M., Kaus, B. J. P., and VanTongeren, J. A. (2014). Delamination and recycling of
Archaean crust caused by gravitational instabilities. Nature Geoscience, 7(1):47.
Korenaga, J. (2013). Initiation and Evolution of Plate Tectonics on Earth: Theories and Observations. Annual
Review of Earth and Planetary Sciences, 41(1):117–151.
Morra, G. (2017). Pythonic Geodynamics: Implementations for Fast Computing. Lecture Notes in Earth System
Sciences. Springer International Publishing.
7 Material Suplementario 13

Sizova, E., Gerya, T., Stüwe, K., and Brown, M. (2015). Generation of felsic crust in the Archean: A geodynamic
modeling perspective. Precambrian Research, 271:198–224.
Turcotte, D. and Schubert, G. (2014). Geodynamics. Cambridge University Press.

S-ar putea să vă placă și