Recentemente, herdei um grande corpo de código legado que resolve um problema muito rígido e transitório. Eu gostaria de demonstrar que os tamanhos de etapas espaciais e temporais são pequenos o suficiente para que a natureza qualitativa da solução computada não seja alterada se forem diminuídas. Em outras palavras, eu gostaria de mostrar que a solução é "convergida" em um sentido qualitativo. Como eu posso definir explicitamente o tamanho da malha espacial, essa parte é simples. No entanto, como o código usa o controle automático do tamanho do intervalo de tempo, não posso definir o tamanho do intervalo de tempo diretamente.
O algoritmo altera o intervalo de tempo entre dois limites, com base no número de iterações jacobianas necessárias para atingir uma tolerância a erros durante os últimos passos. O fato de usar iteração jacobiana me deixa bastante certo de que é algum tipo de esquema implícito, mas não posso estar absolutamente certo. Ele não leva em consideração o erro que está vendo na etapa de tempo atual, o que a leva a atingir o limite de iteração de vez em quando (talvez uma dúzia de vezes ao longo de vários milhares de etapas de tempo, quase sempre durante as partes mais dinâmicas do simulação). As corridas atuais que estou concluindo, estou definindo os limites do intervalo de tempo em duas ordens e meia de magnitude ( a ).
Nas corridas, eu tenho controle sobre os limites do intervalo de tempo, o número de intervalos de tempo passados em que ele olha para escolher o intervalo de tempo atual, a alteração máxima no intervalo de tempo (proporções), o número alvo de iterações jacobianas, o número máximo de iterações e o erro associado. Eu gostaria que alguém pudesse me colocar no caminho certo para analisar a independência no tempo, ou pelo menos descobrir qual algoritmo é usado.