Recientemente heredé un gran cuerpo de código heredado que resuelve un problema muy rígido y transitorio. Me gustaría demostrar que los tamaños de paso espacial y temporal son lo suficientemente pequeños como para que la naturaleza cualitativa de la solución calculada no cambie si se redujeran. En otras palabras, me gustaría mostrar que la solución está "convergida" en un sentido cualitativo. Como puedo establecer explícitamente el tamaño de la malla espacial, esa parte es sencilla. Sin embargo, como el código usa el control automático del tamaño del paso de tiempo, no puedo establecer el tamaño del paso de tiempo directamente.
El algoritmo cambia el paso de tiempo entre dos límites en función del número de iteraciones jacobianas necesarias para alcanzar una tolerancia de error durante los últimos pasos de tiempo. El hecho de que use la iteración jacobiana me hace estar bastante seguro de que es algún tipo de esquema implícito, pero no puedo estar absolutamente seguro. No tiene en cuenta el error que está viendo en el paso de tiempo actual, lo que ocasiona que se encuentre con el límite de iteración en ocasiones (tal vez una docena de veces en el transcurso de varios miles de pasos de tiempo, casi siempre durante las partes más dinámicas del simulación). Las ejecuciones actuales que estoy completando estoy estableciendo los límites de tiempo en dos órdenes de magnitud y media ( a ). 10 - 13 5 ⋅ 10 - 11
En las corridas, tengo control sobre los límites de los pasos de tiempo, el número de pasos de tiempo pasados que mira para elegir el paso de tiempo actual, el cambio máximo en el paso de tiempo (proporciones), el número objetivo de iteraciones jacobianas, el número máximo de iteraciones, y el error vinculado. Me gustaría que alguien me pusiera en el camino correcto para analizar la independencia del paso del tiempo, o al menos averiguar qué algoritmo se utiliza.