4.3. Condition de Fourier#

4.3.1. Problème#

Étudions le problème suivant pour \(f\) et \(g\) suffisamment régulières :

(4.7)#\[\begin{split}\left\{ \begin{array}{r c l l} -\Delta u +u &=& f & (\Omega),\\ \dn u + u& = & g & (\Gamma := \partial \Omega). \end{array} \right.\end{split}\]

La condition de Fourier (ou Robin ou Fourier-Robin) s’écrit aussi \(\dn u = g -u\) sur \(\Gamma\). Après calcul, la formulation variationnelle s’écrit

\[\begin{split}\left\{ \begin{array}{r c l l} \text{Trouver }u\in\Ho\text{ tel que }\\ \forall v\in\Ho, a(u,v) = \ell(v), \end{array} \right.\end{split}\]

avec (\(\gamma\) est l’application trace sur \(\Gamma\)) :

\[\begin{split}\begin{array}{l c c l} a \colon & \Ho\times\Ho & \to &\Ho\\ & (u,v)&\mapsto& \displaystyle \int_{\Omega}\nabla u\cdot\nabla v + \int_{\Omega} u v + \int_{\Gamma} \gamma(u) \gamma(v)\\ \ell \colon & \Ho & \to &\Ho\\ & v&\mapsto& \displaystyle \int_{\Omega}f v + \int_{\Gamma}g \gamma(v) \end{array}\end{split}\]

4.3.2. Existence et unicité#

Nous avons vu que dans la section 4.1 consacrée à Neumann hétérogème que les intégrales sur le bord ont un sens du fait de l’existence de l’opérateur trace. Pour une condition de Neumann, l’opérateur \(\ell\) est le même et nous avons déjà vu dans la section 4.1 qu’il vérifie les hypothèses du Théorème de Lax-Milgram. Il ne nous reste qu’à vérifier que \(a(\cdot,\cdot)\) est bilinéaire (trivial), continue et coercive.

  • Continuité de \(a(\cdot,\cdot)\) pour tout \(u,v\in\Ho\) :

\[\begin{split}\begin{aligned} \abs{a(u,v)} &= \abs{\int_{\Omega}\nabla u\cdot\nabla v + \int_{\Omega} u v + \int_{\Gamma} \gamma(u) \gamma(v)}\\ & \leq \abs{\int_{\Omega}\nabla u\cdot\nabla v + \int_{\Omega} u v} + \abs{\int_{\Gamma} \gamma(u) \gamma(v)} & \text{Inégalité Triang.}\\ & \leq \normH{u} \normH{v}+\norm{\gamma(u)}_{L^2(\Gamma)} \norm{\gamma(v)}_{L^2(\Gamma)}& \text{Cauchy-Schwarz}\\ & \leq \normH{u} \normH{v} + C^2\normH{u}\normH{v}& \text{Cont. Trace}\\ & \leq (1 + C^2)\normH{u} \normH{v}\\ \end{aligned}\end{split}\]

La constante \(C\) est la constante de continuité de l’opérateur Trace sur \(\Gamma\) définie dans le théorème 4.1.

  • Coercivité de \(a(\cdot,\cdot)\), avec \(u\in\Ho\) :

\[\begin{split}\begin{aligned} a(u,u) & = \dsp\int_{\Omega}\nabla u\cdot\nabla u + \int_{\Omega} u u + \int_{\Gamma} \gamma(u) \gamma(u)\\ & = \dsp \normH{u}^2+ \underbrace{\int_{\Gamma} \abs{\gamma(u)}^2}_{\geq 0}\\ & \geq \dsp \normH{u}^2 \end{aligned}\end{split}\]

Le problème admet donc une unique solution.

4.3.3. Matrice de masse sur le bord#

Après discrétisation dans la base éléments finis, nous sommes ramenés à la résolution du système linéaire

\[A U = b,\]

où la matrice \(A\) et le vecteur \(b\) sont donnés par

\[\begin{split}\begin{aligned} A(I,J) &=\int_{\Omega}\nabla \mphi_{J}\cdot\nabla \mphi_I + \int_{\Omega} \mphi_{J} \mphi_I + \int_{\Gamma} \mphi_{J}|_{\Gamma} \mphi_I|_{\Gamma}\\ B(I) &=\int_{\Omega} f \mphi_I + \int_{\Gamma}g \mphi_I|_{\Gamma} \end{aligned}\end{split}\]

Le vecteur \(B\) se calcule grâce aux formules de quadratures vues dans les paragraphes 3.4.4 pour les triangles et dans 4.1.2 pour les segments. La matrice \(A\) est obtenue par la somme de la matrice de rigidité \(D\), de masse \(M\) et d’une dernière matrice \(M_{\Gamma}\) de coefficients :

\[M_{\Gamma}(I,J)= \int_{\Gamma} \mphi_{J}|_{\Gamma} \mphi_I|_{\Gamma}.\]

Cette matrice correspond à une matrice de masse sur le bord \(\Gamma\). Nous pouvons tout d’abord remarquer que \(\mphi_{I}|_{\Gamma} = 0\) dès que \(\vertice_{I}\) n’est pas sur \(\Gamma\). Comme toujours, nous préférons la décomposer en contributions élémentaires où, ici, un élément sera un segment :

\[M_{\Gamma}(I,J)= \sum_{\sigma \in \Gamma} \int_{\sigma} \mphi_{J}|_{\sigma} \mphi_I|_{\sigma}.\]

Nous pouvons maintenant remarquer que la somme sur les arêtes n’en est pas une puisque l’intégrale sur \(\sigma\) est nulle dès que \(\vertice_{I}\) ou \(\vertice_{J}\) n’est pas un sommet de l’arête. Cependant, n’oublions pas que nous ne calculons pas les coefficients un à un mais que nous assemblons la matrice, autrement dit, nous parcourons chaque segment, calculons toutes les contributions élémentaires associées à ce dernier, et additionnons le tout dans la grande matrice du système.

Autrement dit et quitte à renuméroter, nous considérons une arête \(\sigma = [\vertice_{1}^{\sigma}, \vertice_{2}^{\sigma}]\), nous cherchons à calculer :

\[M^e_{\sigma}(i,j) =\int_{\sigma} \mphi_{j}^{\sigma} \mphi_i^{\sigma},\]

avec \(\mphi_{i}^{\sigma} = \mphi_{I}|_{\sigma}\) et \(\vertice_{i}^{\sigma} = \vertice_{I}\). La matrice \(M^e_{\sigma}\) est de dimension 2x2.

4.3.4. Calcul de la matrice#

Nous introduisons la coordonnée curviligne \(t\)

\[\forall \xx \in \sigma, t(\xx) = \frac{\norm{\xx-\vertice_{1}^{\sigma}}}{\norm{\vertice_{1}^{\sigma}-\vertice_{2}^{\sigma}}} \in [0,1].\]

Quand \(\xx = \vertice_{1}^{\sigma}\) alors \(t=0\) et \(\xx = \vertice_{2}^{\sigma}\) alors \(t=1\).

La trace d’une fonction de forme \(\mathbb{P}_1\) sur \(\sigma\) est la « fonction chapeau » 1D classique. Plus précisément :

\[\begin{split}\begin{array}{l} \mphi_{1}^{\sigma}(\xx) =\mphi_{1}^{\sigma}(\xx(t)) = \hat{\phi_1}(t) = 1-t\\ \mphi_{2}^{\sigma}(\xx) =\mphi_{2}^{\sigma}(\xx(t)) = \hat{\phi_2}(t) = t \end{array}\end{split}\]

À l’inverse, connaissant \(t\) on peut retrouver le point \(\xx\) :

\[\xx(t) = (1-t)\vertice_{1} + t\vertice_{2}.\]

Nous avons une transformation bijective entre \(\sigma\) et le segment \([0,1]\) dit de référence et noté \(\hat{\sigma}\). Nous pouvons opérer un changement de variable (\(i,j = 1,2\)):

\[\int_{\sigma}\mphi_{j}^{\sigma} \mphi_i^{\sigma} \diff \xx= \abs{\sigma}\int_{0}^1\mphi_{j}^{\sigma}(\xx(t)) \mphi_i^{\sigma}(\xx(t)) \diff t = \abs{\sigma}\int_{0}^1\hat{\phi}_{j}(t) \hat{\phi}_i(t) \diff t.\]

Les coefficients de masse de bord se calculent alors aisément et on obtient :

\[\begin{split}M^e_{\sigma}(i,j) =\frac{\abs{\sigma}}{6} \left( \begin{array}{c c} 2 & 1\\ 1 & 2 \end{array} \right).\end{split}\]