Méthode des volumes finis
Modèle:À désacadémiser En analyse numérique, la méthode des volumes finis est utilisée pour résoudre numériquement des équations aux dérivées partielles, comme la méthode des différences finies et celle des éléments finis.
Contrairement à la méthode des différences finies, qui met en jeu des approximations des dérivées, les méthodes des volumes finis et des éléments finis exploitent des approximations d'intégrales. Toutefois, la méthode des volumes finis exploite directement la forme dite forte de l'équation à résoudre, alors que la méthode des éléments finis se fonde sur une formulation variationnelle de l'équation (on parle aussi de formulation faible).
L'équation aux dérivées partielles est résolue de manière approchée à l’aide d’un maillage constitué de volumes finis, qui sont de petits volumes disjoints en 3D (des surfaces en 2D, des segments en 1D) dont la réunion constitue le domaine d'étude. Les volumes finis peuvent être construits autour de points d'un maillage initial, mais ce n’est pas une nécessité.
Les méthodes de volumes finis ont été initialement mises au point pour des lois de conservation hyperboliques, mais des développements récents permettent de les utiliser pour des équations elliptiques et paraboliques.
Ces équations aux dérivées partielles contiennent des termes de divergence. En utilisant le théorème de flux-divergence, les intégrales de volume d'un terme de divergence sont transformées en intégrales de surface et ces termes de flux sont ensuite évalués aux interfaces entre les volumes finis. On utilise une fonction de flux numérique pour élaborer une approximation des flux aux interfaces. Puisque le flux entrant dans un volume donné est égal au flux sortant du volume adjacent, ces méthodes sont conservatives, donc parfaitement adaptées à la résolution de lois de conservation.
Un autre avantage de la méthode des volumes finis est qu'elle est facilement utilisable avec des maillages non structurés car, en matière de discrétisation des lois de conservation, sa formulation ne tient aucun compte de la complexité du maillage. En revanche, les caractéristiques géométriques du maillage peuvent jouer un rôle prépondérant lorsque des flux diffusifs entrent en jeu.
Lois de conservation
On s'intéresse ici aux lois de conservation, dont la forme générale est la suivante :
- <math>\frac{\partial \rho}{\partial t} + \mathrm{div} J = g, \qquad \forall (x,t) \in \Omega\times\R_+</math>
à laquelle on ajoute des conditions aux limites et des conditions initiales, et où :
- <math>\rho</math> (la densité) est l'inconnue ;
- <math>J</math> le flux associé ;
- <math>g</math> le terme source ;
- <math>\Omega \subset\R^d</math>.
De plus, J est de la forme suivante : <math>J = F(x,t,\rho,\nabla \rho)</math>. On citera par exemple :
- Le flux de convection / transport : <math>J = v(x,t) f(\rho)</math>, où :
- <math>v(x,t)\in\R^d</math> le champ de vecteur donné ;
- <math>f :\R\longrightarrow\R</math>.
- Le flux de diffusion : <math> J = - \kappa (x,t) \nabla \rho</math>, où :
- <math> \kappa (x,t)\in\R</math> dans le cas classique ;
- <math> \kappa (x,t) \in \mathcal M_d(\R)</math> dans certains cas.
- Le flux de convection et diffusion : <math> J = v(x,t) f(\rho) - \kappa (x,t) \nabla \rho</math>.
Maillage du domaine
Soit <math>\Omega</math> l'ensemble d'espace associé à l'équation aux dérivées partielles qui nous intéresse. On appelle volumes de contrôle les éléments de la suite <math> \left( K_i\right)_{1 \leqslant i \leqslant I} </math>, cette suite définissant un maillage du domaine <math>\Omega</math>, soit vérifiant :
- <math> K_i</math> un ouvert de <math> \Omega </math> ;
- <math> K_i\cap K_j= \varnothing, \; \forall i \neq j </math> ;
- <math> \cup_{i=1}^I\overline{K_i} = \overline{\Omega} </math>.
Dimension 1
Soit <math>\Omega = ]0,1[</math>.
Les volumes de contrôle <math> \left( K_i\right)_{1 \leqslant i \leqslant I} </math> forment un maillage <math>\mathcal T</math> de <math>\Omega</math>. En dimension 1, les volumes de contrôle sont des réunions d'intervalles ouverts. On considère par exemple <math> K_i= \left]x_{i-\frac12},x_{i+\frac12} \right[ </math> comme l'indique la figure ci-contre.
On note <math> \mathcal E</math> l'ensemble des interfaces <math> \left( x_{i+\frac12} \right)_{0 \leqslant i \leqslant I } </math>, les extrémités des volumes de contrôle.
Pour finir, on choisit un point <math> x_i</math> dans chaque volume de contrôle <math> K_i</math> et l'on note <math> \mathcal P</math> l'ensemble de ces points <math> \left( x_i\right)_{1 \leqslant i \leqslant I} </math> (on peut y ajouter les points <math> x_0= 0 </math> et <math> x_{I+1} = 1 </math>).
Le maillage est donc la donnée <math>(\mathcal T,\mathcal E,\mathcal P)</math>.
Le pas (taille) du maillage est toujours important dans un schéma numérique, il sera noté <math>h</math> et l'on pose <math> h = \max_{1 \leqslant i \leqslant I} (x_{i+\frac12} - x_{i-\frac12})</math>.
Dimension supérieure
On considère <math>\Omega</math> un ouvert borné polyédrique de <math>\R^d</math> (polygonal si <math> d = 2 </math>).
<math>\mathcal T</math> est toujours l'ensemble des volumes de contrôle <math> \left( K_i\right)_{1 \leqslant i \leqslant I}</math>.
<math>\mathcal E</math> est l'ensemble des arêtes ou faces (selon la dimension) du maillage. Soit <math> \sigma \in \mathcal E</math>, on a alors :
- soit <math> \overline{\sigma} = \overline{K_i} \cap \overline{K_j}, \; i \neq j </math> : <math> \sigma </math> est alors une arête intérieure (<math>\sigma \in \mathcal E_{int} </math>) ;
- soit <math> \overline{\sigma} \subset \partial \Omega </math> : <math> \sigma </math> est alors une arête du bord (<math>\sigma \in \mathcal E_{ext} </math>).
On se donne de même que précédemment, une suite de points <math> \mathcal P= (x_i)_{1 \leqslant i \leqslant I} , \; \text{où} \; x_i\in K_i</math>.
Le maillage de <math>\Omega</math> est la donnée <math>(\mathcal T,\mathcal E,\mathcal P)</math>.
On pose ici, pour le pas, <math> h = \max_{1 \leqslant i \leqslant I} \mathrm{diam}(K_i)</math>.
Solution approchée
Pour la méthode des volumes finis, et contrairement à la méthode des différences finies, les inconnues discrètes ne sont pas les extrémités des mailles, mais les inconnues sont situées à l'intérieur des mailles. L'ensemble de ces inconnues discrètes est l'ensemble <math>\mathcal P</math> défini précédemment.
La solution approchée <math>u_{\mathcal T}</math>, avec la méthode des volumes finis, est une solution constante par maille, que l'on reconstruit de la manière suivante :
- <math>u_{\mathcal T} (x) = \sum_Ku_K1\!\!1_K(x).</math>
L'espace des solutions approchées pour le maillage <math>(\mathcal T,\mathcal E,\mathcal P)</math> est :
- <math>X(\mathcal T) = \left\{\left.u_{\mathcal T} (x) = \sum_Ku_{K} 1\!\!1_K(x)~\right|~K \in \mathcal T, u_K\in\R\right\}.</math>
Remarque
- En règle générale, l'espace des solutions vérifie :
- <math> X(\mathcal T) \subset \mathrm L^{\infty} (\Omega) ( \subset \mathrm L^p,\; \forall p \geqslant 1 \; \text{si} \; \Omega \; \text{est borné}) </math> ;
- <math> X(\mathcal T) \not\subset \mathrm H^1</math>.
Mise en place du schéma
La méthode des volumes finis est utilisée pour discrétiser la partie spatiale des lois de conservation, la partie temporelle est quant à elle discrétisée par la méthode des différences finies. On considère donc ici seulement la partie spatiale, ce qui nous donne le système suivant :
<math>\left\{ \begin{array}{l} \mathrm{div}(J)=g \quad \text{sur} \; \Omega,\\ J=F(x,t,u,\nabla u)\\ \oplus \; \text{Conditions Limites} \end{array} \right.</math>
On considère un maillage <math> (\mathcal{T}, \mathcal{E}, \mathcal{P}) \; \text{de} \; \Omega </math>. La méthode des volumes finis est basée sur l'intégration de l'EDP sur tous les volumes de contrôle du maillage.
On a, par le théorème de Stokes :
- <math>\forall K \in \mathcal T,\int_Kg(x)\, \mathrm dx= \int_K\mathrm{div}(J) = \int_{\partial K} J \cdot n_K\, \mathrm d\gamma</math>
On sait que : <math>\partial K = \cup_{\sigma\in\mathcal E_K} \sigma , \; \text{où} \;\mathcal E_K</math> est l'ensemble des arêtes du volume de contrôle <math>K</math>. d'où <math>\sum_{\sigma\in\mathcal E_K} \int_{\sigma} J \cdot n_{K,\sigma} \, \mathrm d\gamma = \int_Kg(x) \, \mathrm dx,</math> où <math>n_{K,\sigma}</math> est la normale à <math>\sigma</math> sortante de <math>K.</math>
On obtient le schéma volumes finis en faisant une approximation de la dernière égalité, ce qui donne :
- <math>\sum_{\sigma\in\mathcal E_K} \mathcal F_{K,\sigma} = mes(K) g_K,</math> avec :
- <math>\mathcal F_{K,\sigma}</math> une approximation de <math>\int_{\sigma} J \cdot n_{K,\sigma} \, \mathrm d\gamma </math> ;
- <math>g_K</math> une approximation de <math>\frac1{\mathrm V(K)} \int_Kg(x) \, \mathrm dx </math>.
Propriété des flux numériques
Les deux propriétés essentielles du flux numérique <math>\mathcal F_{K,\sigma}</math> pour que celui-ci soit une « bonne » approximation de <math>\int_{\sigma} J \cdot n_{K,\sigma} \, \mathrm d\gamma</math>, sont la conservativité et la consistance.
Conservativité des flux
On impose que pour toute interface interne, le flux entrant est égal à l'opposé du flux sortant :
- <math>\forall \sigma \in \mathcal E_{int}, \sigma = \overline K\cap \overline L,\qquad \mathcal F_{K,\sigma} +\mathcal F_{L,\sigma} =0</math>.
Consistance des flux
Les flux numériques <math>\mathcal F_{K,\sigma}</math> s'expriment en fonction des <math>(u_L)_{L \in \mathcal T}</math>. On remplace alors tous les <math>u_K, \, u_L\; \text{par} \; u(x_K), \, u(x_L) </math> où u est la solution exacte du problème, on obtient alors <math>\tilde{\mathcal F}_{K,\sigma}^{ex}</math>.
Pour qu'on ait la consistance des flux, il suffit que :
- <math>\lim_{h \to 0} \left|\frac1{m(\sigma)} \tilde{\mathcal F}_{K,\sigma}^{ex}-\frac1{m(\sigma)} \int_{\sigma} J \cdot n_{K,\sigma} \, \mathrm d\gamma \right| = 0 </math>.
Exemple en dimension 1
On cherche une solution classique du problème de Dirichlet suivant :
- <math>(\mathcal P) \left\{
\begin{array}{l} -u(x) = f(x) ,\quad \text{sur} \; (0,1)\\ u(0)=0=u(1) \end{array} \right.</math> où <math>f \in \mathcal C([0,1], \R)</math>.
On utilise le maillage pour la dimension 1 défini précédemment.
On aura besoin également des paramètres suivants :<math>h_i= m(K_i) = x_{i+\frac12} - x_{i-\frac12} \; \text{et} \; h_{i+\frac12} = x_{i+1} - x_i, \quad \forall \, 0 \leqslant i \leqslant I </math>.
En intégrant l'équation <math>-u=f \; \text{sur} \; K_i</math>, on obtient l'égalité suivante :
- <math>- u'(x_{i+\frac12}) + u'(x_{i-\frac12}) = \int_{x_{i-\frac12}}^{x_{i+\frac12}} f </math>.
Le schéma volumes finis s'écrit alors :
- <math>
(\mathcal{S}) \left\{ \begin{array}{l} \mathcal{F}_{i+\frac12} - \mathcal F_{i-\frac12} = h_if_i, \quad \forall \, 1 \leqslant i \leqslant I \\ \mathcal{F}_{i+\frac12}= - \frac{u_{i+1}-u_i}{h_{i+\frac12}}, \quad \forall \, 0 \leqslant i \leqslant I \\ u_0=0=u_{I+1} \end{array} \right. </math>
- avec <math> f_i=\frac1{h_i} \int_{x_{i-\frac12}}^{x_{i+\frac12}} f </math>.
Ce schéma numérique <math>(\mathcal S)</math> est un système d'équations linéaires :
- <math>I</math> inconnues : <math>(u_i)_{1 \leqslant i \leqslant I}</math> ;
- <math>I</math> équations.
On peut facilement mettre ce système sous forme matricielle : <math>AU=B, \; U</math> est le vecteur des inconnues.
Remarques
- La consistance, la conservativité et l'unicité de la solution du schéma n'impliquent pas la convergence du schéma.
- Il existe des théorèmes de convergence du schéma si <math>f \in \mathcal C([0,1], \R) </math> ou si <math> f \in \mathrm{L}^2(0,1)</math>.
Voir aussi
Article connexe
Bibliographie
- {{#invoke:Langue|indicationDeLangue}} R. Eymard, T. Gallouët et R. Herbin, « The finite volume method », Handbook of Numerical Analysis, vol. VII, Modèle:P., P. G. Ciarlet et J.-L. Lions, 2000.
- D. Serre, Systèmes de lois de conservation, tome 1, Fondations, Diderot, 1996.