Je travaille sur un projet où j'ai deux domaines couplés adv-diff via leurs termes sources respectifs (un domaine ajoute de la masse, l'autre soustrait la masse). Par souci de concision, je les modélise en régime permanent. Les équations sont votre équation de transport d'advection-diffusion standard avec un terme source ressemblant à ceci:
Où est le flux diffusif et advectif pour l'espèce , et est le terme source pour l'espèce .
J'ai pu écrire un solveur pour mon problème en utilisant la méthode de Newton-Raphson, et j'ai complètement couplé les deux domaines en utilisant une matrice de masse de bloc, à savoir:
Le terme est utilisé pour déterminer la matrice jacobienne et mettre à jour à la fois et :
ou
Pour accélérer les choses, je ne calcule pas le jacobien à chaque itération - en ce moment, je joue avec toutes les cinq itérations, ce qui semble fonctionner assez bien et maintenir la solution stable.
Le problème est: je vais passer à un système plus grand où les deux domaines sont en 2D / 2.5D, et le calcul de la matrice jacobienne va rapidement épuiser mes ressources informatiques disponibles. Je construis ce modèle pour être utilisé dans un paramètre d'optimisation plus tard, donc je ne peux pas non plus être derrière le volant à chaque itération pour régler le facteur d'amortissement, etc.
Ai-je raison de chercher ailleurs un algorithme plus robuste et plus adapté à mon problème, ou est-ce aussi bon que possible? J'ai examiné un peu la quasi-linéarisation, mais je ne sais pas dans quelle mesure elle est applicable à mon système.
Y a-t-il d'autres algorithmes lisses que j'ai pu manquer qui peuvent résoudre un système d'équations non linéaires sans avoir à recalculer le jacobien comme offen?