Discretización espacial y temporal de operadores diferenciales en mallas para simulación numérica.
1. Discretización de Dominios y Operadores Diferenciales
En física continua, las leyes fundamentales de conservación (masa, momento, energía, electromagnetismo) se expresan a través de Ecuaciones en Derivadas Parciales (EDPs). A diferencia de las EDOs, las EDPs describen campos escalares o vectoriales u(x,t) que varían simultáneamente en el espacio y en el tiempo.
El método de Diferencias Finitas (FDM) aproxima las derivadas continuas reemplazándolas por cocientes de diferencias evaluados sobre una malla discreta de puntos. Para un dominio unidimensional con longitud L y tiempo T:
Segunda derivada espacial centrada:∂x2∂2ui=Δx2ui+1−2ui+ui−1+O(Δx2)
3. Ecuación de Difusión / Calor 1D y Esquema Explícito FTCS
La ecuación clásica de difusión térmica homogénea es:
∂t∂u=α∂x2∂2u
donde α es la difusividad térmica ([m2/s]).
Aplicando diferencia hacia adelante en tiempo y centrada en espacio (FTCS: Forward-Time Central-Space):
Δtuin+1−uin=αΔx2ui+1n−2uin+ui−1n
Despejando el valor futuro desconocido uin+1:
uin+1=uin+r(ui+1n−2uin+ui−1n)
donde el parámetro adimensional de difusión es:
r=Δx2αΔt
4. Análisis de Estabilidad de von Neumann
El análisis de von Neumann evalúa la evolución de un modo de Fourier arbitrario de la solución numérica:
uin=Gneikxi=Gneik(iΔx)
donde G es el factor de amplificación y k es el número de onda espacial. Para que el esquema sea estable y los errores de redondeo no crezcan exponencialmente, se requiere:
∣G∣≤1,∀k
Sustituyendo el modo de Fourier en el esquema FTCS:
Gn+1eikiΔx=GneikiΔx[1+r(eikΔx−2+e−ikΔx)]G=1+r(2cos(kΔx)−2)=1−4rsin2(2kΔx)
La condición ∣G∣≤1 impone:
−1≤1−4rsin2(2kΔx)≤1
El límite más restrictivo ocurre cuando sin2(kΔx/2)=1:
−1≤1−4r⟹4r≤2⟹r=Δx2αΔt≤21
Consecuencia Física Crucial:
Si se duplica la resolución espacial (Δx→Δx/2), el paso temporal máximo permitido para mantener estabilidad disminuye por un factor de 4:
Δt≤2αΔx2
5. Ecuación de Onda 1D y Condición CFL
Para la propagación de ondas mecánicas o electromagnéticas en 1D:
∂t2∂2u=c2∂x2∂2u
Discretizando ambas derivadas segundas mediante diferencias centradas:
Δt2uin+1−2uin+uin−1=c2Δx2ui+1n−2uin+ui−1n
Despejando uin+1:
uin+1=2uin−uin−1+C2(ui+1n−2uin+ui−1n)
donde el Número de Courant adimensional es:
C=ΔxcΔt
Condición de Courant-Friedrichs-Lewy (CFL):
El esquema es estable si y solo si:
C=ΔxcΔt≤1Significado geométrico/físico: El dominio de dependencia numérico de la malla debe contener completamente el cono de luz o dominio de dependencia físico de la EDP hiperbólica. Si C>1, la información física viaja más rápido que la malla, provocando inestabilidad numérica inmediata.
6. Esquemas Implícitos y Crank-Nicolson
Para eludir la severa restricción cuadrática Δt∼Δx2 en problemas de difusión, se emplean esquemas implícitos. El esquema de Crank-Nicolson promedia las derivadas espaciales en el tiempo actual n y el tiempo futuro n+1:
Precisión: Segundo orden en tiempo y en espacio O(Δt2+Δx2).
Estabilidad: Incondicionalmente estable para cualquier valor de Δt (∣G∣≤1 siempre).
Costo: Requiere resolver un sistema tridiagonal lineal en cada paso temporal mediante el algoritmo de Thomas.
Procedimiento de Discretización y Resolución de EDPs por Diferencias Finitas
Metodología Numérica Sistemática
Para resolver computacionalmente un problema de valores iniciales y de contorno (IBVP) modelado por EDPs mediante diferencias finitas, se debe ejecutar el siguiente procedimiento:
Paso 1: Definición del Dominio y Malla Computacional
Especificar los límites espaciales [0,L] y temporales [0,T].
Escoger el número de subdivisiones espaciales Nx, determinando el paso Δx=L/Nx.
Localizar los nodos espaciales xi=iΔx para i=0,1,…,Nx.
Paso 2: Elección del Paso Temporal según Criterios de Estabilidad
Para Ecuaciones Parabólicas (Calor/Difusión):Δt≤2αΔx2⟹r=Δx2αΔt≤0.5
Se recomienda fijar un margen de seguridad, por ejemplo r=0.4.
Para Ecuaciones Hiperbólicas (Ondas):Δt≤cΔx⟹C=ΔxcΔt≤1.0
Se recomienda fijar C=0.8−0.9.
Paso 3: Inicialización de Condiciones Iniciales (t = 0)
Evaluar el perfil inicial continuo sobre la malla discreta:
ui0=f(xi),∀i=0,1,…,Nx
En problemas de segundo orden temporal (ondas), donde se requiere u˙(x,0)=g(x), aplicar un paso temporal ficticio hacia atrás para inicializar ui1:
ui1=ui0+Δtg(xi)+2C2(ui+10−2ui0+ui−10)
Paso 4: Implementación de Condiciones de Frontera (BC)
En cada paso de tiempo n, aplicar rigurosamente las condiciones en los bordes i=0 e i=Nx:
Frontera de Dirichlet (Valor Fijo):u0n=Uizq,uNxn=Uder
Frontera de Neumann (Flujo Fijo / Aislante ∂u/∂x=0):
Utilizar un punto fantasma u−1n:
2Δxu1n−u−1n=0⟹u−1n=u1n
Sustituyendo en el esquema interior:
u0n+1=u0n+2r(u1n−u0n)
Paso 5: Bucle Temporal y Actualización Espacial
Para cada paso n=0,1,…,Nt−1:
Aplicar el stencil explícito en todos los nodos interiores i=1,2,…,Nx−1.
Imponer las condiciones de frontera para el nuevo nivel un+1.
Intercambiar los buffers de memoria (un←un+1).
Registrar diagnósticos físicos periódicos (energía elástica, flujo total de calor, masa conservada).
Ejemplos Resueltos: Difusión de Calor y Ondas 1D
Ejemplo 1: Conducción Térmica Transitoria en una Barra Unidimensional
Considérese una barra metálica de longitud L=1.0 m con difusividad térmica α=1.0 m2/s.
Las condiciones de frontera son extremos mantenidos a temperatura cero:
u(0,t)=0,u(1,t)=0
La distribución inicial de temperatura es:
u(x,0)=100sin(πx)
La solución analítica exacta es:
uexacta(x,t)=100e−π2αtsin(πx)
Discretización Numérica:
Dividimos la barra en Nx=4 intervalos iguales ⟹Δx=0.25 m.
Los nodos espaciales son:
x0=0.0, x1=0.25, x2=0.50, x3=0.75, x4=1.0.
Temperaturas iniciales en t=0:
u00=0
u10=100sin(π/4)=70.7107
u20=100sin(π/2)=100.0000
u30=100sin(3π/4)=70.7107
u40=0
Elegimos un parámetro de difusión estable r=Δx2αΔt=0.40≤0.5.
Paso de tiempo: Δt=rαΔx2=0.40×(0.25)2/1.0=0.025 s.
Cálculo del Primer Paso Temporal (n=0→n=1, t=0.025 s):
Aplicamos el esquema FTCS: ui1=ui0+0.4(ui+10−2ui0+ui−10):
Nodo 3 (x3=0.75):
Por simetría física: u31=u11=54.1421.
Comparación con la Solución Analítica en t=0.025 s:
uexacta(0.5,0.025)=100e−π2(1.0)(0.025)sin(π/2)=100e−0.246740=78.1343
El cálculo numérico con una malla extremadamente gruesa de solo 4 celdas arroja 76.5685, con un error relativo de apenas el 2.0%.
Ejemplo 2: Propagación de un Pulso en una Cuerda Tensada (Ecuación de Onda)
Considérese una cuerda de longitud L=1 m con velocidad de onda c=1 m/s, extremos fijos u(0,t)=u(1,t)=0.
Perfil inicial en reposo (g(x)=0): pulso triangular con pico en x=0.5 m y altura 1.0 m:
Nx=4⟹Δx=0.25 m.
Seleccionamos el número de Courant crítico C=ΔxcΔt=1.0⟹Δt=0.25 s.
Valores en t=0:
u0=[0.0,0.5,1.0,0.5,0.0]
Para el primer paso, al partir del reposo (g=0):
ui1=ui0+2C2(ui+10−2ui0+ui−10)=21(ui+10+ui−10)
u11=21(1.0+0.0)=0.5
u21=21(0.5+0.5)=0.5
u31=21(0.0+1.0)=0.5
Vector en t=0.25 s: u1=[0.0,0.5,0.5,0.5,0.0].
Para el segundo paso (t=0.50 s), usamos el esquema completo:
ui2=2ui1−ui0+(ui+11−2ui1+ui−11)=ui+11+ui−11−ui0
u12=u21+u01−u10=0.5+0.0−0.5=0.0
u22=u31+u11−u20=0.5+0.5−1.0=0.0
u32=u41+u21−u30=0.0+0.5−0.5=0.0
Vector en t=0.50 s: u2=[0.0,0.0,0.0,0.0,0.0].
¡En t=0.5 s, la onda se ha dividido exactamente en dos paquetes que viajan en direcciones opuestas y se anulan instantáneamente en el centro, reproduciendo de forma exacta el principio de superposición de D'Alembert sin amortiguamiento artificial debido a que C=1!
Errores Comunes en Diferencias Finitas y Resolución de EDPs
1. Violar la Condición de Estabilidad CFL o von Neumann
Error: Reducir a la mitad el espaciado espacial Δx para mejorar la resolución sin ajustar el paso temporal Δt.
Consecuencia: En difusión, el parámetro r=αΔt/Δx2 se cuadruplica. Si supera 0.5, el factor de amplificación ∣G∣>1 desencadena una explosión numérica inmediata con valores infinitos o NaN.
Corrección: Recalcular dinámicamente Δt cada vez que se modifique la malla espacial para satisfacer r≤0.5 o C≤1.0.
2. Implementar Condiciones de Frontera Neumann con Primer Orden
Error: Discretizar ∂u/∂x=0 en el borde como Δxu1−u0=0⟹u0=u1.
Consecuencia: Se introduce un error local de orden O(Δx) en la frontera que contamina todo el dominio interior, reduciendo la precisión global del esquema de segundo orden a primer orden.
Corrección: Emplear puntos fantasma con diferencias centradas de segundo orden O(Δx2): u−1=u1.
3. Confundir Difusión Física con Difusión Numérica Artificial
Error: Utilizar esquemas asimétricos hacia adelante o hacia atrás (upwind de primer orden) para advección o transporte de ondas.
Consecuencia: El término de error de truncamiento actúa como una viscosidad artificial proporcional a 2Δx(1−C), amortiguando picos y ensanchando frentes de onda de forma espuria.
Corrección: Usar esquemas centrados de segundo orden (como Lax-Wendroff) o esquemas TVD (Total Variation Diminishing).
4. Asumir que Estabilidad Garantiza Convergencia sin Consistencia
Error: Creer que un algoritmo numérico que no explota numéricamente converge automáticamente a la solución física correcta.
Consecuencia: De acuerdo con el Teorema de Equivalencia de Lax, la estabilidad garantiza la convergencia si y solo si el esquema es consistente (es decir, el error de truncamiento local tiende a cero cuando Δx,Δt→0). Un esquema inestable o inconsistente converge a una solución errónea.
Corrección: Verificar analíticamente la consistencia mediante series de Taylor antes de implementar cualquier discretización.
5. Ignorar el Manejo de Discontinuidades y Frentes de Choque
Error: Aplicar diferencias finitas centradas lineales en presencia de ondas de choque o gradientes infinitos.
Consecuencia: Fenómeno de Gibbs numérico con oscilaciones parásitas severas y sobrepicos espurios antes y después del frente de choque.
Corrección: Emplear limitadores de flujo o métodos de captura de choque en formulación conservativa.
Aplicaciones Físicas de Diferencias Finitas
1. Conducción Térmica Transitoria en Sólidos y Criogenia
En ingeniería térmica y física del estado sólido, la distribución de calor en piezas estructurales, reactores nucleares o componentes electrónicos se resuelve mediante diferencias finitas 2D/3D:
ρcp∂t∂T=∇⋅(k∇T)+Q(x,t)
La discretización permite modelar gradientes térmicos en disipadores de procesadores, blindajes térmicos de reentrada atmosférica y contenedores criogénicos de helio líquido para imanes superconductores.
2. Acústica de Salas y Propagación de Ondas Sísmicas
En geofísica y sismología computacional, la propagación de ondas elásticas P (compresionales) y S (de cizalla) generadas por fallas tectónicas se resuelve con mallas de diferencias finitas en el dominio del tiempo (FDTD):
ρ∂t2∂2u=(λ+μ)∇(∇⋅u)+μ∇2u
Esto permite predecir la aceleración sísmica del terreno y diseñar estructuras sismorresistentes, así como optimizar la respuesta acústica en salas de conciertos.
3. Electromagnetismo Computacional (Método FDTD de Yee)
El algoritmo FDTD formulado por Kane Yee discretiza las ecuaciones de Maxwell en el tiempo entrelazando las componentes espaciales del campo eléctrico E y magnético H:
∇×E=−∂t∂B,∇×H=J+∂t∂D
Es la herramienta reina para diseñar antenas de telefonía móvil 5G, guías de ondas ópticas, metamateriales y sensores nanofotónicos.
4. Ecuación de Schrödinger Dependiente del Tiempo en Mecánica Cuántica
En física cuántica y nanotecnología, la dispersión de paquetes de onda electrónicos a través de barreras de potencial (efecto túnel) se calcula resolviendo:
iℏ∂t∂ψ=−2mℏ2∂x2∂2ψ+V(x)ψ
El esquema de Crank-Nicolson se utiliza extensivamente porque garantiza de forma exacta la unitariedad y la conservación de la probabilidad total ∫∣ψ∣2dx=1.
5. Dispersión y Transporte de Contaminantes en Hidrodinámica
En física ambiental y oceanografía, el transporte de sustancias disueltas en ríos, acuíferos o atmósfera combina advección hidrodinámica y difusión molecular/turbulenta:
∂t∂C+v⋅∇C=D∇2C+S
La resolución por diferencias finitas permite predecir la pluma de dispersión de fugas químicas accidentales, mareas negras o dispersión de aerosoles contaminantes en ciudades.
Problemas Prácticos: Diferencias Finitas y Estabilidad de Mallas
Problema 1: Inestabilidad Numérica por Violación del Límite de Difusión
Una simulación de difusión de calor 1D con α=2.0×10−4 m2/s utiliza una malla con espaciado Δx=0.01 m.
Calcule el paso de tiempo crítico Δtcrıˊtico más allá del cual el esquema FTCS se vuelve inestable.
Si un usuario desprevenido ejecuta el código con Δt=0.3 s, demuestre mediante el factor de amplificación de von Neumann qué ocurre con las componentes de frecuencia espacial máxima (kΔx=π).
Solución Paso a Paso:
La condición de estabilidad exige:
r=Δx2αΔt≤0.5Δtcrıˊtico=2αΔx2=2(2.0×10−4)(0.01)2=4.0×10−410−4=0.25 s
Con Δt=0.3 s:
r=10−4(2.0×10−4)(0.3)=0.60>0.50
El factor de amplificación para el modo Nyquist de la malla (kΔx=π) es:
G=1−4rsin2(π/2)=1−4(0.60)(1)=1−2.40=−1.40
Como ∣G∣=1.40>1, la amplitud de este modo se multiplica por 1.4 en cada paso temporal, alternando de signo:
Tras 10 pasos: (1.40)10≈28.9 veces mayor.
Tras 50 pasos: (1.40)50≈1.8×107 veces mayor.
Se genera un patrón espurio en diente de sierra que destruye la simulación en pocas iteraciones.
Problema 2: Implementación de Extremo Aislante con Punto Fantasma
En una barra de difusión térmica de longitud L=0.5 m, el extremo izquierdo x=0 está térmicamente aislado del ambiente, de modo que el flujo de calor es cero:
∂x∂ux=0=0
Utilizando una aproximación centrada de segundo orden con punto fantasma x−1=−Δx, derive la ecuación explícita para la temperatura u0n+1 en el contorno.
Si Δx=0.1 m, α=1 m2/s, Δt=0.004 s y los valores en t=n son u0n=100∘C y u1n=90∘C, calcule la temperatura en el extremo en el paso siguiente u0n+1.
Solución Paso a Paso:
Condición de Neumann centrada:
2Δxu1n−u−1n=0⟹u−1n=u1n
Ecuación FTCS para el nodo i=0:
u0n+1=u0n+r(u1n−2u0n+u−1n)
Sustituyendo u−1n=u1n:
u0n+1=u0n+2r(u1n−u0n)
Calculamos el parámetro r:
r=Δx2αΔt=(0.1)2(1)(0.004)=0.010.004=0.40
Evaluamos:
u0n+1=100+2(0.40)(90−100)=100+0.80(−10)=100−8.0=92.0∘C
La temperatura desciende debido a que el calor fluye hacia el nodo interior adyacente más frío.
Problema 3: Dispersión Numérica en Ondas Acústicas
En la simulación de la ecuación de onda con c=340 m/s, se usa una celda Δx=0.1 m y Δt=0.0002 s.
Verifique si se satisface la condición de Courant-Friedrichs-Lewy (CFL).
Explique por qué trabajar con un número de Courant significativamente menor a 1 (por ejemplo C=0.3) introduce dispersión numérica artificial que deforma los frentes de onda.
Solución Paso a Paso:
Número de Courant:
C=ΔxcΔt=0.1(340)(0.0002)=0.10.068=0.68
Dado que C=0.68≤1.0, el esquema es formalmente estable.
Cuando C<1, la relación de dispersión discreta ωnum(k) se desvía de la relación física lineal ω=ck:
sin(2ωnumΔt)=Csin(2kΔx)
Como resultado, la velocidad de fase numérica vfase=ωnum/k depende del número de onda k. Las ondas de longitud de onda corta (alta frecuencia) viajan más lentamente que las de onda larga, provocando oscilaciones espurias (ripples) detrás de frentes de onda originalmente abruptos. Solo cuando C=1.0 se anula idénticamente el error de dispersión en 1D.