Méthodes implicites de coefficients variables basées sur des équations d'état
Par exemple, j'ai une équation qui va quelque chose comme
$ \partial_t \rho = -\nabla\cdot (\rho u) + \nabla \cdot(D(\rho, T) \nabla \rho) + \rho_s $
($\rho, \rho_s, u, T$ sont couplés à quelques autres PDE)
Puis-je utiliser Forward Euler pour se rapprocher de l'avenir $\rho$ et $T$ pour estimer les futurs coefficients puis les brancher dans un schéma implicite ou y a-t-il une meilleure façon?
En tant qu'équation d'état, j'ai des valeurs de table pour les coefficients $D(\rho, T)$et suis capable d'interpoler entre les valeurs, donc je devrais être capable de calculer Jacobiens des interpolants. Puis-je utiliser le jacobien à l'heure actuelle s'il n'est pas assez bon avec Forward Euler sur PDE, donc tout est implicite à l'exception du coefficient qui utilise une méthode explicite avec le jacobien?
Si cela ne suffit pas non plus, j'aimerais vraiment savoir comment procéder. Comment tirerait-on le jacobien du futur? Devrais-je effectuer une sorte d'échantillonnage pour d'éventuelles valeurs futures de$\rho$ et $T$?
(Je veux résoudre les équations dans scholarpedia mais cet exemple de jouet devrait suffire pour me lancer)
Réponses
Il existe de nombreuses façons de procéder. Votre approche «prédicteur-correcteur» est à sens unique. Un meilleur cadre conceptuel consiste à procéder d'abord à une discrétisation temporelle, puis à examiner le type de problème que vous rencontrez. Par exemple, si vous vouliez faire un schéma Euler implicite, vous devrez résoudre le problème suivant à chaque pas de temps:$$ \frac{\rho^n-\rho^{n-1}}{\Delta t} = -\nabla\cdot (\rho^n u) + \nabla \cdot(D(\rho^n, T) \nabla \rho^n) + \rho_s, $$ignorant les autres variables pour le moment. C'est un problème non linéaire à résoudre en$\rho^n$, et toutes les techniques de résolution de problèmes non linéaires sont maintenant sur la table. Par exemple, vous pouvez faire une itération Newton qui tente de trouver une séquence$\rho^{n,k}$ ($k$ est l'indice d'itération de Newton dans le $n$pas de temps) dont vous avez besoin pour commencer $\rho^{n,0}$. Une bonne première estimation serait$\rho^{n,0}=\rho^{n-1,\ast}$, l'itération finale de Newton dans le $(n-1)$st pas de temps. Une itération de Newton encore meilleure serait$\rho^{n,0}=\rho^{n-1,\ast}+\Delta t \frac{\rho^{n-1,\ast}-\rho^{n-2,\ast}}{k} \approx \rho^{n-1,\ast}+\Delta t \frac{\partial \rho(t)}{\partial t}$. Une autre option serait de commencer par$\rho^{n,0}=\rho^{n,ee}$ où ce dernier terme est la solution explicite d'Euler du pas de temps.
De nombreux schémas peuvent être considérés comme des variantes de l'une de ces idées. Peut-être qu'ils font exactement une itération de Newton avec n'importe laquelle de ces suppositions de départ, ou ils font une itération de point fixe ("Picard") avec n'importe laquelle de ces suppositions de départ. Mais finalement, si vous voulez résoudre le problème implicitement, il est utile de l'écrire d'abord comme un problème non linéaire pour$\rho^n$.