Conditions de Dirichlet

$\newcommand{\Cb}{\mathbb{C}}$ $\newcommand{\Nb}{\mathbb{N}}$ $\newcommand{\Pb}{\mathbb{P}}$ $\newcommand{\Qb}{\mathbb{Q}}$ $\newcommand{\Rb}{\mathbb{R}}$ $\newcommand{\PS}[2]{\left(#1,#2\right)}$ $\newcommand{\PSV}[2]{\PS{#1}{#2}_V}$ $\newcommand{\PSL}[2]{\PS{#1}{#2}_{L^2(\Omega)}}$ $\newcommand{\PSH}[2]{\PS{#1}{#2}_{H^1(\Omega)}}$ $\newcommand{\norm}[1]{\left\|#1\right\|}$ $\newcommand{\normV}[1]{\left\|#1\right\|_{V}}$ $\newcommand{\normH}[1]{\left\|#1\right\|_{H^1(\Omega)}}$ $\newcommand{\normL}[1]{\left\|#1\right\|_{L^2(\Omega)}}$ $\newcommand{\abs}[1]{\left|#1\right|}$ $\newcommand{\ee}{\mathbf{e}}$ $\newcommand{\nn}{\mathbf{n}}$ $\newcommand{\qq}{\mathbf{q}}$ $\newcommand{\ssb}{\mathbf{s}}$ $\newcommand{\xx}{\mathbf{x}}$ $\newcommand{\yy}{\mathbf{y}}$ $\newcommand{\zz}{\mathbf{z}}$ $\newcommand{\Ccal}{\mathcal{C}}$ $\newcommand{\Ascr}{\mathscr{A}}$ $\newcommand{\Cscr}{\mathscr{C}}$ $\newcommand{\Dscr}{\mathscr{D}}$ $\newcommand{\Sscr}{\mathscr{S}}$ $\newcommand{\Tscr}{\mathscr{T}}$ $\newcommand{\omegai}{\omega_i}$ $\newcommand{\dsp}{\displaystyle}$ $\newcommand{\diff}{{\rm d}}$ $\newcommand{\conj}[1]{\overline{#1}}$ $\newcommand{\dn}{\partial_\nn}$ $\newcommand{\card}{\mathrm{card}}$ $\newcommand{\supp}{\mathrm{supp}}$ $\newcommand{\diam}{\mathrm{diam}}$ $\newcommand{\restrict}{\mathclose{}|\mathopen{}}$ $\newcommand{\enstq}[2]{\left\{#1 \mathrel{}\middle|\mathrel{}#2\right\}}$ $\newcommand{\Image}{\mathrm{Im}}$ $\newcommand{\Ker}{\mathrm{Ker}}$ $\newcommand{\dxi}{\partial_{x_i}}$ $\newcommand{\di}{\partial_{i}}$ $\newcommand{\dj}{\partial_{j}}$ $\newcommand{\dxj}{\partial x_{j}}$ $\newcommand{\Ho}{H^1(\Omega)}$ $\newcommand{\Lo}{L^2(\Omega)}$ $\newcommand{\Cinfc}{\Cscr^{\infty}_c}$ $\newcommand{\CinfcO}{\Cinfc(\Omega)}$ $\newcommand{\hme}[1]{#1_h}$ $\newcommand{\vh}{v_h}$ $\newcommand{\Vh}{V_h}$ $\newcommand{\uh}{u_h}$ $\newcommand{\Nh}{N_h}$ $\newcommand{\mphi}[1]{\varphi_{#1}}$ $\newcommand{\ui}{u_i}$ $\newcommand{\uj}{u_j}$ $\newcommand{\Sscrh}{\hme{\Sscr}}$ $\newcommand{\deltaij}{\delta_{i,j}}$ $\newcommand{\Kp}{K_p}$ $\newcommand{\Kq}{K_q}$ $\newcommand{\Kl}{K_\ell}$ $\newcommand{\Pzero}{\Pb_0}$ $\newcommand{\Pun}{\Pb_1}$ $\newcommand{\Punw}{\Pun(\omega)}$ $\newcommand{\Pdeux}{\Pb_2}$ $\newcommand{\Ptrois}{\Pb_3}$ $\newcommand{\Pquatre}{\Pb_4}$ $\newcommand{\Pk}{\Pb_k}$ $\newcommand{\grandO}[1]{O\left(#1\right)}$ $\newcommand{\Cun}{\Cscr^1(\Omega)}$ $\newcommand{\Cunz}{\Cscr^1_0(\Omega)}$ $\newcommand{\Cdeux}{\Cscr^2(\Omega)}$ $\newcommand{\Hoz}{H^1_0(\Omega)}$ $\newcommand{\HoD}{H^1_{0,\Gamma_D}(\Omega)}$ $\newcommand{\Vhz}{V_{h,0}}$ $\newcommand{\Hog}{H^1_{g,D}}$ $\newcommand{\Kh}{\widehat{K}}$ $\newcommand{\qh}{\widehat{\qq}}$ $\newcommand{\sh}{\widehat{\ssb}}$ $\newcommand{\phih}{\widehat{\phi}}$ $\newcommand{\varphih}{\widehat{\varphi}}$ $\newcommand{\psih}{\widehat{\psi}}$ $\newcommand{\TK}{T^K}$ $\newcommand{\varphiK}{\varphi^K}$ $\newcommand{\ug}{u_g}$ $\newcommand{\ut}{u_t}$

Formulation faible et espace H10

Nous considérons tout d’abord le cas où $g= 0$. La condition de Dirichlet est dite essentielle car elle est intégrée à l’espace fonctionnel. On étudie tout d’abord ce problème dans le cas régulier, et on introduit l’espace des fonctions $\Cun$ nulles sur le bord de $\Omega$ : $$ \Cunz = \enstq{u\in\Cun}{u\restrict_{\partial\Omega}= 0}. $$ Supposons que $u\in\Cdeux$, alors en multipliant par une fonction test $v\in\Cun$, en intégrant sur $\Omega$ et en utilisant la formule de Green, il vient que $$ \begin{array}{r l} \dsp \int_{\Omega} -\Delta u(\xx)\overline{v}(\xx)\diff(\xx) &= \dsp \int_{\Omega} \nabla u(\xx)\cdot\overline{\nabla v(\xx)}\diff\xx+ \dsp \int_{\partial\Omega} \dn u(\xx) \overline{v(\xx)}\diff\xx \\\ &= \dsp \int_{\Omega} \nabla u(\xx)\cdot\overline{\nabla v(\xx)}\diff\xx. \end{array} $$ Nous obtenons donc la formulation faible suivante : $$ \left\{ \begin{array}{l} \text{Trouver } u\in\Cunz\text{ tel que }\\
\dsp \forall v \in \Cunz,\quad a(u,v) = \ell(v), \end{array} \right. $$ avec $$ \left\{ \begin{array}{r l} a(u,v) &= \dsp \int_{\Omega} \nabla u(\xx)\cdot\overline{\nabla v(\xx)}\diff\xx \\
\ell(v) &= \dsp\int_{\Omega} f(\xx)\overline{ v(\xx)}\diff\xx. \end{array} \right. $$ Malheureusement, nous ne pourrons toujours pas appliquer le Théorème de Lax-Migram sur cette formulation faible, car $\Cunz$ n’est pas complet (en tout cas, pas pour la norme qui nous intéresse). Nous introduisons alors un espace de Sobolev qui prend en compte la condition de Dirichlet. $$ \Hoz = \enstq{u\in\Ho}{\gamma_{\partial\Omega} u = 0}, $$ où $\gamma_{\partial\Omega}:\Ho\to L^2(\partial\Omega)$ est l’application trace sur $\partial\Omega$.

Lemma.

L’espace $\Hoz$ est un espace de Hilbert.

Proof.

Par la définition de l’espace, nous avons $\Hoz = \ker(\gamma_{\partial\Omega})$. Nous avons vu que l’application trace est continue, son noyau est alors fermé. L’espace $\Hoz$ est un sous-espace fermé de $\Ho$ qui est un Hilbert : $\Hoz$ est donc également un espace de Hilbert.

La formulation faible que nous étudions finalement est : $$ \left\{ \begin{array}{l} \text{Trouver } u\in\Hoz\text{ tel que }\\
\dsp \forall v \in \Hoz,\quad a(u,v) = \ell(v). \end{array} \right. $$

Nous vérifions maintenant les hypothèses du théorème de Lax-Milgram pour démontrer l’existence et l’unicité de la solution à la formulation variationnelle ci-dessus :

  1. $\Hoz$ est un espace de Hilbert
  2. Continuité de $\ell(\cdot)$ : $$ \begin{array}{ r >{\displaystyle}l l} \forall v\in\Hoz,\quad \abs{\ell(v)} & \dsp = \abs{\int_{\Omega}f(\xx)\conj{v(\xx)}\diff\xx} & \\
    & \leq \normL{f}\normL{v}& \textit{Cauchy Schwarz}\\
    & \leq \normL{f}\normH{v}& \textit{Inégalité des normes} \end{array} $$
  3. Continuité de $a(\cdot,\cdot)$ : $$ \begin{array}{ r >{\displaystyle}l l} \forall u, v\in\Hoz,\quad \abs{a(u,v)} &\dsp = \abs{\int_{\Omega}\nabla u(\xx)\cdot \conj{\nabla v(\xx)}\diff\xx} & \\
    & \leq \normL{\nabla u}\normL{\nabla v}& \textit{Cauchy Schwarz}\\
    & \leq \normH{u}\normH{v}& \textit{Inégalité des normes} \end{array} $$
  4. Coercivité de $a(\cdot,\cdot)$ : $$ \forall u\in\Hoz,\quad \Re\left(a(u,u)\right) = a(u,u) = \abs{\int_{\Omega}\nabla u(\xx)\cdot \conj{\nabla u(\xx)}\diff\xx} = \normL{\nabla u}^2\ldots $$ La coercivité est en réalité compliquée à obtenir puisque nous aimerions avoir :
    $$ \normL{\nabla u}^2 \geq C \normH{u}^2 = C\left(\normL{\nabla u}^2 + \normL{u}^2\right), $$ et fort heureusement c’est le cas, grâce à l’inégalité de Poincaré.

Inégalité de Poincaré

Nous admettrons le théorème suivant, qui nous permet d’obtenir la coercivité de $a(\cdot,\cdot)$. Au final, toutes les hypothèses du théorème de Lax-Milgram sont respectées et le problème admet une unique solution.

Theorem (Inégalité de Poincaré).

Il existe une constante $C>0$ telle que, pour tout $u\in\Hoz$, nous avons : $$ \normL{\nabla u}^2 \geq C \normH{u}^2. $$

L’inégalité de Poincaré est aussi valable si la condition de Dirichlet n’est posée que sur une partie du bord $\partial\Omega$, comme montré ci-après.

Condition de Dirichlet partielle : combinaison de Neumann et Dirichlet

Prenons par exemple le problème suivant, où $w\in L^2(\Gamma_N)$, $\Gamma_D\cup\Gamma_N =\partial\Omega$ et $\Gamma_D\cap\Gamma_N = \emptyset$ :

\begin{equation}\label{eq:eqGammaD} \left\{ \begin{array}{r c l l} -\Delta u & = & f & (\Omega)\\
u & = & 0 & (\Gamma_D)\\
\dn u & = & w & (\Gamma_N) \end{array} \right. \end{equation}

En notant $\gamma_D \colon \Ho\to L^2(\Gamma_D)$ l’application trace sur $\Gamma_D$, nous introduisons l’espace $\HoD$ suivant :

$$ \HoD = \enstq{u\in\Ho}{\gamma_D(u) = 0}. $$ Autrement dit, $\HoD$ peut être vu comme les fonctions $\Ho$ nulles sur le bord $\Gamma_D$. L’espace $\HoD$ est toujours un espace de Sobolev, pour les mêmes raisons que pour $\Hoz$ et la formulation faible s’écrira alors, après calculs : $$ \left\{ \begin{array}{l} \text{Trouver }u\in\HoD \text{ tel que }\\
\forall v\in\HoD,\quad a(u,v) = \ell(v), \end{array} \right. $$ avec, pour toutes fonctions $u$ et $v$ de $\HoD$ : $$ \left\{ \begin{array}{r l} a(u,v) &=\dsp \int_{\Omega}\nabla u(\xx)\cdot\conj{\nabla v(\xx)} \diff\xx \\
\ell(v) &= \dsp \int_{\Omega}f(\xx)\conj{v(\xx)}\diff\xx + \int_{\Gamma_N}w(\xx)\conj{v(\xx)}\diff s(\xx). \end{array} \right. $$

Nous vérifions maintenant les hypothèses du théorème de Lax-Milgram. La continuité de $a$ et de $\ell$ ont déjà été démontrées précédemment. Seule nous intéresse ici la coercivité de $a$, donnée par une autre version de l’inégalité de Poincaré (plus complète) :

Theorem (Inégalité de Poincaré générale).

Soit $\Gamma_D\subset\partial\Omega$ une partie du bord de mesure non nulle au sens de la mesure de surface. Il existe une constante $C>0$ telle que : $$ \forall u\in\HoD,\quad \normL{\nabla u}^2 \geq C \normH{u}^2. $$

Prise en compte des conditions de Dirichlet dans la matrice

Dans la suite, nous considérons le cas général où la condition de Dirichlet homogène est posée sur une partie du bord $\Gamma_D$ uniquement, c’est à dire le problème \eqref{eq:eqGammaD}.

Si $V_h$ est l’espace des éléments finis $\Pb^1$ sur $\Omega$, alors une discrétisation naturelle de $\Hoz$ est l’espace $\Vhz$ défini par $$ \Vhz = \enstq{u\in V_h}{u\restrict_{\Gamma_D} = 0} $$

Mais nous pouvons aussi raisonner sur le système linéaire directement. Nous séparons les degrés de liberté en deux sous-ensembles :

  1. Ceux qui appartiennent à $\Omega$ ou à $\Gamma_N$ : nous les noterons avec un indice $I$ (pour Intérieur) : $u_I$
  2. Ceux qui appartiennent à $\Gamma_D$, ils seront notés avec un indice $D$ : $u_D$

Quitte à renuméroter, le vecteur $U$ de degrés de liberté se réécrit $$ U =\left( \begin{array}{c} u_I\\
u_D \end{array} \right), $$ et le système linéaire $AU = b$ devient : $$ AU = b \iff \left( \begin{array}{c c} A_{I,I} & A_{I, D}\\
A_{D, I} & A_{D,D} \end{array} \right) \left( \begin{array}{c} u_I\\
u_D \end{array} \right) = \left( \begin{array}{c} b_I\\
b_D \end{array} \right) $$

Les degrés de liberté $u_D$ sont en réalité fixés à 0 du fait de la condition de Dirichlet, autrement dit, le système à résoudre se résume à ($I_{D,D}$ étant la matrice identité) : $$ AU = b \iff \left( \begin{array}{c c} A_{I,I} &A_{I,D}\\
0 & I_{D,D} \end{array} \right) \left( \begin{array}{c} u_I\\
u_D \end{array} \right) = \left( \begin{array}{c} b_I\\
0 \end{array} \right) $$

Informatiquement, nous devons donc rendre les lignes et colonnes associées aux degrés de liberté de Dirichlet, nulles, sauf sur la diagonale avec la valeur 1. Cette opération est souvent effectuée après l’assemblage de la matrice.

La valeur de 1 sur la diagonale est finalement arbitraire : nous pouvons choisir n’importe quelle valeur. Pour des raisons de précision numérique, il peut être plus pertinent de choisir comme valeur la moyenne de la somme de la diagonale de $A_{I,I}$ (sa trace). Cette technique peu coûteuse permet d’éviter de polluer le conditionnement de la matrice par des valeurs potentiellement trop grande ou trop petite par rapport à la “moyenne”.

Dans le cas de condition de Dirichlet homogène, ce système ce simplifie : $$ AU = b \iff \left( \begin{array}{c c} A_{I,I} & 0\\
0 & I_{D,D} \end{array} \right) \left( \begin{array}{c} u_I\\
u_D \end{array} \right) = \left( \begin{array}{c} b_I\\
0 \end{array} \right), $$ ou encore, plus simplement : $A_{I,I} u_I = b_I$.

Condition de Dirichlet non homogène

Notion de relèvement

Nous considérons maintenant le cas d’une condition de Dirichlet non homogène, autrement dit, si $g\in L^2(\Gamma_D)$ et $g\neq 0$ :

$$ \left\{ \begin{array}{r c l l} -\Delta u & = & f & (\Omega)\\
u & = & g & (\Gamma_D)\\
\dn u & = & w & (\Gamma_N) \end{array} \right. $$

Nous pouvons introduire l’espace suivant $$ \Hog = \enstq{u\in \Ho}{u\restrict_{\Gamma_D} = g}, $$ mais ce n’est pas un espace vectoriel ! Pour remédier à ce problème, nous nous ramenons au cas d’une condition de Dirichlet homogène en introduisant un relèvement $u_g$ de $g$ : une fonction de $\Ho$ telle que $\gamma_{\Gamma_D}u_g = g$. Nous ne nous préoccuperons pas de savoir si une telle fonction existe et supposons que tel est le cas (en réalité, $g$ doit appartenir à l’espace $H^{\frac{1}{2}}(\partial\Omega)$). Le problème devient alors de chercher $\ut = u-u_g$ satisfaisant :

$$ \left\{ \begin{array}{r c l l} -\Delta \ut & = & f +\Delta u_g & (\Omega)\\
\ut & = & 0 & (\Gamma_D))\\
\dn \ut & = & h & (\Gamma_N) \end{array} \right. $$

Le relèvement n’est pas unique, puisque si $u_0\in\Hoz$ alors $u_g + u_0$ est aussi un relèvement acceptable.

Construction d’un relèvement en P1

En éléments finis $\Pun$, un relèvement naturel est la fonction $u_{h, g}$ de $\Vh$ telle que $$ u_{h,g}(\ssb_j) = \left\{ \begin{array}{l l} g(\ssb_j) & \text{ si }\ssb_j\in\Gamma_D,\\
0 & \text{ sinon.} \end{array} \right. $$ Cette fonction n’est pas un relèvement de $g$ puisqu’elle ne coïncide avec $g$ que sur les sommets, mais pas nécessairement entre les sommets. Toutefois, au niveau discret, elle remplit ce rôle : c’est un relèvement de l’interpolée $g_h = \Pi_h g$ de $g$ sur l’espace éléments finis (la différence est subtile mais importante).

En pratique, la matrice est alors décomposée ainsi : $$ AU = b \iff \left( \begin{array}{c c} A_{I,I} & A_{I, D}\\
0 & I_{D,D} \end{array} \right) \left( \begin{array}{c} u_I\\
u_D \end{array} \right) = \left( \begin{array}{c} b_I\\
g_h \end{array} \right). $$ La matrice obtenue est non symétrique, ce qui peut poser des problèmes (par ex. augmentation du coût de stockage mémoire). Une astuce simple consiste à réécrire sous la forme suivante : $$ AU = b \iff \left( \begin{array}{c c} A_{I,I} & 0\\
0 & I_{D,D} \end{array} \right) \left( \begin{array}{c} u_I\\
u_D \end{array} \right) = \left( \begin{array}{c} b_I - A_{I,D} g_h\\
g_h \end{array} \right). $$