TL; DR — Conclusiones clave
- La divergencia y la inestabilidad se dividen en cuatro categorías: Temporal (CFL/Mesh), Espacial (calidad de malla), Condiciones de límite/Iniciales y configuraciones del solucionador.
- Los residuos por sí solos no prueban la convergencia. También se deben comprobar los puntos de monitorización (fuerzas, temperaturas, velocidades). Los residuos pueden flatline mientras una variable localizada explota.
- Diagnose una variable a la vez. Cambie solo una configuración y vuelva a ejecutar. Si cambias dos cosas y la simulación se estabiliza, no sabes qué solución realmente funcionó.
- El truco de intercambio de límites (configurar temporalmente todos los límites en fijo o predeterminado y volver a ejecutar) es la forma más rápida de aislar si la divergencia se origina en las condiciones de los límites o en la estabilidad de paso de tiempo.
- Los valores propios negativos en FEA a menudo indican el pandeo, no un error del solucionador. La solución correcta es un método de longitud de arco (RIKS) o una dinámica implícita, no una tolerancia más estricta.
Por qué las simulaciones divergen y por qué es importante el diagnóstico
Cada simulación numérica tiene la misma firma aterradora: en algún paso de tiempo o iteración, los valores explotan hacia NAN o Infinity, el solucionador deja de progresar y te quedas mirando una ventana de terminal llena de mensajes Inf.
Si reinicia inmediatamente con un paso de tiempo más pequeño y la simulación funciona bien, tuvo suerte. Si cambia algo y la simulación aún falla, ahora está depurando con menos información que antes.
El problema no es que las simulaciones no sean confiables. Siguen reglas matemáticas bien entendidas. El problema es que cuando una simulación diverge, el mensaje de error casi nunca te dice qué salió mal, solo te dice que algo salió mal.
Comprender la taxonomía del fracaso numérico es el primer paso para diagnosticarla sistemáticamente. Las fallas numéricas se dividen en cuatro categorías de causa raíz:
- Inestabilidad temporal: el paso de tiempo es demasiado grande, se viola la condición CFL o el solucionador pasa fuera de su región de estabilidad.
- Patología espacial (malla): celdas altamente sesgadas, relaciones de aspecto extremas o volúmenes negativos crean gradientes no físicos.
- Errores de condición inicial o de límite: presiones en conflicto, valores de referencia faltantes o valores iniciales inconsistentes crean contradicciones numéricas.
- Problemas de configuración del solucionador: esquemas de discretización erróneos, factores agresivos de baja relajación o tolerancias inapropiadas.
Cuando sabes a qué categoría pertenece tu fracaso, el diagnóstico se convierte en un proceso de eliminación. Cuando no lo haces, terminas adivinando, y adivinando es cómo pierdes horas de tiempo de cálculo.
Las cuatro categorías de causa raíz
1. Inestabilidad temporal
La inestabilidad temporal es la causa más común de divergencia en simulaciones dependientes del tiempo. El principal culpable es la condición CFL (Courant-Friedrichs-Lewy) que establece que para un esquema explícito, el paso de tiempo debe satisfacer:
$$
C = frac{u Delta T}{delta x} leq 1
$$
Cuando $c > 1$, la información se propaga más rápido de lo que el esquema numérico puede rastrearlo, y los errores se componen exponencialmente. Esta no es una molestia numérica menor, es una restricción matemática fundamental.
Qué buscar:
- La simulación diverge inmediatamente después de los primeros pasos de tiempo
- El mensaje de error hace referencia a «Paso de tiempo demasiado pequeño» o «Límite de estabilidad excedido»
- Las mismas condiciones de malla y límite convergen cuando se reduce el paso de tiempo
Qué arreglar:
- Reduzca el paso de tiempo hasta que el número CFL caiga por debajo de 0.5 como punto de partida seguro
- Use una estrategia de paso de tiempo adaptable que se escala en función de los números de Courant local
- Verifique la consistencia de la propiedad del material: un fluido de alta velocidad en un medio denso puede tener un límite de CFL mucho más estricto de lo que espera
2. Patología espacial (malla)
La calidad de la malla es la segunda causa más común de divergencia. A diferencia de la inestabilidad temporal, que generalmente se manifiesta temprano, la patología de la malla puede causar divergencia en cualquier etapa, especialmente en simulaciones no lineales o multifísicas donde la malla interactúa con el solucionador iterativamente.
Indicadores de problemas:
- Sesgo de células altas (> 0.9 en una escala 0-1)
- Relaciones de aspecto extremas (> 100:1)
- Volúmenes celulares negativos (el error más severo)
La divergencia generada por malla es particularmente insidiosa porque la malla suele ser correcta para su física: solo la discretización numérica es infeliz. Una malla que se ve bien en un preprocesador puede tener celdas con relaciones de aspecto extremas en regiones de cambio rápido de gradiente, lo que provoca términos de difusión no físicos.
Qué arreglar:
- Inspeccione las métricas de calidad de la malla antes de la primera ejecución, no después de
- Use un tablero de calidad de malla (la mayoría de los preprocesadores de CFD incluyen uno) y verifique el sesgo < 0.7, relación de aspecto < 50 para la mayoría de los solucionadores
- Refinar o reestructurar la malla en regiones de alto gradiente
- Nunca ignore las advertencias de volumen de celdas negativas: son imposibilidades matemáticas que el solucionador no puede resolver
3. Errores de condición de límite y de condición inicial
Los errores de las condiciones de los límites son la categoría en la que los investigadores experimentados cometen el mismo error que los principiantes: La configuración parece correcta, pero la física se contradice.
Considere un escenario CFD común. Se establece una entrada de presión y una salida de presión. Ambos tienen valores de presión fijos. El solucionador necesita una presión de referencia para establecer el campo de presión absoluta. Sin una referencia de presión, el solucionador intenta equilibrar dos restricciones incompatibles: diverge.
De manera similar, en las simulaciones estructurales, una condición de contorno que es físicamente imposible, como restringir un nodo que también necesita desplazar libremente, crea una contradicción que el solucionador no puede resolver.
Errores comunes de la condición de contorno:
- Valores de presión conflictivos en entrada y salida (falta de presión de referencia)
- Reflujo en una salida (el solucionador espera que la dirección del flujo coincida con el tipo BC)
- Valores de referencia faltantes (temperatura, presión, potencial eléctrico)
- Condiciones iniciales inconsistentes (la velocidad inicial no coincide con la velocidad del límite)
Qué arreglar:
- Verifique cada condición de límite con la física: ¿coincide el tipo de límite con la dirección de flujo esperada?
- Agregue un nodo de referencia de presión cuando trabaje con límites de presión
- Asegurar que las condiciones iniciales sean consistentes con las condiciones de contorno y el estado físico esperado
4. Problemas de configuración del solucionador
La categoría de configuración del solucionador es donde puede desestabilizar inadvertidamente una simulación perfectamente buena utilizando la herramienta incorrecta para el trabajo. Esta categoría incluye:
- Esquemas de discretización incorrectos — contra el viento de segundo orden en una malla gruesa produce oscilaciones; Los esquemas de primer orden son más estables pero menos precisos
- Relajación agresiva — Los factores por debajo de 0,1 pueden causar divergencia; Los valores típicos son 0.1–0.7 dependiendo de la ecuación
- Tolerancias inapropiadas — Las tolerancias demasiado estrictas causan iteraciones excesivas; Las tolerancias demasiado sueltas aceptan resultados no físicos
- Tipo de solucionador incorrecto — Uso de un solucionador basado en presión para un flujo incompresible frente a un solucionador basado en densidad para un flujo compresible
Qué arreglar:
- Comience con la discretización de primer orden, luego aumente hasta el segundo orden una vez que la solución se estabiliza
- Utilice inicialmente los factores de baja relajación predeterminados, luego ajuste si es necesario
- Verifique el tipo de solucionador contra su régimen de física (compresible frente a incompresible, turbulento vs laminar)
Flujo de trabajo sistemático
Cuando su simulación diverge, no cambie la configuración múltiple a la vez. Este es el principio de depuración más importante en CFD, FEA y todos los solucionadores numéricos.
Siga este flujo de trabajo:
Paso 1: hacer que la simulación falle más rápido
Si su simulación se ejecuta durante 1000 iteraciones antes de divergir, está perdiendo el tiempo. En su lugar, comience usando un paso de tiempo más grande o menos iteraciones por paso para forzar la falla rápidamente. Esto le da un bucle más ajustado para el diagnóstico.
Paso 2: aislar el fallo
¿Identifique qué variable diverge primero: velocidad, presión, temperatura, fuerza? Use monitoreo residual y puntos de monitorización (cantidades específicas que rastrea en cada iteración). La variable que diverge primero le dice qué ecuación y qué parte del dominio es problemática.
Perspectiva crítica: Solo los residuos pueden ocultar la divergencia. Como enfatiza la guía de solución de problemas de CFD de LEAP Australia, un solucionador puede informar residuos convergentes mientras que los puntos de monitoreo (fuerzas, velocidades, temperaturas) continúan desviando. Revise siempre los puntos del monitor junto con los residuos.
Paso 3: cambia una cosa, verifica, luego cambia otra
Después de identificar la categoría de falla, modifique solo una configuración. Vuelva a ejecutar la simulación. Si se estabiliza, has encontrado una solución, pero no sabes si fue la solución correcta. Documente lo que cambió y el resultado.
Luego cambie solo una segunda configuración. repetir Este enfoque controlado le permite aislar qué cambio realmente importa.
Paso 4: Verifique con los diagnósticos correctos
Diferentes tipos de simulación requieren diferentes herramientas de diagnóstico:
Para CFD:
- Supervise los residuos, los puntos de monitorización y los perfiles de velocidad/presión
- Utilice la visualización de contornos residuales para ver dónde se agrupan los residuos espacialmente (habilite el modo experto:
solve set expert yes yes yesy luego ejecute una iteración:solve iterate 1) - Verifique la continuidad y el equilibrio de impulso en los límites del dominio
Para FEA:
- Inspeccione los gráficos de convergencia de Newton-Raphson
- Busque advertencias negativas de valor propio (que a menudo indican un error de pandeo en lugar de un solucionador)
- Compruebe las curvas de fuerza-deflexión para el comportamiento no monótono
- Use métodos de longitud de arco (RIK) para problemas de abrochado o de pandeo
Para el código numérico general:
- Ejecute una prueba unitaria con una solución fabricada (método de soluciones manufacturadas, MMS)
- Verifique si hay errores de signos en términos de difusión o de convección: la causa más simple de divergencia catastrófica suele ser un signo menos mal colocado
- Rastree NAN o INF al paso de tiempo exacto donde aparecen por primera vez
Estudios de casos
Caso 1: El error de signo único
Un investigador depurando una simulación de advección-difusión encontró que la solución divergía por completo: los valores de velocidad oscilaban y crecían exponencialmente. La malla estaba bien, el número de CFL era conservador y las condiciones de los límites eran estándar.
La causa raíz fue un error de signo único en el término de difusión. La discretización tuvo +D en lugar de -D, invirtiendo efectivamente la dirección de difusión. En lugar de amortiguar las perturbaciones, la ecuación las estaba amplificando.
Lección: Verifique primero las señales de discretización. Antes de verificar la calidad de la malla o del solucionador, confirme que la forma matemática de sus ecuaciones es correcta. Un error de signo en un término de difusión es numéricamente equivalente a la difusión negativa: la simulación diverge por diseño.
Caso 2: Intercambio de condiciones de contorno (el truco de diagnóstico FDTD)
En una simulación de FDTD, un usuario informó que cambiar las condiciones de contorno fijaba la divergencia. El flujo de trabajo de diagnóstico de la documentación de ANSYS FDTD ilustra por qué:
Paso 1: Establezca temporalmente todas las condiciones de contorno en «metal» (fijo) y vuelva a ejecutar la simulación. Si la simulación se vuelve estable, la divergencia está relacionada con PML.
Paso 2: Si la simulación aún diverge con los límites de metal, la divergencia se debe a la estabilidad de $dt$; el paso de tiempo es demasiado grande para que el solucionador lo maneje.
Este truco de intercambio de límites es un flujo de trabajo de diagnóstico práctico que reduce inmediatamente el espacio de búsqueda. En lugar de verificar simultáneamente las configuraciones de malla, el solucionador, las propiedades del material y las condiciones de contorno, aísla las condiciones de los límites como categoría y fija la causa real.
Caso 3: Diagnósticos de contorno residual
El flujo de trabajo experto de TUI de LEAP Australia demuestra una poderosa técnica de visualización. En lugar de mirar valores residuales escalares, genera contorno gráficos residuales e iso-superficies que muestran exactamente dónde en el clúster de residuos altos de dominio.
En un caso, los residuos se estancaron en $10^{-3}$ mientras que la simulación en realidad divergía en una región localizada. Los contornos residuales mostraron valores extremos cerca de un límite de entrada donde la calidad de la malla era deficiente (skewness > 0,85). El residuo escalar enmascaró el problema localizado porque se promedió en todo el dominio.
Lección: Siempre visualice los residuos espaciales, no solo numéricamente. Los gráficos de contorno revelan dónde se origina la divergencia.
Caso 4: Rigidez no monótona en FEA
El estudio de caso de FEA no lineal de Enterfea cubre un modo de falla común. Una simulación estructural divergió en el punto de equilibrio donde la rigidez cayó bruscamente. Un solucionador controlado por la fuerza no puede rastrear el punto de equilibrio: oscila y falla.
La solución fue cambiar de control de fuerza a control de desplazamiento o usando un método de longitud de arco (RIKS). Este no es un problema de configuración de solucionador, es un desajuste fundamental entre la estrategia del solucionador y la física.
Lección: Para problemas no lineales con el cierre, pandeo o contacto, utilice métodos de control de desplazamiento o longitud de arco. Los solucionadores controlados por la fuerza fallan en los puntos de equilibrio donde la rigidez no es monótona.
Trampas comunes: lo que lleva a la divergencia
Estos errores están bien documentados en CFD, FEA y solucionadores numéricos generales. Todos comparten una característica: La simulación parece correcta hasta que diverge.
1. Cambiar varios ajustes simultáneamente
Cuando cambia el paso de tiempo, el esquema de discretización y el factor de relajación de baja a la vez, y la simulación se estabiliza, no tiene idea de qué cambio realmente funcionó. Siempre cambia una configuración a la vez. Esta es la regla de oro de la depuración numérica.
2. Confiar a ciegas en los residuos
Los residuos pueden delinearse mientras que una variable localizada diverge. Como advierte la lista de verificación de LEAP Australia, debe también inspeccionar puntos de monitor — cantidades específicas como fuerzas, velocidades y temperaturas. Los residuos miden el error de ecuación, no la corrección física de su solución.
3. Uso de esquemas de segundo orden en mallas gruesas
La discretización de segundo orden produce oscilaciones en mallas gruesas. Comience con la discretización de primer orden, estabiliza la solución y luego sube a segundo orden. Esto no es teórico: es un flujo de trabajo práctico utilizado por profesionales de CFD experimentados.
4. Ignorar los volúmenes de celdas negativos
Los volúmenes celulares negativos son imposibilidades matemáticas. Se producen cuando una celda de malla se invierte o se derrumba. Si su preprocesador o generador de malla informa volúmenes negativos, corrija la malla antes de intentar cualquier simulación. Ningún solucionador puede resolver volúmenes negativos.
5. Suponiendo que los valores propios negativos sean errores de solucionadores
En Abaqus y otros solucionadores de FEA, los mensajes de valor propio negativo persistentes a menudo indican un comportamiento de pandeo, no inestabilidad numérica. La solución correcta es un método de longitud de arco (RIKS) o un solucionador de dinámica implícita, no una tolerancia más estricta o un algoritmo de solucionador diferente.
Herramientas y técnicas de diagnóstico
Monitoreo residual
La mayoría de los solucionadores informan valores residuales para cada ecuación (continuidad, impulso, energía, turbulencia). Supervise los residuos sobre las iteraciones. Un residuo bien convergente generalmente cae de 3 a 4 órdenes de magnitud, de $10^{-1}$ a $10^{-4}$ o menos.
Importante: Si los residuos caen inicialmente pero luego se estancan sin alcanzar el objetivo, la simulación puede haber convergido numéricamente sin alcanzar la precisión física. Compruebe los puntos de monitor para este caso.
Puntos de monitoreo
Los puntos de monitor son cantidades específicas que rastrea en cada iteración. En CFD, estos suelen ser fuerzas (levantamiento, arrastre), temperaturas, velocidades o presiones en lugares específicos. En FEA, estas son fuerzas de reacción, desplazamientos o presiones de contacto.
Los puntos de supervisión revelan la divergencia que ocultan los residuos. Como enfatiza la guía de LEAP Australia, una simulación con residuos planos aún puede tener puntos de monitor divergentes. Siempre ejecute residuos y monitoree puntos juntos.
Diagnósticos del solucionador
Diferentes solucionadores proporcionan diferentes herramientas de diagnóstico:
- Trazos de convergencia de Newton-Raphson (FEA) — Mostrar si el solucionador está progresando hacia el equilibrio u oscilante
- Seguimiento del valor propio (FEA) — Los valores propios negativos indican el pandeo o el contacto inestable
- TreeDepth y R-HAT Diagnostics (MCMC/Bayesian Solvers) — Identificar transiciones divergentes en el Monte Carlo Hamiltoniano
- Monitorización de BFMI (información completa basal) (Stan/MCMC) — Detecta regiones de curvatura patológica
Visualización de contorno residual
Habilite el modo experto en su solucionador y ejecute una sola iteración. La mayoría de los solucionadores generarán gráficos de contorno residuales que muestran dónde se agrupan espacialmente los residuos. Esto revela la región del dominio donde se origina la divergencia: un límite de entrada, una zona de transición de malla o una región de alto gradiente localizada.
Rastreo NAN e INF
Identifique el paso de tiempo exacto o la iteración donde aparecen por primera vez los valores de NAN o INF. Luego, rastree de nuevo al paso anterior y examine los valores que condujeron a la NAN. Esto es particularmente útil para identificar si la divergencia es espacial (una región del dominio) o temporal (el solucionador que sale de su región de estabilidad).
Cuándo escalar
A veces, una simulación diverge a pesar de la malla correcta, las condiciones de contorno y la configuración del solucionador. En estos casos, el problema puede ser:
- Imposibilidad física — Las condiciones de contorno o condiciones iniciales describen un escenario que es físicamente imposible para los supuestos del solucionador (por ejemplo, flujo incompresible con materiales compresibles)
- Limitación del solucionador — El solucionador no puede manejar el régimen de física específico (por ejemplo, flujo multifásico con relaciones de densidad extrema)
- Error de nivel de código — Error de discretización, error de signo o término faltante en su implementación
Cuándo escalar:
- Ha verificado la calidad de la malla, las condiciones de los límites, el paso de tiempo y la configuración del solucionador
- La simulación diverge incluso con un paso de tiempo conservador y discretización de primer orden
- Los puntos de monitorización divergen mientras que los residuos convergen (o viceversa)
- Sospechas un error de signo de discretización pero no lo encuentras
En estos casos, considere comunicarse con el soporte del solucionador, consultando la literatura para casos similares o utilizando el método de soluciones fabricadas para verificar su código de discretización línea por línea.
Resumen y próximos pasos
Depuración de simulaciones numéricas no se trata de encontrar la configuración correcta, se trata de seguir un flujo de trabajo de diagnóstico sistemático. Las cuatro categorías de causa raíz (condiciones temporales, espaciales, de límite/iniciales, configuraciones del solucionador) le brindan una taxonomía para reducir el espacio de búsqueda. El truco de intercambio de límites, la visualización del contorno residual y la inspección del punto de monitor le brindan herramientas prácticas que los profesionales experimentados utilizan para aislar la causa real.
Tus próximos pasos:
- Cuando su simulación diverge, comience forzando la falla más rápido (paso de tiempo más grande, menos iteraciones)
- Aislar qué variable diverge primero usando puntos de monitor
- Cambiar una configuración a la vez, verificar y documentar
- Utilice la visualización de contorno residual para encontrar dónde se origina la divergencia espacialmente
- Para FEA no lineal, cambie a métodos de longitud de arco cuando el control de fuerza falla en los puntos de equilibrio
Si está trabajando con problemas rígidos específicamente, la guía en problemas rígidos y solucionadores rígidos cubre cuándo y por qué fallan los métodos explícitos. Para conocer los flujos de trabajo de depuración de códigos generales más allá del diagnóstico numérico, consulte guía de depuración de python para código científico.
Guías relacionadas
- Depuración de Python para código científico — Declaraciones de impresión, PDB, perfiles y flujos de trabajo de prueba
- problemas rígidos y solucionadores rígidos — Cuando los métodos explícitos fallan y por qué problemas rígidos rompen los solucionadores
- Reproducibilidad y su función en la depuración — Flujos de trabajo versionados para la depuración de simulación reproducible
- visualización in situ — Uso de la visualización in situ como un sistema de alerta temprana para la divergencia numérica
- Estudios de calidad y convergencia de malla — Diagnósticos de malla que afectan la estabilidad y la convergencia
Lista de verificación práctica: qué probar primero
Utilice esta lista de verificación cuando su simulación diverge. Trabaje en cada paso antes de pasar al siguiente.
- [ ] Verificar la calidad de la malla — Sesgo < 0.7, relación de aspecto < 50, sin volúmenes negativos
- [ ] Verifique el número de CFL: reduzca el paso de tiempo hasta $c < 0.5$
- [ ] Verificar condiciones de contorno: consistencia de entrada/salida, presión de referencia, dirección del flujo
- [ ] Establecer las condiciones iniciales: garantizar que coincidan con las condiciones de los límites y el estado físico esperado
- [ ] Utilice la discretización de primer orden: suba a un segundo orden después de la estabilización
- [ ] Compruebe los factores de baja relajación: use los valores predeterminados y luego ajuste si es necesario
- [ ] Residuos de monitorización y puntos de monitorización: los residuos planos no garantizan la convergencia
- [ ] Generar gráficos de contorno residuales: visualizar dónde se agrupan los residuos espacialmente
- [ ] para FEA: verifique los valores propios: los valores propios negativos a menudo indican el pandeo, no el error del solucionador
- [ ] para FEA: Cambie al método de longitud de arco (RIKS) si el solucionador controlado con fuerza falla en el equilibrio
- [ ] Verificar signos de discretización: un error de signo único puede causar una divergencia catastrófica
- [ ] Cambie solo una configuración a la vez: siempre, nunca dos simultáneamente
Línea inferior: La divergencia es diagnosticable. Las cuatro categorías (condiciones temporales, espaciales, de límite/iniciales, configuraciones de solucionador) proporcionan un marco. Las técnicas (cambio de límite, contornos residuales, puntos de monitor, un cambio a la vez) proporcionan las herramientas. Úselos sistemáticamente y encontrará la causa raíz, no solo enmascarar el síntoma.
fuentes externas
Durante la investigación se consultaron las siguientes fuentes externas y se recomiendan para lecturas adicionales:
- LEAP Australia — CFD Lista de verificación de solución de problemas — Flujo de trabajo de diagnóstico sistemático de CFD y configuración de puntos de monitorización
- ANSYS FDTD — Solución de problemas Simulaciones divergentes — Guía de diagnóstico y estabilidad de DT-SWAP de intercambio de límites
- ansys Fluent — Errores en simulaciones — Configuración completa de categorización de errores y ajustes del solucionador
- enterfea — análisis no lineal Convergencia — Métodos de longitud de arco y dirección de fuerza contra desplazamiento
- depuración de modelos de abaqus — Depuración de Newton-Raphson y análisis de valor propio
- scicomp stackExchange — depuración de código numérico — discretización Errores de signos y método de soluciones fabricadas
- NASA Wind — Clasificación de errores de CFD — Taxonomía de incertidumbre y error de CFD