Christophe Prud'homme <christophe.prudhomme@cemosis.fr>, Laurent Navoret
Le coefficient q(u) rend l’équation non linéaire (sauf si q(u) est constant en u ). |
Pour pouvoir vérifier facilement notre implémentation, nous choisissons le domaine, q(u),f, et les conditions aux limites de telle sorte que nous ayons une solution simple et exacte u.
Soit Ω l’hypercube unitaire [0,1]d en d dimensions, q(u)=(1+u)m,f=0,u=0 pour x0=0,u=1 pour x0=1, et ∂u/∂n=0 à toutes les autres frontières xi=0 et xi=1,i=1,…,d−1.
Les coordonnées sont maintenant représentées par les symboles x0,…,xd−1.
La solution exacte est alors
La formulation variationnelle de notre problème modèle est la suivante : trouver u∈V tel que
où
et
Le problème discret se pose comme d’habitude en restreignant V et ˆV à une paire d’espaces discrets. Comme souvent, nous omettons tout indice sur les espaces discrets et disons simplement que V et ˆV sont choisis en dimension finie selon un certain type de maille et d’élément. Le problème non linéaire est alors le suivant : trouver u∈V tel que
avec u=∑Nj=1Ujϕj. Puisque F est une fonction non linéaire de u donne lieu à un système d’équations algébriques non linéaires.
Picard
Newton au niveau algébrique
Newton au niveau EDP
L'itération de Picard est un moyen facile de traiter les EDP non linéaires : nous utilisons simplement une solution antérieure connue dans les termes non linéaires de sorte que ces termes deviennent linéaires dans l’inconnue u.
Cette stratégie est également connue comme la méthode des substitutions successives. Pour notre problème particulier, nous utilisons une solution antérieure connue dans le coefficient q(u). Plus précisément, étant donné une solution uk de l’itération k, nous cherchons une nouvelle solution (que nous espérons améliorée) uk+1 dans l’itération k+1 telle que uk+1 résout le problème linéaire
Les itérations nécessitent une estimation initiale u0. On espère que uk→u comme k→∞, et que uk+1 soit suffisamment proche de la solution exacte u du problème discret après seulement quelques itérations. |
Nous pouvons facilement formuler un problème variationnel pour uk+1. De manière équivalente, nous pouvons approximer q(u) par q(uk) pour obtenir le même problème variationnel linéaire. Dans les deux cas, le problème consiste à chercher uk+1∈V tel que
Puisqu’il s’agit d’un problème linéaire dans l’inconnue uk+1, ou de manière équivalente
Les itérations peuvent être arrêtées lorsque
ϵ≡‖uk+1−uk||<tol, où tol est petit, disons 10−5,
le nombre d’itérations dépasse une certaine limite critique.
Dans ce dernier cas, on constatera une divergence de la méthode ou une convergence lente inacceptable. |
Après avoir discrétisé notre problème d’EDP non linéaire, nous pouvons utiliser la méthode de Newton pour résoudre le système d’équations algébriques non linéaires.
A partir du problème variationnel continu, la version discrète résulte en un système d’équations pour les paramètres inconnus U1,…,UN (en insérant u=∑Nj=1Ujϕj et v=ˆϕi dans [nl-discrete]):
La méthode de Newton pour le système Fi(U1,…,Uj)=0,i=1,…,N peut être formulée comme suit
où ω∈[0,1] est un paramètre de relaxation, et k est un indice d’itération.
Remarques
|
Nous avons besoin, dans un programme, de calculer la matrice jacobienne ∂Fi/∂Uj et le vecteur du côté droit −Fi. La dérivée ∂Fi/∂Uj s’écrit
Les résultats suivants ont été utilisés pour obtenir l’équation ci-dessus:
Nous pouvons reformuler la matrice jacobienne en introduisant la notation courte uk=∑Nj=1Ukjϕj ;
Afin de faire calculer cette matrice, nous devons formuler un problème variationnel correspondant. En regardant le système d’équations linéaires de la méthode de Newton,
nous pouvons introduire v comme fonction de test générale remplaçant ˆϕi, et nous pouvons identifier l’inconnue δu=∑Nj=1δUjϕj.
À partir du système linéaire, nous pouvons maintenant "revenir en arrière" pour construire la forme faible discrète correspondante.
L’équation s’adapte à la forme standard a(δu,v)=L(v) avec
Remarques
|
Bien que la méthode de Newton dans les problèmes d’EDP soit normalement formulée au niveau de l’algèbre linéaire, c’est-à-dire comme une méthode de résolution de systèmes d’équations algébriques non linéaires, nous pouvons également formuler la méthode au niveau des EDP.
Cette approche permet de linéariser les EDP avant de les discrétiser.
Étant donné une approximation du champ de solution, uk, nous recherchons une perturbation δu telle que
satisfasse l’EDP non linéaire. Cependant, le problème pour δu est toujours non linéaire et on ne gagne rien.
L’idée est donc de supposer que δu est suffisamment petit pour que l’on puisse linéariser le problème par rapport à δu. |
En insérant uk+1 dans l’EDP, on linéarise le terme q comme suit
et en abandonnant les autres termes non linéaires dans δu, on obtient
Nous pouvons rassembler les termes avec l’inconnue δu sur le côté gauche,
La forme faible de cette EDP est dérivée en la multipliant par une fonction test v et en l’intégrant sur Ω, en intégrant les dérivées du second ordre par parties :
Le problème variationnel est le suivant : trouver δu∈V tel que a(δu,v)=L(v) pour tout v∈ˆV, où
Les espaces de fonctions V et ˆV, étant continus ou discrets, sont comme dans le problème de Poisson linéaire. |
Nous devons fournir une estimation initiale, par exemple, la solution de l’EDP avec q(u)=1.
La forme faible correspondante a0(u0,v)=L0(v) possède
Ensuite, nous entrons dans une boucle et résolvons a(δu,v)=L(v) pour δu et calculons une nouvelle approximation uk+1=uk+δu.
Remarques
|
u:Ω×R+→R: densité
u°:Ω→R: donnée initiale
f:Ω×R+→R: terme source
g:∂Ω→R: valeur au bord
→ problème parabolique → Bilan de conservation
→ Dissipation de la norme L2
Une approche simple pour résoudre les EDP dépendant du temps par La méthode des éléments finis consiste à discrétiser d’abord la dérivée en temps par les différences finies. Cela donne un ensemble récursif de problèmes stationnaires, puis on transforme chaque problème stationnaire en un problème variationnel.
Soit l’exposant k qui désigne une quantité au temps tk où k est un nombre entier comptant les niveaux de temps. Par exemple, uk signifie u au niveau du temps k.
Discrétisation en temps: Δt>0,tn=nΔt. On note un(x):=u(tn,x) Schéma d’Euler (implicite):
→ "method of lines" → pour trouver un, on résout un problème elliptique (stationnaire)
Problème au temps tn
V={v∈H1(Ω),v=gn sur ∂Ω} V0={v∈H1(Ω),v=0 sur ∂Ω} Problème variationnel
→ Méthode d’éléments finis
Pour le calcul de u0 :
interpolation: u0=∑Nj=1u0(xi)φi
projection L2:u0 est solution du problème variationnel
Autre schéma numérique pour la discrêtisation de la dérivée en temps : Crank-Nicolson (ordre 2 en temps)
u:R+×Ω→Rd: température ou concentration
β:R+×Ω→Rd: vitesse d’advection
u:R+×Ω→Rd: champ de vitesse
p:R+×Ω→R: pression
advection non-linéaire |
f∈L2,∇⋅β∈L2 et β∈L∞,ε,μ>0. On suppose de plus que μ+12∇⋅β⩾0 alors a est coercif : a(v,v)⩾κ‖v‖2H1, avec κ=ε a est continu :a(u,v)⩽M‖u‖H1‖v‖H1, avec M=(μ+ε+‖β‖∞) On en déduit qu’il existe une unique solution u au problème variationnel.
Preuve de la convergence :
On a ensuite :
Limite faible diffusion (convection dominante): ε→0 → solution et gradient très grands |
Nombre de Péclet: Pe=‖β‖∞L2ε(L= longueur caractéristique du domaine)
Nombre de Péclet local à une maille: PeK=‖β‖∞hK2ε
réduire l’erreur en prenant un très petit paramètre de discrétisation h
méthodes de stabilisation :
Diffusion artificielle
Galerkin Least-Square (GLS)
Streamline Upwind Petrov Galerkin (SUPG)
Continuous Interior Penalty methods (CIP)
..
Problème : Lu=f avec
Formulation moindre carré :
Cela revient à résoudre LTLu=LTf. L’unique solution de ce problème est le minimum de la fonction
Problème mal posé : pour v∈H1, Lv∉L2(Ω) |
mais pour tout vh∈Vh et tout K∈Th,Lvh∣K∈L2.
Formulation variationnelle GLS: Trouver u∈Vh,
Remarques
|
Soit f∈L2(Ω) et u∈V la solution du problème. Soit uh∈Vh la solution approchée du problème d’advection-diffusion. Si u∈Hk+1(Ω), alors avec δK=δhK/‖β‖ pour PeK⩾1 et δ suffisamment petit,
En prenant δK=(‖β‖∞/hK+ε/h2K)−1, on obtient la convergence:
→ convergence sous-optimale d’un facteur 1/2 |
Streamline upwind Petrov-Galerkin
(Partie symétrique et antisymétrique)
Remarques
|
Trouver u∈Vh,
Remarques
|