Reading Time: 11 minutes

tl; dr

Antes de ejecutar cualquier simulación científica, verifique que la malla pase controles de calidad geométricas y luego demuestre que los resultados no cambian significativamente con un mayor refinamiento.

Un estudio de convergencia de malla que utiliza al menos tres niveles de cuadrícula puede cuantificar el error de discretización a través de la extrapolación de Richardson y el índice de convergencia de la red. Esta guía explica las métricas clave, los umbrales prácticos y los pasos de cálculo con ejemplos de Python.

Comida clave

  • La calidad de la malla determina si un solucionador puede converger de manera confiable. Las malas formas de malla pueden causar difusión numérica, inestabilidad y divergencia antes de que la precisión se vuelva significativa.
  • La convergencia de malla demuestra que los resultados no dependen en gran medida de la resolución de la malla. Es uno de los pasos de verificación de soluciones más importantes en la computación científica.
  • El índice de convergencia de cuadrícula es una métrica estándar para informar la incertidumbre inducida por la malla en los resultados de la simulación.
  • La extrapolación de Richardson estima el valor continuo en el espaciado de cuadrícula cero y se puede implementar con el código Python compacto.

Por qué es importante la calidad de la malla incluso antes de que comiences

Si un CFD, una transferencia de calor o una simulación estructural diverge, la malla suele ser una de las primeras cosas a inspeccionar. La calidad de la malla no es un detalle abstracto. Determina si el esquema numérico puede producir resultados estables y físicamente significativos.

Puede tener un solucionador sofisticado, un modelo de turbulencia fuerte y condiciones de contorno cuidadosamente seleccionadas. Pero si la malla contiene células sesgadas, estiradas, invertidas o mal graduadas, los errores numéricos pueden dominar la solución.

La comunidad de malla comúnmente utiliza seis métricas básicas para juzgar si se puede usar una malla.

Métrico que mide buen rango Rango crítico a evitar Por qué importa
Calidad ortogonal Alineación de la cara de la celda con vectores de centro a centro Por encima de 0.15, con 1.0 ideal por debajo de 0.01 La ortogonalidad deficiente causa pérdida de precisión y divergencia en términos de difusión
Oblicuidad cuánto se desvía un elemento de su forma ideal Por debajo de 0,5 para FEA, por debajo de 0,75 para muchos flujos de trabajo de CFD por encima de 0,85 para FEA, por encima de 0,95 para CFD El alto nivel de sesgo introduce la difusión numérica y la mala interpolación
Relación de aspecto Relación de la dimensión más larga a la más corta en una celda 1–5 para muchas mallas FEA; Más alto puede ser aceptable en capas límite CFD alineadas por encima de 10 a 20 para las regiones generales de FEA; Valores muy altos en regiones de CFD no alineadas Las altas relaciones de aspecto en la región equivocada reducen la precisión del gradiente
Proporción jacobiana Distorsión del elemento de su forma de referencia ideal Positivo y cómodamente por encima de cero negativo o cercano a cero Los jacobianos negativos indican elementos invertidos y generalmente causan fallas en el solucionador
Relación de expansión volumétrica Relación de volumen entre celdas adyacentes Por debajo de 1.5–2.0 Por encima de 3.0 Los saltos de volumen nítidos crean errores de truncamiento
Ángulo máximo y mínimo Ángulos interiores extremos Elementos interiores Aproximadamente 20°–140° para triángulos y 30°–150° para quads Por debajo de 5° o superior a 170° Los ángulos extremos crean matrices mal condicionadas y una mala interpolación

Los buenos rangos anteriores representan valores de referencia prácticos utilizados en muchos flujos de trabajo de simulación. Los umbrales exactos varían según el solucionador, el tipo de elemento, el método numérico y el modelo físico. Compruebe siempre la documentación del solucionador que utilice.

Las seis métricas de calidad de malla, explicadas

1. Calidad ortogonal

La calidad ortogonal es especialmente importante en los flujos de trabajo de volumen finito y CFD. Mide qué tan bien se alinea una cara de celda normal con el vector que conecta los centros celulares vecinos.

Si esa alineación es deficiente, los cálculos de gradiente facial se vuelven menos precisos. Esto puede dañar los términos de difusión, los cálculos de flujo y la reconstrucción de gradiente de presión.

Para los usuarios de Fipy, esto es importante porque Fipy se basa en operaciones de volumen finito basado en la cara. Si la malla tiene una ortogonalidad deficiente, los cálculos de gradiente facial pueden introducir un error de truncamiento que crece a través de las iteraciones.

Un consejo práctico: si una simulación diverge en una malla que parece aceptable visualmente, inspeccione la distribución de calidad ortogonal. Incluso un pequeño grupo de células pobres puede afectar la estabilidad global.

2. Sesgo

El sesgo mide qué tan lejos está un elemento de su forma ideal. Para triángulos y tetraedros, la forma ideal está cerca de equilátero. Para los cuadriláteros y hexahedras, la forma ideal está más cerca de la ortogonal y equitativamente proporcionada.

El alto nivel de sesgo hace que la interpolación entre los centros celulares sea menos fiable. Puede introducir difusión artificial, gradientes inexactos y orden de precisión reducido.

Algo de sesgo es común cerca de esquinas, filetes y geometría compleja. El objetivo es mantener a las células muy sesgadas lejos de las regiones donde se extraen resultados importantes.

3. Relación de aspecto

La relación de aspecto es la relación de la dimensión más larga a la más corta de una celda. Las relaciones de aspecto bajas suelen ser más seguras para las mallas de uso general.

Hay una excepción importante: las capas límite CFD. Cerca de las paredes, las celdas estiradas pueden ser útiles y necesarias porque los gradientes físicos son fuertemente direccionales. En ese caso, las celdas de alta relación de aspecto son aceptables cuando se alinean con la física.

La relación de aspecto se vuelve dañina cuando el tramo no está alineado con el gradiente esperado. En las zonas de concentración de tensión, frentes de reacción o regiones de mezcla, las células estiradas mal alineadas pueden destruir la precisión.

4. Relación jacobiana

La relación jacobiana mide cuánto se distorsiona un elemento de su forma de referencia ideal. Un jacobiano negativo significa que un elemento está invertido.

Los jacobianos negativos son errores de malla severos. Por lo general, indican una geometría no válida, un ordenamiento incorrecto de nodos o una distorsión extrema del elemento. Este es un problema de malla, no una función de solucionador.

Si ve jacobianos negativos, corrija la geometría CAD, elimine las astillas, cierre pequeños huecos o ajuste los parámetros de malla antes de ejecutar la simulación.

5. Relación de expansión volumétrica

La relación de expansión volumétrica mide la rapidez con que cambia el volumen de la celda de una celda a la siguiente. Las transiciones suaves suelen ser mejores porque los esquemas numéricos asumen que la variación espacial no es abrupta en la escala de la cuadrícula.

Como regla general, mantenga las relaciones de volumen de celda adyacentes por debajo de aproximadamente 1,5 a 2,0 cuando sea posible. Los saltos agudos pueden crear errores de truncamiento e inestabilidad localizada.

6. Ángulo máximo y mínimo

Los ángulos interiores muestran si un elemento es geométricamente saludable. Los ángulos muy pequeños crean elementos astillados delgados. Los ángulos muy grandes a menudo se correlacionan con una alta asimetría o una alta relación de aspecto.

Ambos casos pueden hacer que las matrices estén mal condicionadas y reducir la precisión de la interpolación. En los flujos de trabajo de elementos finitos, los ángulos deficientes pueden ser especialmente perjudiciales para el acondicionamiento de la matriz de rigidez.

Estudios de convergencia de malla: probar los resultados son independientes

Después de verificar la calidad de la malla, el siguiente paso es un estudio de convergencia de malla, también llamado estudio de refinamiento de red.

El objetivo es simple: probar que el resultado no cambia significativamente cuando se refina la malla. Si el resultado cambia fuertemente, la malla no es lo suficientemente fina para la cantidad que le importa.

El enfoque estándar de tres cuadrículas

Un estudio de convergencia riguroso debe utilizar al menos tres niveles de malla:

  1. Rejilla gruesa, generalmente llamada h₃.
  2. cuadrícula media, generalmente llamada h₂.
  3. Rejilla fina, generalmente llamada h₁.

La relación de refinamiento debe ser lo más consistente posible. Una relación cercana a 2.0 es común porque cada nivel de cuadrícula reduce a la mitad el tamaño de celda característico.

¿Por qué tres cuadrículas en lugar de dos?

Con dos cuadrículas, puede estimar un cambio en el resultado, pero no puede verificar de manera confiable si la solución está en el rango de convergencia asintótica.

El rango asintótico es el régimen donde el error numérico disminuye de manera predecible a medida que se refina la malla. Tres cuadrículas le permiten estimar el orden de convergencia observado y detectar si el comportamiento de refinamiento es consistente.

El procedimiento paso a paso

Paso 1: Elige una cantidad de interés

Elija una cantidad escalar que represente el resultado que le interesa. Las opciones comunes incluyen:

  • coeficiente de arrastre.
  • estrés máximo.
  • caída de presión.
  • temperatura en un punto seleccionado.
  • energía total, caudal de masa u otra cantidad integral.

Esta cantidad generalmente se escribe como φ. Lo extraerás de cada nivel de malla.

Paso 2: Ejecute simulaciones en las tres cuadrículas

Ejecute la misma simulación en las mallas gruesas, medias y finas. Mantenga las condiciones de contorno, los ajustes del solucionador, los parámetros físicos y los criterios de convergencia.

No confíe sólo en los residuos. También monitorea la cantidad de interés. Un residuo puede parecer aceptable mientras que la ingeniería real o la producción científica aún está cambiando.

Paso 3: Calcule el orden de aproximación observado

El orden de aproximación observado, generalmente escrito como p, le dice qué tan rápido disminuye el error con el refinamiento de la malla.

Para tres cuadrículas con una relación de refinamiento constante r, una estimación práctica es:

p = ln(|(φ₃ - φ₂) / (φ₂ - φ₁)|) / ln(r)

Implementación de Python:

import numpy as np

def compute_observed_order(phi_coarse, phi_medium, phi_fine, r):
    """Compute observed order of approximation for three grid levels."""
    eps_32 = phi_coarse - phi_medium
    eps_21 = phi_medium - phi_fine
    
    if eps_21 == 0:
        raise ValueError("Medium-fine difference is zero; cannot compute observed order.")
    
    ratio = abs(eps_32 / eps_21)
    
    if ratio <= 0:
        raise ValueError("Invalid error ratio; check grid results.")
    
    return np.log(ratio) / np.log(r)

Si el método es nominalmente de segundo orden, un orden observado práctico podría estar cerca de 2.0. Los valores más bajos pueden indicar problemas de calidad de malla, efectos de contorno, comportamiento no lineal o que las cuadrículas aún no están en el rango asintótico.

Paso 4: Aplicar la extrapolación de Richardson

La extrapolación de Richardson estima el valor continuo con un espaciado de red cero. Mejora la estimación más allá del resultado de la red fina utilizando los resultados finas y medianos más el orden observado.

def richardson_extrapolation(phi_medium, phi_fine, r, p):
    """Estimate the continuum value using Richardson extrapolation."""
    denominator = r**p - 1
    
    if denominator == 0:
        raise ValueError("Invalid denominator; check refinement ratio and observed order.")
    
    return phi_fine + (phi_fine - phi_medium) / denominator

Esto no reemplaza la validación, pero da una estimación útil del valor numérico independiente de la malla.

Paso 5: Calcule el índice de convergencia de la red

El índice de convergencia de la red cuantifica el porcentaje de incertidumbre causado por la resolución de la malla. Se usa comúnmente para informar la convergencia de malla de una manera estandarizada.

def calculate_gci(phi_medium, phi_fine, r, p, safety_factor=1.25):
    """Calculate fine-grid Grid Convergence Index as a percentage."""
    if phi_fine == 0:
        raise ValueError("Fine-grid value is zero; relative GCI is undefined.")
    
    denominator = r**p - 1
    
    if denominator == 0:
        raise ValueError("Invalid denominator; check refinement ratio and observed order.")
    
    apparent_relative_error = abs((phi_fine - phi_medium) / phi_fine)
    gci = safety_factor * apparent_relative_error / denominator
    
    return gci * 100

El factor de seguridad es importante:

  • Utilice 1.25 cuando utilice tres o más cuadrículas.
  • Utilice un valor más conservador cuando solo haya dos cuadrículas disponibles, aunque no se recomiendan dos cuadrículas para informes rigurosos.

Paso 6: Comprobar el rango asintótico

Para verificar si las cuadrículas están en el rango asintótico, compare los valores de GCI entre el par medio-fino y el par medio grueso.

def asymptotic_range_ratio(gci_32, gci_21, r, p):
    """Check whether grid convergence is close to the asymptotic range."""
    if gci_21 == 0:
        raise ValueError("Fine-grid GCI is zero; asymptotic ratio is undefined.")
    
    return gci_32 / (gci_21 * r**p)

Un valor cercano a 1.0 sugiere que la secuencia de la cuadrícula se acerca al rango asintótico. Las grandes desviaciones sugieren que se puede necesitar más refinamiento o que la cantidad de interés seleccionada no converge sin problemas.

Un ejemplo concreto

Suponga que simula el flujo a través de una tubería y extrae la recuperación de presión de tres rejillas.

Cuadrícula nodos recuperación de presión
Multa 100.000 0.97050
Medio 25.000 0.96854
Grueso 6.250 0.96178

Suponga que la relación de refinamiento es r = 2.0.

Orden observado:

p = ln(|(0.96178 - 0.96854) / (0.96854 - 0.97050)|) / ln(2)
p = 1.786

Extrapolación de Richardson:

φ_ext = 0.97050 + (0.97050 - 0.96854) / (2^1.786 - 1)
φ_ext ≈ 0.97130

GCI de cuadrícula fina:

GCI_21 = 1.25 × |0.97050 - 0.96854| / 0.97050 / (2^1.786 - 1)
GCI_21 ≈ 0.103%

Esto significa que la recuperación de la presión de la red fina está cerca del valor continuo estimado, con una incertidumbre inducida por malla de alrededor del 0,1%. Ese es el tipo de resultado que se puede informar en un flujo de trabajo de simulación riguroso.

Verificación de código de convergencia de malla

La convergencia de malla y la verificación de código están relacionadas, pero no son lo mismo.

  • La verificación de código pregunta si el código resuelve las ecuaciones correctamente.
  • Mesh Convergence pregunta si esta solución específica es independiente de la resolución de la malla.

Mesh Convergence es un paso de verificación de la solución. Estima el error numérico para una configuración de simulación. No prueba que el código sea correcto en general, y no prueba que el modelo represente la realidad.

Un flujo de trabajo práctico es:

  1. Utilice la verificación de código, como soluciones manufacturadas, para verificar la implementación.
  2. Use la convergencia de malla para verificar la incertidumbre numérica de las simulaciones de producción.
  3. Use la validación contra experimentos o datos de referencia para verificar la credibilidad física.

Errores comunes en estudios de convergencia de malla

  1. usando solo dos cuadrículas. Esto evita una comprobación fiable del rango asintótico y el orden observado.
  2. usando refinamiento inconsistente. Refinar solo una dirección o cambiar demasiado la topología de malla puede romper la suposición de relación de refinamiento.
  3. ignorando la calidad de la malla. Una malla más fina con células pobres puede converger hacia la respuesta incorrecta.
  4. monitorear la cantidad incorrecta. La cantidad de interés debe representar la conclusión científica o de ingeniería que le importa.
  5. Detenerse basado sólo en residuos. Los residuos no siempre prueban que la cantidad de interés se haya estabilizado.
  6. Tratar a GCI como prueba de corrección física. Un GCI bajo solo significa que la incertidumbre inducida por Mesh es pequeña. Todavía se requiere validación.

Adaptación y automatización de la malla

Los flujos de trabajo modernos utilizan cada vez más la adaptación de malla. En lugar de construir manualmente una secuencia fija de mallas, la simulación refina o ensancha las regiones en función de los indicadores de error.

Los enfoques comunes de adaptación incluyen:

  • Adaptación H, donde las células se refinan o se engrosan localmente.
  • P-adaptación, donde el orden polinomial aumenta en regiones con altos gradientes.
  • Enfoques híbridos que combinan refinamiento de malla local y métodos de orden superior.

También está surgiendo herramientas de Python para estudios de convergencia. Los scripts pueden automatizar la extrapolación de Richardson, los cálculos de GCI, los gráficos de convergencia y las tablas de informes.

Cuándo dejar de refinar

No refinas para siempre. El refinamiento de la malla debe detenerse cuando la precisión adicional ya no justifique el costo computacional.

Las condiciones de parada comunes incluyen:

  • GCI está por debajo de la tolerancia requerida para el proyecto.
  • El refinamiento adicional cuesta mucho más, pero cambia el resultado solo marginalmente.
  • Los límites de hardware hacen que el siguiente nivel de refinamiento sea poco práctico.
Situación Nivel de malla recomendado
Exploración de diseño preliminar Malla gruesa solo para tendencias cualitativas
Análisis de ingeniería con un objetivo de GCI Malla de media a fina, a menudo dirigida a GCI por debajo del 2%
Simulación de publicación-grado Malla fina, a menudo dirigida a GCI por debajo del 1% con documentación
Uso de seguridad o regulación Mesh muy fina más flujo de trabajo de verificación y validación completo

Una lista de verificación práctica para su próxima simulación

Antes de ejecutar una simulación de producción, compruebe lo siguiente:

  • Informe de calidad de malla: cada celda debe pasar los umbrales de calidad para el solucionador y el tipo de elemento.
  • Calidad ortogonal: Para los flujos de trabajo de CFD o de volumen finito, verifique si las células deficientes caen por debajo de los límites aceptables.
  • Sesgo: Inspeccione el valor máximo y la distribución, no sólo el promedio.
  • Jacobiano: Confirme que ningún elemento tiene jacobianos negativos.
  • Estudio de convergencia de tres cuadrículas: use mallas gruesas, medias y finas con una relación de refinamiento consistente.
  • Cálculo de GCI: Reporte el valor como porcentaje y aplique el factor de seguridad correctamente.
  • Comprobación del rango asintótico: compare el comportamiento de convergencia sucesivo cuando sea posible.
  • Cantidad de interés: Supervise el mismo resultado escalar de manera consistente en todos los niveles de la red.
  • Convergencia completa: verifique los residuos y los cambios en la solución antes de extraer los resultados.
  • Documentación: guarde los tamaños de malla, la configuración del solucionador, los valores de GCI y los gráficos de convergencia.

Guías relacionadas

Resumen y próximos pasos

Los estudios de calidad de malla y convergencia no son extras opcionales. Forman parte de la simulación científica creíble.

Un flujo de trabajo riguroso comienza con controles geométricos de calidad y luego pasa a la prueba de convergencia cuantitativa. Los ingredientes esenciales son métricas de calidad de malla, tres niveles de cuadrícula, orden observado, extrapolación de Richardson e informes de GCI.

Para su próximo proyecto, audite el flujo de trabajo de simulación actual. Si está ejecutando cálculos de una sola malla sin un informe de calidad de malla o un estudio de convergencia, agregue esos pasos antes de tratar el resultado como final.

Específicamente para los usuarios de FIPY, verifique que las mallas pasen umbrales de calidad y ejecuten un estudio de convergencia de tres niveles en un problema representativo antes de las simulaciones de producción. Documente los valores de GCI y el comportamiento de convergencia. Esta práctica separa el trabajo de simulación riguroso de las conjeturas.

Esta guía sintetiza la metodología establecida a partir de la investigación de convergencia de red, los flujos de trabajo de verificación al estilo de la NASA, la práctica de informes de GCI y la guía práctica de calidad de malla utilizada en las comunidades de CFD, FEA y simulación científica.