Électromagnétisme basse fréquence analytique et numérique

Bienvenue sur le Webpoly de l’EC1 du bloc B8-11 !


Appel de James Clerk Appel de James Clerk


Julien Fontchastagner

Version 2.1 / Janvier 2026

Programme :

Logo ENSEM

ENSEM - Département Génie Électrique

Sous-sections de Électromagnétisme BF

Avant-propos

Où suis-je ?

Sur le webpoly de l’EC B8-11-EC1 : « Électromagnétisme BF analytique et numérique » du bloc de compétence « Modélisation & Simulation numérique en Génie Électrique » de 2ème année ENSEM (formation Énergie).

C’est quoi un webpoly et pourquoi ce format ?

C’est un petit site internet à mi-chemin entre polycopié de cours et diaporama. L’idée est d’unifier tout le contenu pédagogique de l’EC avec quelque chose de plus synthétique qu’un polycopié de cours classique, mais plus détaillé que de simples transparents. Le but est donc d’avoir un support multi-usages pouvant s’adapter aux différents modes d’enseignement imposés selon les circonstances : présentiel, hybride ou distanciel (synchrone ou asynchrone).

Quels sont les objectifs du cours ?

  1. Se (re)mettre à niveau en électromagnétisme en présence de milieux matériels (base fondamentale de l’électrotechnique / électromécanique).

  2. Se perfectionner sur la méthode des éléments finis appliquée aux problèmes correspondants.

  3. Comprendre et appréhender ce qui est caché derrière les interfaces des logiciels du domaine.

Quelles seront les compétences acquises ?

  • Connaître les formulations fortes de l’électromagnétisme dans l’approximation des régimes quasi stationnaires.

  • Savoir en déduire les formes faibles associées.

  • Maîtriser les particularités du domaine :

    • conditions aux limites correspondant au traitement de frontières lointaines,

    • types d’éléments,

    • conditions de jauge particulières,

    • formulations en potentiels.

  • Savoir interpréter, adapter et modifier un modèle développé avec l’interface logicielle ONELAB (mailleur libre Gmsh et solveur libre GetDP).

Chapitre 1 - (Rappels d') Électromagnétisme


Où on reviendra sur les notions de base.


Sous-sections de Électromagnétisme

Bref historique

Bien que plus jeune que la mécanique, l’électromagnétisme est, avec cette dernière, une grande branche de la physique classique. Sur Wikipédia, on peut trouver un bon résumé historique. Plutôt que de le reformuler, je préfère le pomper odieusement :

Pendant longtemps les phénomènes électriques et les phénomènes magnétiques ont été considérés comme indépendants [1]. En 1600, William Gilbert explicite, dans son ouvrage De Magnete, la distinction entre corps électriques (il introduit ce terme) et magnétiques. Il assimile la Terre à un aimant, note les répulsions et attractions des aimants par leurs pôles et l’influence de la chaleur sur le magnétisme du fer. Il donne aussi les premières notions sur l’électricité, dont une liste des corps électrisables par frottement.

Les Grecs avaient seulement remarqué que des morceaux d’ambre frottés pouvaient attirer des corps légers, tels des copeaux ou de la poussière, et par ailleurs qu’il existait un minéral, la « pierre d’aimant » ou magnétite [2], capable d’attirer le fer et les métaux ferreux.

La découverte au XIXe siècle par Ørsted, Ampère et Faraday de l’existence d’effets magnétiques de l’électricité a conduit progressivement à envisager que les forces « électrique » et « magnétique » puissent être en fait unifiées, et Maxwell propose en 1860 une théorie générale de l’électromagnétisme classique, qui pose les fondements de la théorie moderne.

  • La perturbation des boussoles sous l’action de la décharge de la foudre était un phénomène bien connu au XVIIIe siècle. Cela créait un lien entre électricité et magnétisme, mais difficile à interpréter et impossible à reproduire. Par ailleurs les lois de l’électricité et du magnétisme énoncées par Charles Coulomb distinguaient bien l’électricité d’un côté et le magnétisme de l’autre, même si ces lois se présentaient sous la même forme mathématique.

  • En 1820, le Danois Hans Christian Ørsted fait une observation extraordinaire : un fil rectiligne parcouru par un courant continu dévie l’aiguille d’une boussole placée à proximité.

  • En 1820, André-Marie Ampère met en évidence les interactions entre courants électriques et assimile tout aimant, y compris le globe terrestre, à un ensemble de courants [3].

  • En 1831, Michael Faraday étudie le comportement d’un courant dans un champ magnétique, et s’aperçoit que celui-ci peut produire du travail. Ørsted avait découvert qu’un courant électrique produit un champ magnétique, Faraday découvre qu’un champ magnétique engendre un courant électrique. Il découvre ainsi le principe du moteur électrique, et donc la conversion du travail mécanique en énergie électrique, inventant ainsi la génératrice de courant. Dans un article de 1852 (« On the Physical Character of the Lines of Magnetic Force »), Faraday dévoile l’existence du champ magnétique en décrivant les « lignes de force » le long desquelles s’oriente la limaille de fer au voisinage de l’aimant.

  • En 1864, James Maxwell unifie les théories antérieures, comme l’électrostatique, l’électrocinétique ou la magnétostatique. Cette théorie unifiée explique, entre autres, le comportement des charges et courants électriques, des aimants, ou encore des ondes électromagnétiques telles la lumière ou les ondes radio qui apparaissent en fait comme la propagation de perturbations électromagnétiques. L’électromagnétisme est né.

⇝ Merci Wikipédia ! Mais pour le reste, on fera sans toi… 😉

Champ électromagnétique

Définitions

De façon générale, à l’échelle macroscopique, le champ électromagnétique est constitué de cinq champs vectoriels et d’un champ scalaire :

  • ${\bf h}$ : le champ magnétique en $\text{A}\cdot\text{m}^{-1}$

  • ${\bf e}$ : le champ électrique en $\text{V}\cdot\text{m}^{-1}$

  • ${\bf b}$ : l’induction magnétique en $\text{T}$ (= $\text{Wb}\cdot\text{m}^{-2}$)

  • ${\bf d}$ : l’induction électrique en $\text{C}\cdot\text{m}^{-2}$

  • ${\bf j}$ : la densité volumique de courant électrique en $\text{A}\cdot\text{m}^{-2}$

  • $\rho_q$ : la densité volumique de charge électrique en $\text{C}\cdot\text{m}^{-3}$

Remarque

Dans ce cours, nous utiliserons les notations anglo-saxonnes pour les vecteurs : il seront donc affichés en gras.

Les six grandeurs ci-dessus sont liées entres-elles par deux types de relations :

  1. les lois de comportement des milieux en présence,
  2. les célèbres équations de Maxwell.
Information

Nous distinguerons toujours les inductions et les champs car nous serons en présence d’un ou plusieurs milieux matériels. En fait, nous nous plaçons dans le cadre de ce qu’on appelle l’Électrodynamique des milieux continus [Land84].

Lois de comportement

Dans un milieu matériel donné, les différents champs constituant le champ électromagnétique sont liés entre eux par les caractéristiques physiques du matériau. Ces relations sont modélisées par ce qu’on appelle les lois de comportement.

En ce qui nous concerne, on en distinguera trois types :


Lois de comportement magnétique

Matériaux non-magnétiques (amagnétiques)

Dans un milieu non magnétique tel que le vide (ou l’air), mais aussi dans les isolants ou conducteurs électriques classiques (cuivre, aluminium, etc…), l’induction ${\bf b}$ est directement proportionnelle au champ magnétique ${\bf h}$ par :

$$\boxed{{\bf b} = \mu_0\,{\bf h}}$$

Où $\mu_0$ est la perméabilité magnétique du vide :

$$ \mu_0 = 4 \pi~10^{-7}~~\text{H}\cdot\text{m}^{-1} $$
Information

En réalité, hormis le vide, un matériau est souvent légèrement diamagnétique (tendance à repousser le champ d’induction) ou paramagnétique (tendance à attirer le champ d’induction). On a une relation de type ${\bf b} = \mu_0\,\mu_r~{\bf h}$ avec $\mu_r$ très légèrement inférieur ou supérieur à 1. En pratique, ces effets sont suffisamment faibles pour être négligés.

Matériaux ferromagnétiques

Ce sont des matériaux dans lesquels apparaît une aimantation ${\bf m}$ (en $\text{A}\cdot\text{m}^{-1}$) lorsqu’ils sont soumis à un champ magnétique ${\bf h}$.
La loi correspondante est :

$${\bf b} = \mu_0\,({\bf h} + {\bf m})$$

L’évolution de la valeur de l’induction, dans la direction privilégiée, en fonction de celle du champ décrit alors un cycle d’hystérésis comme sur la figure ci-dessous :

Exemple de cycle d'hystérésis

Sur la figure, est également représentée la courbe de première aimantation en bleue, ainsi que :

  • la valeur de l’induction rémanente $B_r$,
  • la valeur du champ coercitif $H_c$.

L’aimantation ${\bf m}$ s’exprime elle-même en fonction de ${\bf h}$ par :

$$ {\bf m} = {\bf m_0} + \chi_m\,{\bf h}$$

avec :

  • $\chi_m$ : susceptibilité magnétique du matériau (sans unité, peut dépendre de ${\bf h}$),
  • ${\bf m_0}$ : aimantation permanente du matériau (en $\text{A}\cdot\text{m}^{-1}$).
Information

On pourrait retrouver les expressions reliant ${\bf m_0}$ et $\chi_m$ à $B_r$ ou $H_c$.

Matériaux ferromagnétiques doux

Les matériaux doux sont caractérisés par un cycle très étroit, comme par exemple :

Exemple de cycle d'hystérésis pour un matériau doux

Les valeurs de champ coercitif ou d’induction rémanente sont suffisamment faibles pour que le cycle puisse être assimilé à une courbe passant par l’origine, dont l’allure peut se représenter comme ci-dessous :

Exemple de courbe B(H)

L’aimantation permanente du matériau est négligeable, et on en déduit :

$$\boxed{{\bf b} = \mu_0\,\underbrace{(1+\chi_m)}_{\displaystyle\mu_r}\,{\bf h} = \mu\,{\bf h}}$$

$\mu$ est la perméabilité magnétique du matériau (en $\text{H}\cdot\text{m}^{-1}$), elle dépend généralement du champ : $\mu({\bf h})$.

Dans la suite, nous utiliserons deux types de modèles :

  1. Le modèle linéaire : le plus simple, qui consiste à approximer la courbe par sa pente à l’origine. Ainsi la perméabilité est considérée comme constante égale à $\mu_0\,\mu_r$ où la valeur de la perméabilité relative $\mu_r$ est celle correspondant à de faibles valeurs de champ.
  2. Le modèle non-linéaire : lorsque les champs atteignent des valeurs conséquentes, le modèle précédent n’est plus satisfaisant et on utilise directement la courbe $B(H)$ ci-dessus. En général, elle est traitée par interpolation de valeurs tabulées issues de la mesure.

C’est ce type de matériaux qui est utilisé pour les circuits magnétiques des applications qui nous intéresseront : inductances, transformateurs, actionneurs, machines tournantes…

Matériaux ferromagnétiques durs (aimants)

À l’inverse des précédents, les ferromagnétiques durs sont caractérisés par un cycle d’hystérésis très large, comme :

Exemple de cycle d'hystérésis pour un matériau dur

En plus des grandeurs précédentes, on notera la valeur remarquable $H_{ci}$ correspondant au champ coercitif irréversible (en $\text{A}\cdot\text{m}^{-1}$). Cette valeur est la valeur de champ au delà de laquelle l’aimantation permanente s’inverse.

Dans la suite, on se situera toujours sur la partie linéaire correspondant à la partie haute du cycle. Par substitution, on a :

$$ {\bf b} = \mu_0\,({\bf h}+\chi_m\,{\bf h}+{\bf m_0})$$

Qui s’écrit :

$$\boxed{{\bf b} = \mu_0\underbrace{(1+\chi_m)}_{\displaystyle\mu_{ra}}\,{\bf h}+\underbrace{\mu_0\,{\bf m_0}}_{\displaystyle{\bf b_r}}}$$

Avec :

  • $\mu_{ra}$ : perméabilité relative de l’aimant (légèrement supérieure à 1)
  • ${\bf b_r}$ : induction rémanente (vectorielle)

Lois de comportement électrique

Elles sont valables pour des matériaux conducteurs électriques. On peut distinguer deux cas.

Milieux conducteurs ohmiques

Cette catégorie correspondant à l’ensemble des conducteurs que nous verrons par la suite : principalement des métaux comme le cuivre, l’aluminium, le laiton, les aciers, etc…

La loi de comportement, y est simplement :

$$\boxed{{\bf e} = \rho\,{\bf j}}$$

où $\rho$ est la résistivité électrique du matériau (en $\Omega\cdot\text{m}$).
On pourra éventuellement lui préférer la relation inverse (strictement équivalente) :

$$\boxed{{\bf j} = \sigma\,{\bf e}}$$

avec $\sigma = \frac{1}{\rho}$, la conductivité électrique du milieu (en $\text{S}\cdot\text{m}^{-1}$).

Souvent, les deux relations ci-dessus ne sont pas linéaires car la résistivité et (donc) la conductivité dépendent fortement de la température. Par exemple, pour la conductivité du cuivre :

Évolution de la conductivité du cuivre en fonction de la température

Milieux supraconducteurs

Ce sont des matériaux qui, dans les bonnes conditions (de température et de champs) présentent une résistivité électrique nulle ou quasi-nulle. Il sont caractérisés par une loi de comportement du type :

$$ {\bf e} = E_c \left(\frac{ \lVert{\bf j} \lVert}{J_c}\right)^n \frac{{\bf j}}{ \lVert {\bf j} \rVert}$$

où $E_c$ et $J_c$ sont respectivement le champ et la densité de courant critiques du matériau.

Information

En réalité, la loi ci-dessus fait intervenir d’autre phénomènes couplés car $J_c$ et $n$ dépendent des valeurs de l’induction et de la température.
Mais, dans le cadre de ce cours, nous n’aborderons malheureusement pas l’étude des supraconducteurs faute de temps…


Lois de comportement diélectriques

Un milieu diélectrique est un milieu isolant (non-conducteur du courant) qui peut se polariser électriquement lorsqu’il est soumis à un champ électrique (il est constitué de dipôles électriques). C’est le cas par exemple du verre, de céramiques (dont les céramiques piézoélectriques), du polypropylène, du mica, du téflon, etc… D’un point de vue « Loi de comportement », on peut faire une analogie avec les milieux magnétiques précédents.

Matériaux non-diélectriques

Dans le cas du vide, ou de nombreux autres milieux non-diélectriques comme les conducteurs ou matériaux magnétiques. La relation entre l’induction et le champ électrique est simplement :

$$\boxed{{\bf d} = \varepsilon_0\,{\bf e}}$$

où $\epsilon_0$ est la permittivité électrique du vide (en $\text{F}\cdot\text{m}^{-1}$), dont la valeur se déduit de la relation :

$$ \varepsilon_0\,\mu_0\,c^2 = 1$$
Astuce

En prenant $3\cdot 10^8~\text{m}\cdot\text{s}^{-1}$ pour la vitesse de la lumière, on approxime souvent $\varepsilon_0$ par :

$$ \varepsilon_0 = \frac{1}{36\,\pi} 10^{-9} ~~\text{F}\cdot\text{m}^{-1}$$

Matériaux diélectriques

Comme pour l’aimantation des matériaux magnétiques, il apparaît une polarisation électrique ${\bf p}$ dans les diélectriques lorsqu’ils sont soumis à un champ électrique ${\bf e}$.
La loi donnant l’induction ${\bf d}$ est alors :

$$ {\bf d} = \varepsilon_0\,{\bf e}+{\bf p}$$

La polarisation peut s’écrire sous la forme :

$$ {\bf p} = \varepsilon_0\,\chi_e\,{\bf e} + {\bf p_0}$$

avec :

  • $\chi_e$ : susceptibilité électrique du matériau (sans unité),
  • ${\bf p_0}$ : polarisation permanente du matériau (en $\text{V}\cdot\text{m}^{-1}$), correspond aux matériaux dit ferroélectriques.

Ainsi, dans une direction privilégiée, la valeur de l’induction en fonction de celle du champ électrique décrit elle-aussi un cycle comme le montre la figure ci-dessous :

Exemple de cycle d'hystérésis d'un diélectrique

Dans le cadre de ce cours, nous ne intéresserons qu’aux cas linéaires où ${\bf p_0} = {\bf 0}$.
On aura donc :

$$\boxed{{\bf d} = \varepsilon_0\,\underbrace{(1+\chi_e)}_{\displaystyle\varepsilon_r}\,{\bf e} = \varepsilon\,{\bf e}}$$

où $\varepsilon_r$ est la permittivité relative du matériau considéré.


Information

Nous avons volontairement éviter de trop détailler cette (déjà trop longue) partie car ce n’est pas l’objectif de l’EC. Nous aurions pu, par exemple, aborder des notions telles que l’anisotropie de certains matériaux ou des couplages multiphysiques supplémentaires (effet Hall, piézoélectricité, etc…), ou alors discuter des semi-conducteurs.
Pour des compléments, je vous renvoie à l’EC de S7 Matériaux pour l’Energie, partie sur les matériaux pour le Génie Électrique.

Équations de Maxwell

Les quatre équations de Maxwell sont les relations fondamentales régissant les lois de l’Électromagnétisme.
Leur forme universelle à l’échelle macroscopique est donnée ci-dessous :

Maxwell-Thomson (MT)

$$\text{div}~{\bf b} = 0$$

Maxwell-Gauss (MG)

$$ \text{div}~{\bf d} = \rho_q$$

Maxwell-Ampère (MA)

$$ {\bf rot}~{\bf h} = {\bf j} + \frac{\partial\,{\bf d}}{\partial t}$$

Maxwell-Faraday (MF)

$$ {\bf rot}~{\bf e} = -\frac{\partial\,{\bf b}}{\partial t}$$
Important !

S’il n’y avait qu’une seule chose à retenir en électromagnétisme et à connaître par cœur, c’est celle-là.

Astuce

Remarque : En prenant la divergence de chaque terme de l’équation de Maxwell-Ampère, on obtient également l’équation de conservation de la charge :

$$ \text{div}~{\bf j} + \frac{\partial\,\rho_q}{\partial t} = 0$$

Remarque

Petit exercice pour faire une pause :
À partir de la forme générale des équations de Maxwell ci-dessus et des lois de comportement précédentes, retrouver comment sont modifiées les équations de Maxwell-Ampère et de Maxwell-Gauss que vous aviez l’habitude d’utiliser en premier cycle.

Cliquer pour afficher un indice

On utilisera les lois de comportement générales : ${\bf b} = \mu_0\,({\bf h}+{\bf m})$ et ${\bf d} = \varepsilon_0\,{\bf e}+{\bf p}$.

Cliquer pour afficher la solution

(MG) :

$$\text{div}\,{\bf e} = \frac{\rho_q - \text{div}\,{\bf p}}{\varepsilon_0}$$

On peut alors définir une densité volumique de “charges liées” : $\rho_p = -\text{div}\,{\bf p}$ pour obtenir :

$$\text{div}\,{\bf e} = \frac{\rho_q+\rho_p}{\varepsilon_0}=\frac{\rho_{\text{total}}}{\varepsilon_0}$$

(MA) :

$$ {\bf rot\,b} = \mu_0\,({\bf j}+{\bf rot\,m})+\mu_0\,\left(\varepsilon_0 \frac{\partial\,{\bf e}}{\partial t}+\frac{\partial\,{\bf p}}{\partial t}\right)$$

On peut alors définir une densité volumique de courant liée : ${\bf j_{liée}} = {\bf j_a}+{\bf j_p}$, faisant intervenir les densités de courant d’aimantation et de polarisation, ${\bf j_a} = {\bf rot\,m}$ et ${\bf j_p} = \frac{\partial\,{\bf p}}{\partial t}$, pour obtenir :

$${\bf rot\,b} = \mu_0\,\underbrace{({\bf j} + {\bf j_a} + {\bf j_p})}_{\bf j_{total}} + \mu_0\,\varepsilon_0\frac{\partial\,{\bf e}}{\partial t}$$

⇝ En pratique, ces formes sont difficilement utilisables.

Approximation des Régimes Quasi-Statiques (ARQS)

Ordres de grandeur

Rappelons que le but du présent module est de vous permettre de modéliser et simuler par éléments finis des dispositifs typiques de l’électrotechnique / électromécanique correspondant donc à de l’électromagnétisme basse-fréquence. La plage de fréquence concernée va donc du continu $(0~\text{Hz})$ à des valeurs de l’ordre de quelques centaines de $\text{kHz}$.

Considérons que le dispositif étudié est alimenté par une source sinusoïdale (de tension ou de courant) de pulsation $\omega$ et que les lois de comportement électrique et diélectrique des milieux matériels présents sont linéaires. En notant $\tau_c$ le rapport des normes des termes $\frac{\partial\,{\bf d}}{\partial t}$ et ${\bf j}$, on obtient après simplifications :

$$ \tau_c = \frac{\varepsilon_0\,\varepsilon_r\,\omega}{\sigma}$$

La table ci-dessous donne quelques valeurs caractéristiques :

Matériau $\sigma~(\text{S}\cdot\text{m}^{-1})$ $\varepsilon_r$ $\tau_c$ @ $1\,\text{MHz}$
Cuivre $58~10^{6}$ $1$ $9,93~10^{-13}$
Aluminium $37,7~10^{6}$ $1$ $1,48~10^{-12}$
Fer pur $10,4~10^{6}$ $1$ $5,35~10^{-12}$
Eau salée $5$ $80$ $8,90~10^{-4}$

On constate que, dans tous ces cas, le terme $\displaystyle\frac{\partial\,{\bf d}}{\partial t}$ est clairement négligeable devant la densité de courant ${\bf j}$.

Dans la suite, nous le négligerons donc toujours, et nous nous placerons donc systématiquement dans ce qu’on appelle l’Approximation des Régimes Quasi-Statiques (ARQS).

Équations de Maxwell dans l’ARQS

Ainsi, la forme des équations de Maxwell que nous résoudrons dans ce cours est celle dans le cadre de l’ARQS, donnée ci-dessous :

Important !

Équations de Maxwell dans l’ARQS :

$$\left\{\begin{aligned} \text{div}\,{\bf b} &= 0 & \text{(MT)} \\ \text{div}\,{\bf d} &= \rho_q & \text{(MG)} \\ {\bf rot\,h} &= {\bf j} & \text{(MA)} \\ {\bf rot\,e} &= -\frac{\partial\,{\bf b}}{\partial t}~~~ & \text{(MF)} \end{aligned}\right.$$
Remarque

On remarque que désormais l’équation de Maxwell-Gauss est totalement découplée des autres.

Astuce

La divergence appliquée à (MA), nous donne la loi des nœuds locale :

$$\boxed{\text{div}\,{\bf j} = 0}$$

Branches de l’Électromagnétisme dans l’ARQS

Plusieurs cas particuliers peuvent se présenter en fonction de la nature ou du type de source. Chacun définit un sous-domaine de l’électromagnétisme (en basse fréquence).

Électrostatique

L’Électrostatique porte sur la distribution de champ électrique due à des charges statiques ou des différences de potentiel électrique.

Les équations qui y interviennent sont donc :

$$\left\{\begin{aligned} &\text{div}\,{\bf d} = \rho_q \\ &{\bf rot}\,{\bf e} = {\bf 0} \\ &{\bf d} = \varepsilon_0 \varepsilon_r\,{\bf e} \end{aligned}\right.$$

Nous résoudrons ici certains problèmes correspondants.

Électrocinétique

L’Électrocinétique concerne la distribution de la densité de courant à l’intérieur des conducteurs (lorsque les effets magnétiques sont négligeables : en statique, ou à fréquence suffisamment faible).

Les équations qui y interviennent sont donc :

$$\left\{\begin{aligned} &{\bf rot}\,{\bf e} = {\bf 0} \\ &\text{div}\,{\bf j} = 0 \\ &{\bf j} = \sigma\,{\bf e} \end{aligned}\right.$$

Nous résoudrons ici certains problèmes correspondants.

Magnétostatique

La Magnétostatique, quand à elle, traite de la distribution de champ magnétique créé par une densité de courant constante et/ou des aimants permanents.

Les équations qui y interviennent sont donc :

$$\left\{\begin{aligned} &{\bf rot}\,{\bf h} = {\bf j} \\ &\text{div}\,{\bf b} = 0 \\ &{\bf b} = \mu\,{\bf h} ~(+ {\bf b_r}) \end{aligned}\right.$$

La densité de courant ${\bf j}$ sera soit imposée comme densité de courant source circulant dans des inducteurs (${\bf j_s}$), soit issue d’une résolution électrocinétique (cf ci-dessus).

Nous résoudrons ici certains problèmes correspondants.

Magnétodynamique

Enfin, la Magnétodynamique s’occupe des distributions de champ magnétique et de courant induit dans les conducteurs issues de sources de courant variant dans le temps et/ou de sources statiques (courant continu ou aimants permanents) en mouvement.

Les équations qui y interviennent sont donc :

$$\left\{\begin{aligned} &{\bf rot}\,{\bf h} = {\bf j} \\ &\text{div}\,{\bf b} = 0 \\ &{\bf rot\,e} = -\frac{\partial\,{\bf b}}{\partial t} \\[0.5em] &{\bf b} = \mu\,{\bf h} ~(+ {\bf b_r}) \\ &{\bf j} = \sigma\,{\bf e} \end{aligned}\right.$$

Nous verrons ici comment résoudre certains problèmes correspondants.

Astuce

Pour traiter les problèmes avec des conducteurs en mouvement, il est parfois plus utile d’utiliser la loi d’Ohm locale généralisée :

$${\bf j} = \sigma\,({\bf e} + {\bf v}\wedge{\bf b})$$

Celle-ci ne contredit pas la loi de comportement électrique car elle est exprimée dans le référentiel de l’observateur, il y a donc toujours $~{{\bf j} = \sigma\,{\bf e}}~$ dans le référentiel lié au conducteur (${{\bf v}={\bf 0}}$). L’intérêt est de pouvoir transformer, dans certains cas, le problème initial en un problème de magnétostatique plus simple à résoudre. Si cela vous intéresse, vous pouvez consulter l’exemple détaillé dans cet article.

Pour illustrer cette remarque, et faire une petite pause, je vous propose une vidéo expliquant le principe de fonctionnement d’un ralentisseur Telma, dispositif dont le fonctionnement est un parfait exemple de problème magnétodynamique qu’on peut résoudre avec une formulation statique avec la loi d’Ohm locale généralisée :

Copyrigtht : Telma - https://fr.telma.com


Information

Il existe un cas particulier que nous n’aborderons pas dans le cadre de ce cours, mais dans lequel on ne peut pas négliger le terme $\frac{\partial\,{\bf d}}{\partial t}$ bien que correspondant à des applications en basse fréquence et donc entrant dans le cas quasi-statique.
En effet certains matériaux peuvent être à la fois conducteurs (avec des conductivités assez faibles mais non nulles) et posséder une perméabilité relative assez élevée. Les semi-conducteurs rentrent dans ce cadre par exemple, mais aussi beaucoup de tissus biologiques comme ceux des organes humains. On peut aussi s’intéresser à des problèmes comportant, à la fois, des milieux conducteurs et des isolants dans lesquels on cherche à calculer les distributions de champ électrique et de densité de courant en s’affranchissant complètement des aspects magnétique. On appelle parfois ce domaine d’étude Électrodynamique ou Modèle électrique quasi-statique.

Les équations qui y interviennent sont donc :

$$\left\{\begin{aligned} &{\bf rot}\,{\bf e} = {\bf 0} \\ &\text{div}\,\left({\bf j}+\frac{\partial\,{\bf d}}{\partial t}\right) = 0 \\ & {\bf j} = \sigma\,{\bf e} \\&{\bf d} = \varepsilon\,{\bf e} \end{aligned}\right.$$

Mais, comme dit ci-dessus, les applications concernées n’entrent pas dans le cadre de ce module.

Potentiels électriques et magnétiques

On se place dans un domaine $\Omega$ (ouvert étoilé quelconque de $\mathbb{R}^3$), et on notera $\Omega_c \subset \Omega$ le sous-domaine conducteur en présence de courants. Nous allons voir que les champs définis précédemment peuvent découler de différents potentiels.


Potentiel vecteur magnétique ${\bf a}$

Prenons comme point de départ l’équation de Maxwell-Thomson dans ce domaine et regardons ce qu’elle implique :

$$\text{div}\,{\bf b} = 0 \Leftrightarrow \exists\,{\bf a}\in \Omega : {\bf b} = {\bf rot\,a}$$

${\bf a}$ est appelé potentiel vecteur magnétique.

Important !

Attention le potentiel vecteur ${\bf a}$ ainsi défini n’est pas unique ! Il est défini à un champ de gradient près.
En effet, soit ${\bf a}$ tel que ${\bf b} = {\bf rot\,a}$, alors :

$$ \forall u \in \Omega,~{\bf b} = {\bf rot}\,\underbrace{\left({\bf a}+{\bf grad}\,u\right)}_{\displaystyle{\bf a'}} = {\bf rot\,a}$$

Le potentiel vecteur ${\bf a'}$ convient donc lui-aussi.

Pour le rendre unique, il est donc nécessaire de rajouter une condition de jauge. Dans l’ARQS, la plus connue est la jauge de Coulomb :

$$\text{div}\,{\bf a} = 0$$

Mais il en existe d’autres parfois plus pratiques ou efficaces (d’un point de vue numérique), nous y reviendrons dans la troisième partie du module.

Astuce

Même avec la condition de jauge, on remarque que le potentiel est encore défini à une constante près. Ceci ne sera pas un souci dès lors qu’on utilisera des conditions aux limites appropriées.


Potentiel scalaire électrique $v$

Cas de problèmes magnétiques

Dans le cas de problèmes magnétiques, nous avons besoin de connaître les sources, donc ${\bf j}$, donc ${\bf e}$, dans les domaines conducteurs ($\Omega_c$).

Substituons alors l’expression précédente dans l’équation de Maxwell-Faraday :

$${\bf rot\,e} = -\frac{\partial}{\partial t}\,({\bf rot\,a}) \Leftrightarrow {\bf rot}\,\left({\bf e} + \frac{\partial\,{\bf a}}{\partial t}\right) = 0$$$$\Leftrightarrow \exists~v \in \Omega_c : {\bf e} + \frac{\partial\,{\bf a}}{\partial t} = -{\bf grad}\,v$$

Soit :

$$\exists~v \in \Omega_c : {\bf e} = -{\bf grad}\,v - \frac{\partial\,{\bf a}}{\partial t}$$


$v$ est appelé potentiel scalaire électrique.

Remarque

On remarquera que l’expression ci-dessus reste valable an remplaçant ${\bf a}$ par ${\bf a'} = {\bf a} + {\bf grad}\,u$, et $v$ par $\displaystyle v' = v + \frac{\partial\,u}{\partial t}$.

Cas de problèmes électrostatiques ou électrocinétiques

Pour des problèmes électrostatiques ou électrocinétiques, nous voulons déterminer ${\bf e}$ (et ${\bf d}$ ou ${\bf j}$) dans tout le domaine d’étude.

Alors, partant de l’équation de Maxwell-Faraday en statique, nous avons directement :

$${\bf rot\,e} = {\bf 0} \Leftrightarrow \exists~v \in \Omega : {\bf e} = -{\bf grad}\,v$$

avec $v$, le potentiel scalaire électrique.


Potentiel vecteur électrique ${\bf t}$

Nous avons déjà vu que l’équation Maxwell-Ampère impliquait la loi de nœuds locale. En partant de cette dernière, nous avons :

$$\text{div}\,{\bf j} = 0 \Leftrightarrow \exists~{\bf t} \in \Omega_c : {\bf j} = {\bf rot\,t}$$


${\bf t}$ est appelé potentiel vecteur électrique.

Remarque

On veillera à ne pas confondre le potentiel ${\bf t}$ et la variable temps $t$…

Important !

Là encore, le potentiel vecteur ainsi défini n’est pas unique, et il sera nécessaire de rajouter des conditions pour pouvoir le déterminer.
Dans le troisième chapitre, Nous verrons aussi que, parfois, nous préférerons travailler avec un champ source (noté ${\bf h_s}$) défini lui-aussi par ${\bf j} = {\bf rot\,h_s}$ soit dans $\Omega$ entier, soit dans un sous-domaine contenant $\Omega_c$, soit dans $\Omega_c$ auquel on ajoutera d’éventuelles coupures.


Potentiel scalaire magnétique ${\bf \phi}$

En utilisant le potentiel ${\bf t}$, on peut développer Maxwell-Ampère comme :

$$ {\bf rot\,h} = \left\{\begin{array}{c l} {\bf rot\,t}~ &\text{dans}~ \Omega_{c} \\\\ {\bf 0}~ &\text{dans}~ \Omega\setminus\Omega_{c} \end{array}\right.$$

Ainsi :

$$\left\{\begin{array}{r l} {\bf rot}\,({\bf h - t}) = {\bf 0}~ &\text{dans}~ \Omega_c\\\ {\bf rot\,h} = {\bf 0}~ &\text{dans}~ \Omega\setminus\Omega_c\end{array}\right.$$$$\Leftrightarrow\exists~\phi\in\Omega : \left\{\begin{array}{l l}{\bf h}={\bf t}-{\bf grad}\,\phi & \text{dans}~ \Omega_c\\\ {\bf h}= -{\bf grad}\,\phi & \text{dans}~ \Omega\setminus \Omega_c\end{array}\right.$$

$\phi$ est appelé potentiel scalaire magnétique.

Astuce

Dans le cas d’un problème sans courant, par exemple lorsque les seules sources de champ sont des aimants permanents, on a directement :

$$\exists~\phi\in\Omega : {\bf h} = -{\bf grad}\,\phi$$

Lois globales

On considère un milieu matériel quelconque de volume $V$ de bord $\partial V = S$ représenté par la figure ci-dessous.

Représentation schématique du domaine considéré.


Conservation du flux

En appliquant le théorème de la divergence (théorème de Green-Ostrogradski) à l’induction magnétique ${\bf b}$ sur le volume $V$, on obtient :

$$\iiint_{V} \text{div}\,{\bf b}~\text{d} V = \oiint_{S} {\bf b}\cdot{\bf d S}$$

D’après l’équation de Maxwell-Thomson, on a donc :

$$\boxed{\oiint_S {\bf b}\cdot{\bf d S} = 0}$$

Ou encore :

$$\underbrace{\iint_{S_1} {\bf b}\cdot{\bf d S_1}}_{\displaystyle\Phi_1} = - \underbrace{\iint_{S_2} {\bf b}\cdot{\bf d S_2}}_{\displaystyle\Phi_2}$$

Où $\Phi_1$ et $\Phi_2$ sont respectivement les flux de ${\bf b}$ à travers $S_1$ et $S_2$.

$\implies {\bf b}$ est à flux conservatif.


Théorème de Gauss

En appliquant le même théorème à l’induction électrique ${\bf d}$ sur le même volume $V$, et en y injectant l’équation de Maxwell-Gauss :

$$\oiint_S {\bf d}\cdot{\bf dS} = \iiint_V \text{div}\, {\bf d}~\text{d} V = \iiint_V \rho_q ~ \text{d} V $$

Soit :

$$\boxed{\oiint_S {\bf d}\cdot{\bf dS} = Q_V}$$

Où $Q_V$ est la charge électrique totale contenue dans le volume $V$.


Théorème d’Ampère

Appliquons maintenant le théorème de Stokes au champ magnétique ${\bf h}$ sur le contour $C$ et reportons y l’équation de Maxwell-Ampère :

$$\oint_C {\bf h}\cdot{\bf d l} = \iint_{S_1} {\bf rot}\,{\bf h} \cdot {\bf d S_1} = \iint_{S_1} {\bf j} \cdot {\bf d S_1}$$

Soit :

$$\boxed{\oint_C {\bf h}\cdot{\bf d l} = I_{S_1}}$$

Où $I_{S_1}$ représente le courant total traversant la surface $S_1$ (courant enlacé par le contour $C$).


Loi de Lenz-Faraday

Appliquons le même théorème au champ électrique ${\bf e}$, toujours sur le contour $C$ :

$$\oint_C {\bf e}\cdot{\bf d l} = \iint_{S_1} {\bf rot}\,{\bf e} \cdot {\bf d S_1}$$

En utilisant l’équation de Maxwell-Faraday, on obtient :

$$\oint_C {\bf e}\cdot{\bf d l} = - \iint_{S_1} \frac{\partial\,{\bf b}}{\partial t}\cdot{\bf d S_1}$$

En considérant que $C$ reste immobile dans le référentiel d’étude, on en déduit :

$$\oint_C {\bf e}\cdot{\bf d l} = - \frac{\text{d}}{\text{d} t} \iint_{S_1} {\bf b}\cdot{\bf d S_1} $$

Soit :

$$\boxed{\oint_C {\bf e}\cdot{\bf d l} = - \frac{\text{d}\,\Phi_1}{\text{d} t} }$$

Où : $\oint_C {\bf e}\cdot{\bf d l}$ est la force électromotrice (f.é.m $\mathcal{E}$).

Information

Une bonne généralisation aux cas de circuits en mouvement se trouve dans [Four85].


Loi des nœuds

On a vu que la densité de courant ${\bf j}$ était elle-aussi à divergence nulle (par l’équation de Maxwell-Ampère). Par analogie avec l’induction magnétique, on obtient ainsi :

$$\boxed{\oiint_S {\bf j}\cdot{\bf d S} = 0}$$

Soit :

$$\underbrace{\iint_{S_1} {\bf j}\cdot{\bf d S_1}}_{\displaystyle I_1} + \underbrace{\iint_{S_2} {\bf j}\cdot{\bf d S_2}}_{\displaystyle I_2} = 0$$

$\Longrightarrow$ C’est la loi des nœuds !


Loi de Biot et Savart

Dans le cas particulier de milieux non-magnétiques (donc où ${\bf b} = \mu_0\,{\bf h}$), nous disposons d’une formule permettant de calculer une valeur locale de l’induction (au point ${\bf x_0}$) à partir de la distribution de courant source (supposée contenue dans le volume $V_s$) :

$$\boxed{{\bf b}({\bf x_0}) = \frac{\mu_0}{4\,\pi} \iiint_{V_s} \frac{{\bf j}({\bf x})\wedge({\bf x_0}-{\bf x})}{ \lVert {\bf x_0}-{\bf x} \rVert^3}~\text{d} V_{(\bf x)}}$$
Remarque

En réalité, la formule ci-dessus est une généralisation de la Loi de Biot et Savart initialement énoncée pour un circuit filiforme.

On dispose de formules analogues, pour :

  • le potentiel vecteur magnétique : $${\bf a}({\bf x_0}) = \frac{\mu_0}{4\,\pi} \iiint_{V_s} \frac{{\bf j}({\bf x})}{\lVert {\bf x_0}-{\bf x} \rVert}~\text{d} V_{(\bf x)}$$
  • le champ électrique : $${\bf e}({\bf x_0}) = \frac{1}{4\,\pi\,\varepsilon_0} \iiint_{V_s} \frac{\rho_q({\bf x})\cdot({\bf x_0}-{\bf x})}{ \lVert {\bf x_0}-{\bf x} \rVert^3}~\text{d} V_{(\bf x)} $$
  • le potentiel scalaire électrique : $$v({\bf x_0}) = \frac{1}{4\,\pi\,\varepsilon_0} \iiint_{V_s} \frac{\rho_q({\bf x})}{ \lVert {\bf x_0}-{\bf x} \rVert}~\text{d} V_{(\bf x)} $$
Astuce

En pratique, le principal intérêt de ce type de formule est de, parfois, permettre de calculer le champ source ou le potentiel vecteur électrique dans une formulation en potentiel scalaire magnétique.

Conditions d'interfaces

Composantes normales

Considérons deux milieux $\#1$ et $\#2$ séparés par une surface $S$, la normale à la surface étant dirigée de $\#1$ vers $\#2$. Pour un infiniment petit quelconque $u$, on définit un petit cylindre de volume $v_c$, de rayon $r = o(u)$ et de hauteur $l = o(u^2)$ centré sur $S$.
Une représentation schématique est donnée par la figure ci-dessous.

Représentation schématique de la configuration considérée (pour les composantes normales).

En notant $s_1$ et $s_2$ les bases du cylindre contenues respectivement dans $\#1$ et $\#2$, et $s_l$ sa surface latérale, on a :

$$\left\{\begin{aligned}s_1 = s_2 = s = o(u^2)\\ s_l = o(u^3)\end{aligned}\right.$$

Continuité de la composante normale de ${\bf b}$

Appliquons la conservation du flux à notre cylindre :

$$\oiint_{\partial v_c} {\bf b}\cdot{\bf d S} = 0$$

Soit, en développant et en multipliant par $\frac{1}{s}$ :

$$\frac{1}{s} \iint_{s_1} {\bf b}\cdot(-{\bf n_{12}})~ \text{d} S + \frac{1}{s} \iint_{s_2} {\bf b}\cdot{\bf n_{12}}~\text{d} S + \frac{1}{s} \iint_{s_l} {\bf b}\cdot{\bf d S} = 0$$

Or :

$$\frac{1}{s} \iint_{s_l} {\bf b}\cdot{\bf d S} \leq \max_{s_l}( \lVert {\bf b} \rVert)\,\frac{s_l}{s} = o(u)$$

Et :

$$\left\{\begin{aligned}\lim_{u \to 0}\left(\frac{1}{s} \iint_{s_1} {\bf b}\cdot(-{\bf n_{12}})~ \text{d} S\right) &= - {\bf b_1}\cdot{\bf n_{12}} \\ \lim_{u \to 0}\left(\frac{1}{s} \iint_{s_2} {\bf b}\cdot{\bf n_{12}}~\text{d} S\right) &= {\bf b_2}\cdot{\bf n_{12}}\end{aligned}\right.$$

Où ${\bf b_1}$ et ${\bf b_2}$ sont les valeurs de l’induction au centre du cylindre approché respectivement depuis les milieux $\#1$ ou $\#2$.

Ainsi par passage à la limite dans l’expression générale, on obtient :

$$\boxed{{\bf n_{12}}\cdot({\bf b_2}-{\bf b_1}) = 0}$$

On a donc continuité de la composante normale de l’induction magnétique ${\bf b}$ à travers la surface.


Saut de la composante normale de ${\bf d}$

Appliquons le raisonnement précédent en partant du théorème de Gauss :

$$\oiint_{\partial v_c} {\bf d}\cdot{\bf dS} = \iiint_{v_c} \rho_q\,\text{d} V$$

Le terme de gauche peut-être traité exactement de la même façon que pour ${\bf b}$. Pour le terme de droite, on peut écrire :

$$\frac{1}{s} \iiint_{v_c} \rho_q\,\text{d} V = \frac{1}{s} \iint_{s} \left(\int_{-\frac{l}{2}}^{\frac{l}{2}} \rho_q\,\text{d}{l}\right) \text{d} S$$

En définissant localement la densité surfacique de charge $\sigma_q$ (densité de charge portée par la surface $s$, en $\text{C}\cdot\text{m}^{-2}$) par :

$$\sigma_q = \lim_{l \to 0} \int_{-\frac{l}{2}}^{\frac{l}{2}} \rho_q\,\text{d}{l}~,$$

par passage à la limite ($u \to 0$), on obtient :

$$\boxed{{\bf n_{12}}\cdot({\bf d_2}-{\bf d_1}) = \sigma_q}$$

On a donc un saut de la composante normale de ${\bf d}$ à travers $S$.

Remarque

On trouve des densités surfaciques de charge dans tout conducteur à l’équilibre électrostatique.

Astuce

En l’absence de densité surfacique de charge : on a évidemment continuité de la composante normale de l’induction électrique ${\bf d}$.


Continuité de la composante normale de ${\bf j}$

Dans l’ARQS, puisque $\text{div}\,{\bf j} = 0$, on peut appliquer le même raisonnement que pour ${\bf b}$, et ainsi :

$$\boxed{{\bf n_{12}}\cdot({\bf j_2}-{\bf j_1}) = 0}$$

En particulier, sur le bord d’un conducteur isolé, ${\bf j_2}$ étant nulle à l’extérieur, on en déduit que la densité de courant est tangente à la surface.


Composantes tangentielles

En prenant une coupe de la configuration précédente, on obtient celle décrite par la figure ci-après.

Représentation schématique de la configuration considérée (pour les composantes tangentielles).

Dans ce plan de coupe, on choisit arbitrairement un chemin rectangulaire $\mathscr{C}$, de sommets $A$, $B$, $C$ et $D$. Les segments $AB$ et $CD$ sont de longueurs $l_1 = l_2 = l = o(u)$ et portés par un vecteur unitaire quelconque orthogonal à la normale à la surface : ${\bf u_l}\perp{\bf n_{12}}$. Les segments $BC$ et $DA$ sont de longueur $\alpha = o(u^2)$ et portés par ${\bf n_{12}}$.


Continuité de la composante tangentielle de ${\bf e}$

La loi de Lenz-Faraday appliquée au contour $\mathscr{C}$ et multipliée par un facteur $\displaystyle\frac{1}{l}$, nous donne :

$$\frac{1}{l} \oint_{\mathscr{C}} {\bf e}\cdot{\bf dl} = \frac{1}{l} \iint_{s_l} -\frac{\partial\,{\bf b}}{\partial t}\cdot{\bf d S}$$

En développant le membre de gauche, on obtient :

$$\begin{aligned}\frac{1}{l} \oint_{\mathscr{C}} {\bf e}\cdot{\bf dl} = \frac{1}{l} \int_{l_1}{\bf e}\cdot{\bf u_l}\,\text{d} l ~+ &\frac{1}{l} \int_{l_2}{\bf e}\cdot(-{\bf u_l})\,\text{d} l \\ &+ \underbrace{\frac{1}{l}\left(\int_{B}^{C}{\bf e}\cdot{\bf n_{12}}\,\text{d} l + \int_{D}^{A}{\bf e}\cdot(-{\bf n_{12}})\,\text{d} l\right)}_{\displaystyle\lambda}\end{aligned}$$

Or :

$$\lambda \leq \left(\max_{BC}( \lVert {\bf e} \rVert) + \max_{DA}( \lVert {\bf e} \rVert)\right)\frac{\alpha}{l} = o(u) $$

De plus :

$$\begin{aligned} {\left| \frac{1}{l} \iint_{s_l} -\frac{\partial\,{\bf b}}{\partial t} \cdot {\bf d S} \right|} = \frac{1}{l} & \iint_{s_l} \frac{\partial\,{\bf b}}{\partial t}\cdot({\bf u_l}\wedge{\bf n_{l2}})\,\text{d} S \\ & \leq \max_{s_l}\left( \left\| \frac{\partial\,{\bf b}}{\partial t} \right\| \right)\,\alpha = o(u^2) \end{aligned}$$

Finalement, on a :

$$\frac{1}{l} \int_{l_1}{\bf e}\cdot{\bf u_l}\,\text{d} l + \frac{1}{l} \int_{l_2}{\bf e}\cdot(-{\bf u_l})\,\text{d} l + o(u) = o(u^2)$$

Par passage à la limite ($u \to 0$), on obtient :

$$({\bf e_1} - {\bf e_2})\cdot{\bf u_l} = 0$$

Où ${\bf e_1}$ et ${\bf e_2}$ sont les valeurs du champ électrique au centre du rectangle approché respectivement depuis les milieux $\#1$ ou $\#2$.

La relation précédente étant valable quelque soit le vecteur ${\bf u_l}\perp{\bf n_{12}}$ choisi, on peut en déduire :

$$\boxed{{\bf n_{12}}\wedge({\bf e_2}-{\bf e_1}) = {\bf 0}}$$

On a donc continuité de la composante tangentielle du champ électrique.


Saut de la composante tangentielle de ${\bf h}$

En appliquant le théorème d’Ampère sur $\mathscr{C}$ et en multipliant chaque terme par un facteur $\frac{1}{l}$ on obtient :

$$\frac{1}{l} \oint_{\mathscr{C}} {\bf h}\cdot{\bf dl} = \frac{1}{l} \iint_{s_l} {\bf j}\cdot{\bf d S}$$

Le terme de gauche peut être traité exactement de la même manière que dans le paragraphe précédent.

Intéressons-nous au terme de droite :

$$\begin{aligned}\frac{1}{l} \iint_{s_l} {\bf j}\cdot{\bf d S} &= \frac{1}{l} \iint_{s_l} {\bf j}\cdot({\bf u_l}\wedge{\bf n_{12}})\,\text{d} S \\\ &= \frac{1}{l} \int_l \left(\int_{\frac{-\alpha}{2}}^{\frac{\alpha}{2}} {\bf j}\,\text{d} \alpha\right)\cdot({\bf u_l}\wedge{\bf n_{12}})\,\text{d} l\end{aligned}$$

En définissant localement la densité surfacique de courant ${\bf j_s}$ (densité de courant portée par la surface $S$, en $\text{A}\cdot\text{m}^{-1}$) par :

$${\bf j_s} = \lim_{\alpha\to 0}\int_{-\frac{\alpha}{2}}^{\frac{\alpha}{2}} {\bf j}\,\text{d} \alpha ~~~,$$

on obtient, par passage à la limite ($u\to 0$) :

$$({\bf h_1}-{\bf h_2})\cdot{\bf u_l} = {\bf j_s}\cdot({\bf u_l}\wedge{\bf n_{12}}) = {\bf u_l}\cdot({\bf n_{12}}\wedge{\bf j_s})$$

Où ${\bf h_1}$ et ${\bf h_2}$ sont les valeurs du champ magnétique au centre du rectangle approché respectivement depuis les milieux $\#1$ ou $\#2$, et ${\bf j_s}$ y est également la valeur de la densité surfacique de courant.

Ainsi, pour tout ${\bf u_l}\perp{\bf n_{12}}$ :

$$({\bf h_1}-{\bf h_2})\cdot{\bf u_l} = ({\bf n_{12}}\wedge{\bf j_s})\cdot{\bf u_l}$$

La densité superficielle de courant ${\bf j_s}$ étant portée par la surface $S$, et donc étant orthogonale à ${\bf n_{12}}$, on peut en déduire :

$$\boxed{{\bf n_{12}}\wedge({\bf h_2}-{\bf h_1}) = {\bf j_s}}$$

On a donc un saut de la composante tangentielle de ${\bf h}$ à travers $S$.

Remarque

En réalité, une densité surfacique de courant n’existe pas physiquement : on a toujours une densité de courant volumique. Cependant, dans certains cas, l’épaisseur de la zone où circule cette densité volumique est suffisamment faible pour l’assimiler à une densité surfacique. On peut citer deux cas fréquents : dans une plaque ou un tube très mince ; sur les bords d’un conducteur siège de courants induits à « haute fréquence ».

Astuce

Sans densité superficielle de courant (donc souvent), il y a continuité de la composante tangentielle de ${\bf h}$.

Grandeurs globales : énergies, flux et forces

De toutes les relations précédentes (Équations de Maxwell et lois de comportement), on peut normalement déduire les champs ${\bf h}$, ${\bf b}$, ${\bf e}$ et ${\bf d}$ à partir des sources ${\bf j}$ et $\rho_q$. Par contre, ils nous manque des informations si on désire déterminer les énergies et les forces dans le système étudié. C’est ce qui va nous intéresser dans cette partie.

  • Énergies

    Tout part de là !

  • Flux

    N'oublions pas que l'induction magnétique est la densité de flux.

  • Forces

    Il faudra un peu d'efforts pour retrouver comment les calculer…

Sous-sections de Grandeurs globales

Grandeurs globales : énergies

Bilan de puissance (échelle locale)

Comme depuis le début, nous allons continuer de travailler à l’échelle locale. Pour ce faire, sortons quelque temps de l’ARQS et introduisons le vecteur de Poynting ${\bf \Pi_p}$, défini par :

$${\bf \Pi_p} = {\bf e}\wedge{\bf h}$$

Pour un système électromagnétique contenu dans un volume $V$ de bord $\partial V = S$, la puissance énergétique $P_{\text{em}}$ apportée sous forme électromagnétique au système est donnée par le flux entrant de ${\bf \Pi_p}$, soit :

$$P_{\text{em}} = \oiint_S {\bf \Pi_p}\cdot {\bf n_e}\,\text{d} S$$

où ${\bf n_e}$ est la normale entrante à la surface.

Ainsi, en réutilisant nos notations et en appliquant le théorème de la divergence :

$$P_{\text{em}} = - \oiint_S {\bf \Pi_p}\cdot {\bf dS} = \iiint_V \underbrace{-\text{div}\,\left({\bf e}\wedge{\bf h}\right)}_{\displaystyle p_{\text{em}}}\,\text{d} V$$

Avec $p_{\text{em}}$ la densité volumique de puissance électromagnétique, qu’on peut développer avec l’identité vectorielle :

$$\text{div}\,\left({\bf e}\wedge{\bf h}\right) = ({\bf rot\,e})\cdot{\bf h}-{\bf e}\cdot({\bf rot\,h})$$

Soit :

$$p_{\text{em}} = -{\bf h}\cdot({\bf rot\,e}) + {\bf e}\cdot({\bf rot\,h})$$

En réinjectant les équations de Maxwell-Ampère et Maxwell-Faraday :

$$\begin{aligned}\displaystyle p_{\text{em}} &= {\bf h}\cdot\frac{\partial\,{\bf b}}{\partial t}+ {\bf e}\cdot\left({\bf j} + \frac{\partial\,{\bf d}}{\partial t}\right) \\ \displaystyle &= \underbrace{{\bf e}\cdot{\bf j}}_{\displaystyle p_j} + \underbrace{{\bf h}\cdot\frac{\partial\,{\bf b}}{\partial t}}_{\displaystyle p_{mag}} + \underbrace{{\bf e}\cdot\frac{\partial\,{\bf d}}{\partial t}}_{\displaystyle p_{el}}\end{aligned}$$

Les différents termes étant :

  • $p_j$ : densité volumique de puissance dissipée par effet Joule
  • $p_{mag}$ : densité volumique de puissance magnétique
  • $p_{el}$ : densité volumique de puissance électrostatique

Pertes Joule

Le premier terme du bilan de puissance précédent permet de calculer $P_J$ la puissance dissipée par effet Joule (production de chaleur). Il n’existe que dans les domaines conducteurs. Si nous regroupons ces derniers dans ce que nous appellerons $V_c$, on aura :

$$P_J = \iiint_{V_c} {\bf e}\cdot{\bf j}~\text{d} V$$

Dans les conducteurs ohmiques, on sait que : ${\bf e} = \rho\,{\bf j}$, ou ${\bf j} = \sigma\,{\bf e}$.

Ainsi, la densité volumique de pertes Joule est :

$$p_j = \rho\, \lVert {\bf j} \rVert^2 = \frac{1}{\sigma}\, \lVert {\bf j} \rVert^2$$

Et les pertes totales :

$$\boxed{P_J = \iiint_{V_c} \rho\, \lVert {\bf j} \rVert^2~\text{d} V}$$

Dans le cas d’un conducteur portant un courant $I$, on peut directement identifier sa résistance $R$ grâce aux pertes Joule, car $P_J = R\,I^2$. Ainsi :

$$\boxed{R = \frac{1}{I^2} \iiint_{V_c} \rho\, \lVert{\bf j}\rVert^2~\text{d} V}$$

Énergies

Énergie et coénergie magnétique

Énergie magnétique

En définissant $w_{mag}$ comme la densité d’énergie magnétique contenu dans le volume $V$, on a :

$$p_{mag} = \frac{\partial\,w_{mag}}{\partial t}$$

La variation élémentaire de densité volumique d’énergie pendant $\text{d} t$ est ainsi :

$$\text{d}\,w_{mag} = p_{mag}\,\text{d} t = {\bf h}\cdot\frac{\partial\,{\bf b}}{\partial t}\,\text{d} t$$

On peut alors en déduire la densité volumique d’énergie magnétique emmagasinée dans le système (à l’instant $t$ correspondant au point de fonctionnement magnétique $({\bf h},{\bf b})$) par :

$$w_{mag} = \int_{t_0}^t {\bf h}\cdot\frac{\partial\,{\bf b}}{\partial t}\,\text{d} t = \int_{0}^{b} {\bf h}\cdot{\bf d b}$$

La borne d’intégration inférieure étant choisie arbitrairement pour correspondre à une « énergie stockée nulle » reflétant l’état initial du système.

Dans le cas particulier de milieux où la loi de comportement magnétique est linéaire (${\bf h}=\nu\,{\bf b}$), on a :

$$ w_{mag} = \int_{0}^{b} \nu\,{\bf b}\cdot{\bf d b} = \frac{\nu}{2} \lVert {\bf b} \rVert^2$$

Soit :

$$\boxed{w_{mag} = \frac{\lVert {\bf b} \rVert^2}{2\,\mu}}$$

Et, dans le cas général :

$$\boxed{w_{mag} = \int_{0}^{b} {\bf h}({\bf b})\cdot{\bf d b}}$$

L’énergie magnétique contenue dans le volume $V$ est ainsi :

$$\boxed{W_{mag} = \left\{\begin{aligned} &\iiint_V \frac{\lVert{\bf b}\rVert^2}{2\,\mu} \,\text{d} V , &\text{en linéaire} \\ ~ & ~ \\ &\iiint_V \left(\int_{0}^{b} {\bf h}({\bf b})\cdot{\bf d b}\right) \,\text{d} V , &\text{en non-linéaire}\end{aligned}\right.}$$

Coénergie magnétique

On peut également définir la densité volumique de coénergie magnétique $\widetilde{w}_{mag}$ par :

$$\widetilde{w}_{mag} + w_{mag} = {\bf h}\cdot{\bf b}$$

Alors :

$$\begin{aligned}\text{d}\,\widetilde{w}_{mag} &= \text{d}\left({\bf h}\cdot{\bf b}\right) - \text{d}\,w_{mag} \\ &= {\bf d h}\cdot{\bf b} + \cancel{{\bf h}\cdot{\bf d b}} - \cancel{{\bf h}\cdot{\bf d b}} \\ &= {\bf b}\cdot{\bf d h}\end{aligned}$$

On en déduit donc :

$$\widetilde{w}_{mag} = \int_{0}^{h} {\bf b}\cdot{\bf d h}$$

Comme précédemment, la borne d’intégration inférieure est choisie arbitrairement pour correspondre à une « énergie stockée nulle » reflétant l’état initial du système.

Dans le cas particulier de milieux où la loi de comportement magnétique est linéaire (${\bf b}=\mu\,{\bf h}$), on a :

$$\widetilde{w}_{mag} = \int_{0}^{h} \mu\,{\bf h}\cdot{\bf d h} = \frac{\mu}{2} \lVert {\bf h} \rVert^2$$

Soit :

$$\boxed{\widetilde{w}_{mag} = \frac{\mu\,\lVert{\bf h}\rVert^2}{2}}$$

Et, dans le cas général :

$$\boxed{\widetilde{w}_{mag} = \int_{0}^{h} {\bf b}({\bf h})\cdot{\bf d h}}$$

La coénergie magnétique contenue dans le volume $V$ est alors :

$$\boxed{\widetilde{W}_{mag} = \left\{\begin{aligned} &\iiint_V \frac{\mu\,\lVert{\bf h}\rVert^2}{2} \,\text{d} V , &\text{en linéaire} \\ ~ & ~ \\ &\iiint_V \left(\int_{0}^{h} {\bf b}({\bf h})\cdot{\bf d h}\right) \,\text{d} V , &\text{en non-linéaire}\end{aligned}\right.}$$

Graphiquement, les deux densités volumique peuvent se représenter (dans le cas d’un matériau isotrope) par la figure ci-dessous.

Représentation des densités volumiques d'énergie et coénergie magnétiques

Remarque

En linéaire, les deux surfaces hachurées ci-dessus sont des triangles de même aire, et on a :

$$\boxed{w_{mag} = \frac{1}{2}\,{\bf h}\cdot{\bf b} = \widetilde{w}_{mag}}$$
Astuce

En linéaire dans l’ARQS, lorsque les sources de champs sont des courants situés dans un sous-volume conducteur $V_c$, nous disposons d’une autre formule de calcul de l’énergie magnétique créée par ces courants reposant sur le potentiel vecteur magnétique.
En effet, d’après ce qui précède, dans ce cas :

$$W_{mag} = \iiint_V \frac{1}{2}\,{\bf h}\cdot{\bf b}\,\text{d} V $$


On peut développer avec une identité vectorielle :

$${\bf h}\cdot{\bf b}={\bf h}\cdot{\bf rot\,a}={\bf rot\,h}\cdot{\bf a}-\text{div}({\bf h}\wedge{\bf a})$$


Ainsi :

$$W_{mag} = \frac{1}{2}\left(\iiint_V {\bf rot\,h}\cdot{\bf a}-\text{div}({\bf h}\wedge{\bf a})\,\text{d} V \right)$$


En réinjectant Maxwell-Ampère et en appliquant le théorème de la divergence, on obtient :

$$W_{mag} = \frac{1}{2}\left(\iiint_{V_c} {\bf a}\cdot{\bf j}~ \text{d} V + \oiint\limits_{S=\partial V} ({\bf a}\wedge{\bf h})\cdot{\bf d S} \right)$$

On notera que l’intégrale volumique se limite au domaine conducteur $V_c$ (seul siège de courants).
Ainsi, pour un système électromagnétique contenu dans un volume choisi suffisamment grand pour que l’influence des sources soient négligeable sur la frontière (${\bf a}$ et/ou ${\bf h}$ nul), on obtient finalement :

$$\boxed{W_{mag} = \frac{1}{2} \, \iiint_{V_c} {\bf a}\cdot{\bf j}~\text{d} V}$$

Cette formule pourra s’avérer très utile en pratique.

Cas particulier des aimants permanents

En présence de matériaux durs tels que les aimants, nous ne sommes plus sur une courbe $b(h)$ passant par l’origine, mais les formules générales précédentes restent valables.

Nous allons juste choisir des bornes inférieures différentes :

  • $b(h=0) = b_r$ pour l’énergie ;
  • $h(b=0) = -h_c$ pour la coénergie.

Graphiquement, on peut ainsi représenter les densités correspondantes sur la figure suivante :

Représentation des densités volumiques d'énergie et coénergie magnétiques dans un aimant

Alors :

$${w}_{mag} = \int_{b_r}^{b} {\bf h}\cdot{\bf d b},~ ~ \text{et} ~ ~\widetilde{w}_{mag} = \int_{-h_c}^{h} {\bf b}\cdot{\bf d h}$$

Dans le cas classique de matériaux très durs où la courbe ci-dessus peut être assimilée à une droite, on a ainsi :

$$\begin{aligned}{w}_{mag} &= \int_{b_r}^{b} \frac{\bf (\bf b-b_r)}{\mu_a}\cdot{\bf d b} \\ & = \frac{1}{\mu_a} \left[\frac{({\bf b-b_r})^2}{2}\right]_{br}^b \\ &= \frac{1}{2\,\mu_a} ({\bf b-b_r})^2 = \frac{\mu_a}{2}\,{\bf h}^2 \end{aligned}$$

On peut faire de même pour la densité volumique de coénergie :

$$\begin{aligned}\widetilde{w}_{mag} &= \int_{-h_c}^{h} \mu_a\,({\bf h+h_c})\cdot{\bf d h}\\\ &=\mu_a \left[\frac{({\bf h+h_c})^2}{2}\right]_{-hc}^h \\ &= \frac{\mu_a}{2} ({\bf h+h_c})^2 = \frac{{\bf b}^2}{2\,\mu_a}\,\end{aligned}$$
Attention

Chose un peu surprenante, l’expression des densités d’énergie et coénergie magnétiques dans un aimant permanent est l’inverse de celles dans les autres matériaux. Soit :

$$\boxed{w_{mag} = \frac{\mu_a\, \lVert {\bf h} \rVert^2}{2}}~ ~ \text{et} ~ ~\boxed{\widetilde{w}_{mag}=\frac{ \lVert {\bf b} \rVert^2}{2\,\mu_a}}$$

Énergie électrostatique

Tout ce que nous avons fait en magnétisme ci-avant, peut se développer également en électrostatique à partie de la densité volumique de puissance $p_{el}$. Plutôt que de tout redévelopper, nous allons procéder par analogie :

  • ${\bf h} \leftarrow {\bf e}$
  • ${\bf b} \leftarrow {\bf d}$
  • $\mu \leftarrow \varepsilon$

Ainsi, en ne considérant que le cas linéaire, nous obtenons, pour les densités volumiques d’énergie et coénergie électrostatiques :

$$\boxed{w_{el} = \frac{ \lVert {\bf d} \rVert^2}{2\,\varepsilon}=\frac{1}{2}\,{\bf e}\cdot{\bf d}=\frac{\varepsilon\, \lVert{\bf e} \rVert^2}{2}=\widetilde{w}_{el}}$$

L’énergie électrostatique contenue dans le système est alors :

$$\boxed{W_{el} = \iiint_V \frac{1}{2}\,\varepsilon\,\lVert{\bf e}\rVert^2~\text{d} V = \widetilde{W}_{el}}$$
Astuce

Nous disposons également d’une formule pour l’énergie basée sur le potentiel scalaire électrique $v$. Considérant que la densité volumique de charge $\rho_q$ se situe dans un sous-volume $V_q$ de $V$, on a :

$$\boxed{W_{el} = \frac{1}{2} \iiint_{V_q} \rho_q\,v~\text{d} V}$$
Remarque

On aurait pu donner l’ensemble des relations possibles en considérant le cas non-linéaire, mais nous ne l’avons pas fait par souci de concision. On peut quand même fournir les densités volumiques d’énergie qui pourront, le cas échéant servir de point de départ :

$$w_{el} = \int_{0}^{d} {\bf e}\cdot{\bf d\,d},~ ~ ~ \text{et} ~ ~ ~ ~\widetilde{w}_{el} = \int_{0}^{e} {\bf d}\cdot{\bf d\,e}$$

Grandeurs globales : flux magnétique

Pour calculer des forces (contre-)électromotrices (f.é.m), déterminer les grandeurs utiles lors d’un couplage avec les équations de circuits électrique, ou tout simplement identifier des inductances équivalentes, nous devrons calculer le flux magnétique traversant nos conducteurs (généralement des enroulements).

Par définition, le flux traversant une surface donnée $S$ est :

$$\varphi = \iint_S {\bf b}\cdot{\bf d S}$$

On peut facilement le calculer en utilisant le potentiel vecteur. En effet, en utilisant le théorème de Stokes :

$$\varphi = \iint_S ({\bf rot\,a})\cdot{\bf d S} = \oint\limits_{C =\partial S} {\bf a}\cdot{\bf d l}$$

Dans certains cas, cette formule est suffisante. Mais lorsque nous aurons des conducteurs avec des sections ne pouvant plus être considérées comme négligeables, il nous faut déterminer le « flux moyen » le traversant.

Prenons l’exemple simple d’une spire circulaire tel que schématisé ci-dessous :

Exemple simple d'une spire (en haut : circuit filiforme, en bas : géométrie réelle).

Si la section du conducteur $S_c$ est très faible, on peut considérer la spire comme un circuit filiforme (représenté en haut de la figure) et appliquer les formules ci-dessous pour calculer le flux à travers la surface en pointillés bleus.

Mais pour une géométrie plus réaliste telle que la vraie spire dessinée en rouge, on doit déterminer le flux moyen la traversant. Un moyen simple d’y parvenir est d’utiliser la valeur moyenne du potentiel vecteur ${\bf a}$ sur une section de conducteur. Soit :

$$\varphi = \int_C \left(\frac{1}{S_c} \iint_{S_c} {\bf a}~\text{d} S\right)\cdot{\bf dl} $$

où $C$ est la longueur centrale de la spire.

On peut ainsi se ramener à l’intégrale volumique sur la spire complète (volume $V_s$) :

$$\varphi = \frac{1}{S_c} \iiint_{V_s} {\bf a}\cdot{\bf u}~\text{d} V$$

${\bf u}$ étant un vecteur unitaire dirigé dans le sens du courant (orthogonal à $S_c$).
Pour un conducteur à section constante et portant un courant stationnaire $I$ :

$${\bf u} = \frac{\bf j}{\lVert{\bf j}\rVert} = \frac{S_c}{I}\,{\bf j}$$

Ainsi :

$$\boxed{\varphi = \frac{1}{I} \iiint_{V_s} {\bf a}\cdot{\bf j} ~\text{d} V}$$
Astuce

L’expression ci-dessus est particulièrement intéressante car elle nous permet de retrouver facilement la relation entre l’énergie magnétique et le flux ou l’inductance. En effet, on a directement :

$$\varphi = \frac{2}{I}\,W_{mag}$$

Soit :

$$\boxed{W_{mag} = \frac{1}{2}\,\varphi\,I}$$

En linéaire, puisque par définition, l’inductance $L$ du conducteur est :

$$ L = \frac{\varphi}{I}$$

On a également l’expression bien connue (valable uniquement en linéaire):

$$\boxed{W_{mag} = \frac{1}{2}\,L\,I^2}$$

Grandeurs globales : forces

Force de Lorentz

Initialement énoncée pour une particule portant une charge élémentaire $q$, la force de Lorentz est donnée par :

$${\bf f} = q\,\left({\bf e} + {\bf v}\wedge{\bf b}\right)$$

Cette expression peut se généraliser au cas d’une distribution volumique de sources (densités volumiques de charge $\rho_q$ et de courant ${\bf j}$) par :

$${\bf f_{em}} = \underbrace{\rho_q\,{\bf e}}_{\displaystyle{\bf f_C}} + \underbrace{{\bf j}\wedge{\bf b}}_{\displaystyle{\bf f_L}}$$

Où la densité volumique de force ${\bf f_{em}}$, se décompose en deux termes :

  1. la densité volumique de force de Coulomb ${\bf f_C}$,
  2. la densité volumique de force de Laplace ${\bf f_L}$.
Attention

La formule ci-dessus n’est valable qu’en l’absence de milieu diélectrique ou ferromagnétique. Pour l’utiliser dans le cas général (même dans l’ARQS), il faudrait rajouter les termes correspondant à la densité de charges liées pour la force de Coulomb, et ceux liés à la densité de courants d’aimantation pour celle de Laplace (les courants induits étant pris en compte dans ${\bf j}$). Soit quelque chose qui pourrait ressembler à :

$${\bf f_{em}} = (\rho_q-\text{div}\,{\bf p})\,{\bf e} + ({\bf j} + {\bf rot\,m})\wedge{\bf b}$$

Ainsi, en dehors du cas particulier du vide (ou de milieux analogues comme l’air), cette formule est difficilement exploitable. C’est pourquoi nous préférerons utiliser une approche énergétique.


Approche énergétique

Aspects thermodynamiques

Le système considéré étant fermé (sans échange de matière avec l’extérieur), le premier principe de la thermodynamique nous permet d’écrire la variation de son énergie interne $\mathcal{U}$ :

$$\text{d}\,\mathcal{U} = \text{d}\,\mathcal{Q} + \text{d}\,\mathcal{W}$$

avec :

  • $\text{d}\,\mathcal{Q}$, la quantité de chaleur fournie par l’extérieur au système,
  • $\text{d}\,\mathcal{W}$, le travail fourni par l’extérieur au système (comprenant l’effet des forces électromagnétiques).

Dans le cas de transformations réversibles, le deuxième principe nous donne :

$$\text{d}\,\mathcal{Q} = T~\text{d}\,\mathcal{S} $$

$T$ et $\mathcal{S}$ étant respectivement la température et l’entropie du système.

L’énergie interne est alors une fonction dont une des variables naturelles est $\mathcal{S}$. Pour faciliter la résolution de certains problèmes, les thermodynamiciens ont l’habitude de définir d’autres grandeurs énergétiques en ajoutant des termes à l’énergie interne.

Ainsi, on peut définir l’énergie libre par :

$$\mathcal{F} = \mathcal{U} - T\,\mathcal{S}$$

On a alors :

$$\begin{aligned}\text{d}\,\mathcal{F} &= \text{d}\,\mathcal{U} - \text{d}\,(T\,\mathcal{S})\\\ &= \cancel{T~\text{d}\,\mathcal{S}} + \text{d}\,\mathcal{W} - \cancel{T~\text{d}\,\mathcal{S}} - \mathcal{S}~\text{d}\,T\end{aligned}$$

Soit :

$$\boxed{\text{d}\,\mathcal{F} = -\mathcal{S}~\text{d}\,T+\text{d}\,\mathcal{W}}$$

Revenons à l’échelle locale en définissant les densités volumiques correspondant à nos grandeurs énergétiques :

$$\left\{\begin{array}{c} \displaystyle \mathcal{f} = \frac{\text{d}\,\mathcal{F}}{\text{d}\,V} \\[3ex] \displaystyle \mathcal{s} = \frac{\text{d}\,\mathcal{S}}{\text{d}\,V} \\[3ex] \displaystyle \mathcal{w} = \frac{\text{d}\,\mathcal{W}}{\text{d}\,V}\end{array}\right.$$

Les variations temporelles correspondantes sont ainsi :

$$\begin{aligned}\frac{\partial\,\mathcal{f}}{\partial t} &= -\mathcal{s}\, \frac{\partial\,T}{\partial t} + \frac{\partial\,\mathcal{w}}{\partial t}\\[2ex] &= -\mathcal{s}\,\frac{\partial\,T}{\partial t} + \frac{\partial\,\mathcal{w_{em}}}{\partial t} + \frac{\partial\,\mathcal{w_{\ne em}}}{\partial t}\end{aligned}$$

en séparant dans $\mathcal{w}$ la partie liée aux électromagnétiques $\mathcal{w_{em}}$ de celle liée aux autres phénomènes physiques $\mathcal{w_{\ne em}}$.

En réinjectant le bilan de puissance vu en début de section, on obtient finalement :

$$\boxed{\frac{\partial\,\mathcal{f}}{\partial t} = -\mathcal{s}\,\frac{\partial\,T}{\partial t} + {\bf e}\cdot{\bf j} + {\bf h}\cdot\frac{\partial\,{\bf b}}{\partial t} + {\bf e}\cdot\frac{\partial\,{\bf d}}{\partial t} + \frac{\partial\,\mathcal{w_{\ne em}}}{\partial t}}$$

Application aux phénomènes purement magnétiques

En considérant que notre système est le siège d’effets purement magnétiques, la variation de la densité d’énergie libre magnétique (qu’on notera dans ce cas $f_m$) ne contient plus que les termes suivants :

$$\text{d}\,\mathcal{f_m} = -\mathcal{s}~ \text{d} \,T + {\bf h}\cdot{\bf d b} = -\mathcal{s}~\text{d}\,T + \text{d}\,w_{mag}$$
Remarque

On remarque donc le lien entre énergie libre et énergie magnétique. À température fixée, les deux sont identiques. En fait, compte tenu de la différence d’ordre de grandeur des constantes de temps thermiques et électromagnétiques, on pourra toujours considérer que l’énergie magnétique telle que nous l’avons définie est l’énergie libre du système.

Température et flux constants

Dans le cadre d’une transformation à température et flux magnétique constants (et donc à induction constante), nous aurons :

$$\text{d} \,\mathcal{f_m} = 0 ~~ \Rightarrow ~~ \text{d}\,\mathcal{F_m} = 0$$

Ainsi, si nous voulons calculer la force ${\bf F_m}$ d’origine magnétique s’exerçant sur un élément du système pouvant se déplacer selon la coordonnée généralisée ${\bf x_0}$ à flux constant, il suffit d’écrire la variation d’énergie correspondante (en utilisant le travail de cette force) :

$$\text{d}\,\mathcal{F_m} = {\bf F_m}\cdot{\bf d x_0} + {\bf grad_{x_0}}\,(\mathcal{F_m})\cdot{\bf d x_0}$$

Puisque $\text{d}\,\mathcal{F_m} = 0$, et ${\bf grad_{x_0}}\,(\mathcal{F_m})= {\bf grad_{x_0}}\,(W_{mag})$, on en déduit l’expression de la force :

$${\bf F_m} = - {\bf grad_{x_0}}\,(W_{mag})$$

Ou encore, en exprimant la composante dans la direction de ${\bf x_0}$ :

$$\boxed{F_m = - \left(\frac{\partial\,W_{mag}}{\partial\,x_0}\right)_{\varphi~\text{cst}}}$$

Température et courant constants

Dans le cas d’une transformation où ce sont les courants qui sont maintenus constants, il convient de définir un nouveau potentiel thermodynamique $\mathcal{g_m}$ par :

$$\mathcal{g_m} = \mathcal{f_m} - {\bf h}\cdot{\bf b}$$

Alors :

$$\text{d}\,\mathcal{g_m} = -\mathcal{s}~\text{d}\,T + \cancel{{\bf h}\cdot{\bf d b}} - \cancel{{\bf h}\cdot{\bf d b}} - {\bf b}\cdot{\bf d h}$$

Soit :

$$\text{d}\,\mathcal{g_m} = -\mathcal{s}~\text{d}\,T - {\bf b}\cdot{\bf d h} = -\mathcal{s} ~ \text{d}\,T - \text{d}\,\widetilde{w}_{mag}$$

Cette nouvelle grandeur énergétique $\mathcal{G_m}$, de densité volumique $\mathcal{g_m}$ est l’enthalpie libre magnétique (ou énergie libre de Gibbs) du système.

Remarque

On notera le lien avec la coénergie telle que définie précédemment. En fait nous pourrons considérer que la coénergie magnétique est l’opposée de l’enthalpie libre magnétique (à température fixée).

Dans le cadre d’une transformation à température et courants constants (et donc à champ magnétique constant), nous aurons :

$$\text{d} \,\mathcal{g_m} = 0 ~~ \Rightarrow ~~ \text{d}\,\mathcal{G_m} = 0$$

En procédant comme dans le paragraphe précédent pour calculer la force d’origine magnétique s’exerçant sur l’élément considéré, on obtient :

$$\text{d}\,\mathcal{G_m} = {\bf F_m}\cdot{\bf d x_0} + {\bf grad_{x_0}}\,(\mathcal{G_m})\cdot{\bf d x_0}$$

Soit :

$${\bf F_m} = - {\bf grad_{x_0}}\,(\mathcal{G_m}) = + {\bf grad_{x_0}}\,(\widetilde{W}_{mag})$$

Ou encore, en exprimant la composante dans la direction de ${\bf x_0}$ :

$$\boxed{F_m = + \left(\frac{\partial\,\widetilde{W}_{mag}}{\partial\,x_0}\right)_{I~\text{cst}}}$$
Astuce

Les formules précédentes peuvent aussi être utilisées pour calculer des couples. Si un couple $\Gamma$ d’origine magnétique s’exerce sur notre élément du système suivant la position angulaire généralisée $\alpha_0$. On aura :

$$\Gamma = - \left(\frac{\partial\,W_{mag}}{\partial\,\alpha_0}\right)_{\varphi~\text{cst}} = + \left(\frac{\partial\,\widetilde{W}_{mag}}{\partial\,\alpha_0}\right)_{I~\text{cst}}$$

Application aux phénomènes électrostatiques

Dans le cas de phénomènes électrostatiques, la densité volumique d’énergie libre électrostatique $\mathcal{f_e}$ est, d’après ce qui précède :

$$\text{d}\,\mathcal{f_e} = -\mathcal{s}~ \text{d} \,T + {\bf e}\cdot{\bf d\,d} = -\mathcal{s}~\text{d}\,T + \text{d}\,w_{el}$$

Température et charges constantes

Dans le cadre d’une transformation à température et charges électriques constantes (et donc à induction constante), nous aurons :

$$\text{d} \,\mathcal{f_e} = 0 ~~ \Rightarrow ~~ \text{d}\,\mathcal{F_e} = 0$$

Ainsi, si nous voulons calculer la force ${\bf F_m}$ d’origine magnétique s’exerçant sur un élément du système pouvant se déplacer selon la coordonnée généralisée ${\bf x_0}$ à flux constant, il suffit d’écrire la variation d’énergie correspondante (en utilisant le travail de cette force) :

$$\text{d}\,\mathcal{F_e} = {\bf F_e}\cdot{\bf d x_0} + {\bf grad_{x_0}}\,(\mathcal{F_e})\cdot{\bf d x_0}$$

Puisque $\text{d}\,\mathcal{F_e} = 0$, et ${\bf grad_{x_0}}\,(\mathcal{F_e})= {\bf grad_{x_0}}\,(W_{el})$, on en déduit l’expression de la force :

$${\bf F_e} = - {\bf grad_{x_0}}\,(W_{el})$$

Ou encore, en exprimant la composante dans la direction de ${\bf x_0}$ :

$$\boxed{F_e = - \left(\frac{\partial\,W_{el}}{\partial\,x_0}\right)_{Q~\text{cst}}}$$

Température et tensions constantes

Dans le cas d’une transformation où ce sont les tensions qui sont maintenues constants, il convient de définir un nouveau potentiel thermodynamique $\mathcal{g_e}$ par :

$$\mathcal{g_e} = \mathcal{f_e} - {\bf e}\cdot{\bf d}$$

Alors :

$$\text{d}\,\mathcal{g_e} = -\mathcal{s}~\text{d}\,T + \cancel{{\bf e}\cdot{\bf d\,d}} - \cancel{{\bf e}\cdot{\bf d\,d}} - {\bf d}\cdot{\bf d e}$$

Soit :

$$\text{d}\,\mathcal{g_e} = -\mathcal{s} ~ \text{d}\,T - {\bf d}\cdot{\bf d e} = -\mathcal{s}~\text{d}\,T - \text{d}\,\widetilde{w}_{el}$$

Cette nouvelle grandeur énergétique $\mathcal{G_e}$, de densité volumique $\mathcal{g_e}$ est l’enthalpie libre électrostatique (ou énergie libre de Gibbs) du système.

Dans le cadre d’une transformation à température et tensions constantes (et donc à champ électrique constant), nous aurons :

$$\text{d} \,\mathcal{g_e} = 0 ~~ \Rightarrow ~~ \text{d}\,\mathcal{G_e} = 0$$

En procédant comme dans le paragraphe précédent pour calculer la force d’origine électrostatique s’exerçant sur l’élément considéré, on obtient :

$$\text{d}\,\mathcal{G_e} = {\bf F_e}\cdot{\bf d x_0} + {\bf grad_{x_0}}\,(\mathcal{G_e})\cdot{\bf d x_0}$$

Soit :

$${\bf F_e} = -{\bf grad_{x_0}}\,(\mathcal{G_e}) = + {\bf grad_{x_0}}\,(\widetilde{W}_{el})$$

Ou encore, en exprimant la composante dans la direction de ${\bf x_0}$ :

$$\boxed{F_e = + \left(\frac{\partial\,\widetilde{W}_{el}}{\partial\,x_0}\right)_{V~\text{cst}}}$$

Tenseur des contraintes électromagnétiques de Maxwell

Densité volumique de forces

Comme très brièvement dit en début de page, l’expression de la densité volumique de force électromagnétique est difficilement exploitable en pratique.

En fait, il existe plusieurs façons de la formuler et aucune ne fait encore consensus. Quelle que soit l’approche utilisée, il faut considérer les opérateurs différentiels agissant sur nos champs au sens des distributions, et plusieurs termes surfaciques interviennent alors. Ces derniers correspondent aux éventuelles densités surfaciques de sources, mais aussi aux discontinuités de paramètres physiques (perméabilité, réluctivité, aimantation) dues aux changements de milieux.

Néanmoins, dans le cas d’un milieu homogène isotrope, on peut tout de même obtenir une formulation de cette densité volumique de force.
Repartons de la formule :

$${\bf f_{em}} = (\rho_q-\text{div}\,{\bf p})\,{\bf e} + ({\bf j} + {\bf rot\,m})\wedge{\bf b}$$

En y réinjectant les équations de Maxwell-Ampère et Maxwell-Gauss et en utilisant les lois de comportement ${\bf d} = \varepsilon_0\,{\bf e} + {\bf p}$ et ${\bf b} = \mu_0\,({\bf h} + {\bf m)}$, on obtient :

$$\boxed{{\bf f_{em}} = \varepsilon_0\,(\text{div}\,{\bf e})\,{\bf e} + \frac{1}{\mu_0}\,{\bf rot\,b}\wedge{\bf b}}$$

Dans le cas de plusieurs milieux (et c’est généralement toujours le cas), il nous faut malheureusement rajouter les termes liés aux interfaces pour calculer la densité de force partout et pouvoir en déduire les forces ou couples s’exerçant globalement sur les pièces mobiles.

Nous disposons cependant d’une méthode plus pratique pour calculer ces forces globales : le tenseur de Maxwell.

Tenseur de Maxwell

Soit $\overline{\overline{{\bf T}}}$ champ de tenseur d’ordre 2, continûment différentiable sur le domaine d’étude $V$, tel que :

$${\bf f_{em}} = \overline{\text{div}}\,\overline{\overline{{\bf T}}}$$

Ainsi, la force totale ${\bf F_{em}}$ s’exerçant sur un sous-domaine quelconque $\Omega \subset V$ peut se réduire à l’intégrale surfacique de $\overline{\overline{{\bf T}}}$ sur son bord $\partial \Omega$ via le théorème de la divergence :

$${\bf F_{em}} = \iiint_{\Omega} {\bf f_{em}} ~ \text{d} V = \iiint_{\Omega} \overline{\text{div}}\,\overline{\overline{{\bf T}}}~\text{d} V = \oiint_{\partial \Omega} \overline{\overline{{\bf T}}}\cdot{\bf d S}$$

Le tenseur ainsi défini n’est pas unique et peut comprendre des termes difficiles à évaluer, en particulier aux interfaces entre les différents milieux. Mais on peut simplifier grandement les choses en :

  • choisissant un domaine $\Omega$ entourant entièrement l’élément sur lequel on veut calculer les forces,
  • et dont la frontière $\partial \Omega$ se situe à l’intérieur d’un unique milieu matériel (donc sans traverser d’interface).

Dans ce cas, la formule communément admise pour le champ de tenseur sur la frontière $\partial \Omega$ est :

$$\boxed{\overline{\overline{{\bf T}}} = \varepsilon_0\,{\bf e}\otimes{\bf e} + \frac{1}{\mu_0}\,{\bf b}\otimes{\bf b} - \frac{\delta}{2}\left(\varepsilon_0\,{\bf e}^2 + \frac{{\bf b}^2}{\mu_0}\right)}$$

où $\otimes$ est le produit tensoriel et $\delta$ le tenseur unité d’ordre 2.

Remarque

Les termes du tenseur s’expriment en $\text{N}\cdot\text{m}^{-2}$, ils sont donc homogènes à une pression (on l’appelle souvent « pression électromagnétique »). Les mécaniciens parlent plutôt de « contraintes », c’est pourquoi le tenseur est généralement appelé tenseur des contraintes électromagnétiques de Maxwell.

Dans la suite, nous traiterons séparément les parties magnétiques et électrostatiques.

Partie magnétique

Si on ne considère que les effets magnétiques, le terme général du tenseur est :

$$\left(T_{ij}\right) = \frac{1}{\mu_0}\,b_i\,b_j - \frac{\delta_{ij}}{2\,\mu_0} {\bf b}^2$$

Et sa représentation matricielle dans le repère cartésien est donc :

$$\overline{\overline{{\bf T}}} = \frac{1}{\mu_0} \begin{pmatrix} b_x^2 - \frac{{\bf b}^2}{2} & b_x\,b_y & b_x\,b_z \\\\ b_x\,b_y & b_y^2 - \frac{{\bf b}^2}{2} & b_y\,b_z \\\\ b_x\,b_z & b_y\,b_z & b_z^2 - \frac{{\bf b}^2}{2}\end{pmatrix}$$

$\longrightarrow$ Vérifions que cette définition est correcte.

La densité de force dans le milieu considéré est :

$${\bf f_m} = \begin{pmatrix}f_{m_x}\\\\f_{m_y}\\\\f_{m_z}\end{pmatrix}=\frac{1}{\mu_0}\,{\bf rot\,b}\wedge{\bf b}=\frac{1}{\mu_0}\,\begin{pmatrix}b_y\,(\partial_y b_x-\partial_x b_y)+b_z\,(\partial_z b_x - \partial_x b_z)\\\\ b_x\,(\partial_x b_y-\partial_y b_x)+b_z\,(\partial_z b_y - \partial_y b_z)\\\\b_x\,(\partial_y b_x - \partial_x b_y)+b_y\,(\partial_y b_z-\partial_z b_y)\end{pmatrix}$$

Calculons la première ligne de $\overline{\text{div}}\,\overline{\overline{\bf T}}$ :

$$\begin{aligned}\big(\overline{\text{div}}\,\overline{\overline{\bf T}}\big)_x &= \frac{1}{\mu_0}\,\big(b_x\,\partial_x b_x - b_y\,\partial_x b_y - b_z\,\partial_x b_z + b_y\,\partial_y b_x + b_x\,\partial_y b_y + b_z\,\partial_z b_x + b_x\,\partial_z b_z\big)\\\\ &= \frac{1}{\mu_0}\,\big(b_x\,\cancel{(\partial_x b_x+\partial_y b_y+\partial_z b_z)}+ b_y\,(\partial_y b_x-\partial_x b_y)+b_z\,(\partial_z b_x - \partial_x b_z)\big)=f_{m_x}\end{aligned}$$

Remarque : la simplification vient de $\text{div}\,{\bf b} = 0$. On pourrait faire de même pour la deuxième et troisième ligne.

Au final, on retrouve bien $\overline{\text{div}}\,\overline{\overline{{\bf T}}}={\bf f_m}$, le tenseur est bien défini dans le milieu où se situe la frontière du domaine d’intégration.

Partie électrostatique

Du côté électrostatique, la densité volumique de forces est :

$${\bf f_{e}} = \begin{pmatrix}f_{e_x}\\\\f_{e_y}\\\\f_{e_z}\end{pmatrix}=\varepsilon_0\,\left(\text{div}\,{\bf e}\right)\,{\bf e} = \varepsilon_0\,\left(\partial_x e_x + \partial_y e_y + \partial_z e_z\right)\,\begin{pmatrix}{e_x}\\\\{e_y}\\\\{e_z}\end{pmatrix}$$

Si on ne considère que les effets électrostatiques, le terme général du tenseur est :

$$\left(T_{ij}\right) = \varepsilon_0\,e_i\,e_j - \frac{\delta_{ij}}{2}\,\varepsilon_0\,{\bf e}^2$$

Et sa représentation matricielle dans le repère cartésien est donc :

$$\boxed{\overline{\overline{{\bf T}}} = \varepsilon_0 \begin{pmatrix} e_x^2 - \frac{{\bf e}^2}{2} & e_x\,e_y & e_x\,e_z \\\\ e_x\,e_y & e_y^2 - \frac{{\bf e}^2}{2} & e_y\,e_z \\\\ e_x\,e_z & e_y\,e_z & e_z^2 - \frac{{\bf e}^2}{2}\end{pmatrix}}$$

$\longrightarrow$ Vérifions que cette définition est correcte.

Calculons la première ligne de $\overline{\text{div}}\,\overline{\overline{\bf T}}$ :

$$\begin{aligned}\big(\overline{\text{div}}\,\overline{\overline{\bf T}}\big)_x &= \varepsilon_0\,\big(e_x\,\partial_x e_x - e_y\,\partial_x e_y - e_z\,\partial_x e_z + e_y\,\partial_y e_x + e_x\,\partial_y e_y + e_z\,\partial_z e_x + e_x\,\partial_z e_z\big)\\\\ &= \varepsilon_0\,\big(e_x\,(\partial_x e_x+\partial_y e_y+\partial_z e_z)+ e_y\,\cancel{(\partial_y e_x-\partial_x e_y)}+e_z\,\cancel{(\partial_z e_x - \partial_x e_z)}\big)=f_{e_x}\end{aligned}$$

Remarque : les simplifications viennent directement du fait qu’en électrostatique : ${\bf rot\,e} = {\bf 0}$. On pourrait faire de même pour la deuxième et troisième ligne.

Au final, on retrouve bien $\overline{\text{div}}\,\overline{\overline{{\bf T}}}={\bf f_e}$, le tenseur est bien défini dans le milieu où se situe la frontière du domaine d’intégration.

Synthèse

Faisons une petite synthèse de ce qui précède sur un exemple purement théorique.

Considérons un système électromagnétique de volume $V$, contenant des domaines conducteurs $V_c$ parcourus par des courants, des domaines aimantés $V_a$, et des domaines ferromagnétiques $V_m$. Le reste du domaine est constitué d’air. On désire calculer la force magnétique ${\bf F}$ s’exerçant sur l’élément correspondant au volume $V_f$. Une représentation patatoïde est donnée ci-dessous.

Représentation très schématique du problème

Il nous suffit alors de définir un domaine $\Omega$ entourant $V_f$ dont la frontière $\partial\Omega$ passe uniquement dans l’air environnant $V_f$ et d’appliquer :

$${\bf F}=\begin{pmatrix}F_x\\\\ F_y\\\\ F_z\end{pmatrix} = \oiint\limits_{\partial\Omega} \overline{\overline{{\bf T}}}\cdot{\bf d S}$$

avec :

$$\overline{\overline{{\bf T}}} = \frac{1}{\mu_0} \begin{pmatrix} b_x^2 - \frac{{\bf b}^2}{2} & b_x\,b_y & b_x\,b_z \\\\ b_x\,b_y & b_y^2 - \frac{{\bf b}^2}{2} & b_y\,b_z \\\\ b_x\,b_z & b_y\,b_z & b_z^2 - \frac{{\bf b}^2}{2}\end{pmatrix}$$

Régimes harmoniques

Dans le cas particulier où les sources sont des grandeurs variant sinusoïdalement en fonction du temps $t$, nous pourrons utiliser une représentation complexe (dans le domaine fréquentiel) qui permet de s’affranchir de la dépendance à la variable $t$ : on l’appelle la représentation de Fresnel.

Transformation complexe

Soit $u(t)$ une fonction sinusoïdale de fréquence $f=\frac{1}{T}$ de la forme :

$$u(t) = u_{\text{eff}}\,\sqrt{2}\,\cos(\omega\,t+\varphi)$$

où :

  • $\omega$ est la pulsation ($=2\,\pi\,f$)
  • $\varphi$ est la phase de $u$
  • $u_{\text{eff}}$ est sa valeur efficace définie par : $$u_{\text{eff}} = \sqrt{\frac{1}{T}\,\int_{0}^{T} u(t)^2\,\text{d} t}$$

Nous pouvons alors définir le complexe $\underline{u}$ tel que : ${u(t) \mapsto \underline{u} ~ , ~ \text{tel que : } u(t) = \mathcal{Re}\left[ \sqrt{2} \, \underline{u} \, \text{e} ^{j \omega t}\right]}$, soit :

$$\boxed{\underline{u} = u_{\text{eff}} \, \text{e}^{j \varphi}}$$

.

La valeur efficace et la phase suffisent à définir le nombre complexe représentatif du signal temporel, et sont respectivement son module et son argument.

Ainsi, la dérivation par rapport au temps dans le repère complexe devient une simple multiplication par le terme $j \omega$, c’est-à-dire :

$$\frac{\text{d}\,u}{\text{d} t}(t) \mapsto j \omega \,\underline{u}$$

Nous pouvons le vérifier :

$$\begin{aligned}\frac{\text{d}\,u}{\text{d} t}(t) &= - \omega\,u_{\text{eff}}\,\sqrt{2}\,\sin(\omega\,t+\varphi) \\ &= \omega\,u_{\text{eff}}\,\sqrt{2}\,\cos(\omega\,t+\varphi+\frac{\pi}{2}) \\ &= \mathcal{Re}\left[\sqrt{2}\,\omega\,u_{\text{eff}}\, \text{e}^{j(\omega\,t\varphi+\frac{\pi}{2})}\right] \\ &= \mathcal{Re}\left[\sqrt{2}\, j \omega \,u_{\text{eff}} \,\text{e}^{j\varphi}\,\text{e}^{j \omega t}\right] \\ &= \mathcal{Re}\left[\sqrt{2}\, (j \omega \,\underline{u})\,\text{e}^{j \omega t}\right]\end{aligned}$$
Astuce

Il existe plusieurs façons de définir les grandeurs complexes à partir d’un même signal $u$. Nous avons choisi d’utiliser un « invariant de puissance » en choisissant la valeur efficace pour le module de $\underline{u}$ (conservation de la norme 2). Nous aurions pu choisir un « invariant d’amplitude » comme les anglo-saxons mais cela s’avère moins pratique à l’usage.

Remarque

Les complexes ainsi définis ne doivent pas être une nouveauté pour vous : c’est la transformation utilisée depuis toujours en circuits électriques en régime sinusoïdal.

Application au champ électromagnétique

Si nous considérons un système électromagnétique alimenté par des tensions ou courants sinusoïdaux (de même pulsation $\omega$, pas trop élevée pour rester dans l’ARQS), les champs en résultant seront eux aussi sinusoïdaux en temps. Nous pouvons donc leur appliquer la transformation complexe précédente.

Par exemple, le champ magnétique sera :

$$\begin{aligned}{\bf h}(x,y,z,t) &= {\bf h}(x,y,z)\,\cos(\omega t + \varphi(x,y,z))\\ &= \sqrt{2} ~ {\bf h_{\text{eff}}}(x,y,z)\,\cos(\omega t + \varphi(x,y,z)) \\ &= \mathcal{Re}[\sqrt{2}~{\bf h_{\text{eff}}}(x,y,z)\,\text{e}^{j\varphi(x,y,z)}\,\text{e}^{j\omega\,t}]\end{aligned}$$

Soit :

$$\underline{{\bf h}}(x,y,z) = {\bf h_{\text{eff}}}(x,y,z)\,\text{e}^{j\varphi(x,y,z)}$$

avec

$${\bf h_{\text{eff}}}(x,y,z) = \begin{pmatrix} h_{x_\text{eff}} \\ h_{y_\text{eff}} \\ h_{z_\text{eff}}\end{pmatrix} = \begin{pmatrix} \sqrt{\frac{1}{T}\,\int_{0}^{T} h_{x}^2(x,y,z,t)\,\text{d} t}\\[0.5em]\sqrt{\frac{1}{T}\,\int_{0}^{T} h_{y}^2(x,y,z,t)\,\text{d} t}\\[0.5em]\sqrt{\frac{1}{T}\,\int_{0}^{T} h_{z}^2(x,y,z,t)\,\text{d} t}\end{pmatrix}$$

Toutes les relations que nous avons vu jusqu’à maintenant pourront s’appliquer en complexe. Nous ne traiterons pas le cas de l’électrostatique (car statique comme son nom l’indique).

Équations de Maxwell

En régime harmonique, les équations de Maxwell sont :

$$\left\{\begin{aligned}\text{div}\,\underline{\bf b} &= 0 \\ {\bf rot\,\underline{h}} &= \underline{\bf j} \\ {\bf rot\,\underline{e}} &= -j \omega\,\underline{\bf b}\end{aligned}\right.$$

Loi de comportement

En régime harmonique, nous aurons :

$$\begin{aligned} {\bf \underline{b}} &= \mu_0\mu_r\,{\bf \underline{h}},~ ~ ~ {\bf \underline{h}} = \nu\,{\bf \underline{b}} \\ {\bf \underline{j}} &= \sigma\,{\bf \underline{e}},~ ~ ~ {\bf \underline{e}} = \rho\,{\bf \underline{j}}\end{aligned}$$
Astuce

Les aimants étant des sources statiques, ils ne peuvent être considérés dans des problèmes harmoniques.

Important !

Nous nous intéresserons principalement qu’aux problèmes où les lois de comportement sont linéaires. En effet, le cas non-linéaire est mal défini. Par exemple si ${\bf h}$ est sinusoïdal, alors ${\bf b}$ ne l’est pas en non-linéaire, et inversement (cf figure ci-dessous). Dans ces cas, on ne considère que les valeurs du fondamental des grandeurs (hypothèse du premier harmonique).
Il existe des techniques permettant de traiter ce type de problèmes de façon approchée (en prenant également l’influence de la largeur du cycle d’hystérésis) en définissant par exemple des perméabilités complexes qui permettent de déduire la valeur du fondamental de l’induction associée (via son module) et le déphasage (via son argument), mais nous ne les traiterons pas dans le cadre de ce cours.

Forme d'onde du champ et de l'induction magnétique à courant sinusoïdal imposé

Forme d'onde du champ et de l'induction magnétique à tension sinusoïdale imposéé

Potentiels

Nos potentiels peuvent se définir en complexe également :

$$\begin{aligned}{\bf \underline{b}} &= {\bf rot\,\underline{a}} \\ {\bf \underline{e}} &= -{\bf grad}\,\underline{v} - j\omega\,{\bf \underline{a}}\\ {\bf \underline{j}} &= {\bf rot\,\underline{t}} \\ {\bf \underline{h}} &= {\bf \underline{t}}-{\bf grad}\,\underline{\phi}\end{aligned}$$

Lien avec les grandeurs globales

  • Courant : $$\underline{I} = \iint_{S_c} {\bf \underline{j}}\cdot{\bf d S}$$
  • Flux magnétique : $$\underline{\Phi} = \iint_{S} {\bf \underline{b}}\cdot{\bf d S}$$
  • Fém : $$\underline{\mathcal{E}} = - j \omega\,\underline{\Phi}$$
  • Densité volumique de pertes Joule : $$p_j = \rho\,{\bf \underline{j}}\cdot{\bf j}^* = \frac{1}{\sigma}\,{\bf \underline{j}}\cdot{\bf j}^*$$
    Remarque

    Dans l’expression ci-dessus, on a utilisé $^{\*}$ comme notation pour le complexe conjugué, et on a fait apparaître le produit hermitien. On pourrait facilement montrer que la densité de pertes ainsi définie correspond à :

    $$p_j = \left< p_j(t) \right> = \frac{1}{T}\int_0^T \rho\,\lVert {\bf j}(x,y,z,t) \rVert^2\,\text{d}t$$
  • Densité volumique d’énergie et coénergie magnétiques : $$w_{mag} = \frac{1}{2\,\mu}\,{\bf \underline{b}}\cdot{\bf b}^* = \frac{1}{2}\,\mu\,{\bf \underline{h}}\cdot{\bf h}^*=\widetilde{w}_{mag}$$

Astuce

Dans le cas d’une alimentation alternative mais non-sinusoïdale, le problème peut être résolu par décomposition en série de Fourier, puis en traitant harmonique par harmonique (résolution multi-harmoniques).

Exercices de synthèse


Ex. 1. : Résistance d’une barre cylindrique alimentée en continu

Calculer la résistance d’une barre de cuivre de section circulaire $S$ et de longueur $L$ alimentée par une tension $U$ constante.

Cliquer pour afficher un indice

On pourra penser à calculer le potentiel scalaire électrique $v$.

Cliquer pour afficher la solution

$v(z) = \frac{U}{L}\,z~ $, $ ~ {\bf j} = -\sigma\,\frac{U}{L}\,{\bf e_z}~ $, $ ~ R = \rho\,\frac{L}{S} = \frac{1}{\sigma}\,\frac{L}{S}$


Ex. 2. : Condensateurs

Calculer les valeurs de capacités :

  1. du condensateur plan suivant :

Condensateur plan Condensateur plan

  1. du condensateur cylindrique :

Condensateur cylindrique Condensateur cylindrique

Les deux étant constitués de deux électrodes séparées par un milieu diélectrique de permittivité relative $\varepsilon_r$.

Cliquer pour afficher la solution
  • Cas plan : $$C = \varepsilon_0\varepsilon_r\,\frac{a\,b}{h}$$
  • Cas cylindrique : $$C = \varepsilon_0\varepsilon_r \, \frac{2\,\pi\,h}{\ln\left(\frac{R+e}{R}\right)}$$

Ex. 3. : Bobine rectangulaire

On considère une bobine rectangulaire à $N$ spires, de longueur $L$ très grande devant sa largeur, telle que représentée ci-dessous :

Représentation de la bobine étudiée

On désire calculer le champ d’induction créé par cette bobine, sans négliger le rayon des conducteur (on ne sera donc pas dans le cas d’un circuit filiforme).

Pour ce faire, nous procéderons par étapes :

  1. Après avoir précisé les hypothèses, calculer le champ crée par un conducteur cylindrique de rayon $r_c$ parcouru par un courant I (ligne unifilaire).

    Cliquer pour afficher un indice

    On pourra penser à utiliser le théorème d’Ampère pour calculer le champ.

  2. Dans le langage de votre choix, tracer le champ et les lignes correspondantes :

    1. Par des lignes de courant (streamline) ;
    2. En traçant les isovaleurs du potentiel vecteur associé ($a_z$) après l’avoir déterminé.
    Cliquer pour afficher la solution en MATLAB
    close all; clear; clc
    
    %%% ligne unifilaire
    I = 1;        % courant (A)
    rc = 1e-3;    % rayon conducteur (m)
    adom = 2e-2;  % largeur domaine (m)
    
    npoints = 100; x = linspace(-adom/2,adom/2,npoints); y = x;
    bfil = @(x,y) b_fil(x,y,0,0,rc,I); 
    [X,Y] = meshgrid(x,y); [BX,BY] = arrayfun(bfil,X,Y);
    
    % trace du champ b et des lignes correspondantes par streamline
    nlignes = 6; 
    figure(1)
    quiver(X,Y,BX,BY,5,'r')
    axis equal; hold on; 
    startx = linspace(rc,3*adom/4,nlignes); starty = zeros(1,nlignes);
    streamline(X,Y,BX,BY,startx,starty,Color="blue")
    
    % mieux : tracé des lignes par isovaleurs du potentiel vecteur
    nlignes = 15;
    azfil = @(x,y) a_fil(x,y,0,0,rc,I);
    AZ = arrayfun(azfil,X,Y);
    figure(2)
    quiver(X,Y,BX,BY,5,'r')
    axis equal; hold on;
    contour(X,Y,AZ,nlignes,'LineWidth',2)
    
    % dessin du conducteur
    nt = 60; theta = linspace(0,2*pi,nt); 
    xt = rc.*cos(theta); yt = rc.*sin(theta);
    plot(xt,yt,'k','LineWidth',2)
    
    %#####################
    %
    %     fonctions
    %
    %#####################
    
    function [bx,by] = b_fil(x,y,xc,yc,rc,I)
        % induction creee par le fil conducteur
        mu0=4e-7*pi;
        X = x-xc; Y = y-yc;
        r = sqrt(X^2+Y^2);
        if (r<=rc) 
            h_theta = I/(2*pi)*r/rc^2;
        else
            h_theta = I/(2*pi*r);
        end
        normb = mu0*h_theta;
        theta = atan2(Y,X);
        bx = -normb*sin(theta);
        by = normb*cos(theta);
    end
    
    function az = a_fil(x,y,xc,yc,rc,I)
        % potentiel vecteur cree par le fil conducteur
        mu0=4e-7*pi;
        X = x-xc;
        Y = y-yc;
        r = sqrt(X^2+Y^2);
        if (r<=rc) 
            az = -mu0*I/(4*pi)*r^2/rc^2;
        else
            az = -mu0*I/(2*pi)*(1/2+log(r/rc));
        end
    end
  3. En déduire celui crée par le conducteur précédent et son retour séparés d’une distance $d_{if}$.

    Cliquer pour afficher un indice

    On pourra penser à utiliser le théorème de superposition.

    Cliquer pour afficher la solution en MATLAB
    close all; clear; clc
    
    %%% ligne bifilaire
    I = 1;        % courant (A)
    rc = 1e-3;    % rayon conducteur (m)
    dif = 1e-2;   % distance inter-fils
    adom = 2*dif; % largeur domaine (m)
    
    bfil1  = @(x,y) b_fil(x,y, dif/2,0, rc, I); 
    azfil1 = @(x,y) a_fil(x,y, dif/2,0, rc, I);
    bfil2  = @(x,y) b_fil(x,y,-dif/2,0, rc,-I); 
    azfil2 = @(x,y) a_fil(x,y,-dif/2,0, rc,-I);
    
    npoints = 100; x = linspace(-adom/2,adom/2,npoints); y = x; 
    [X,Y] = meshgrid(x,y);
    [B1X,B1Y] = arrayfun(bfil1,X,Y); [B2X,B2Y] = arrayfun(bfil2,X,Y);
    BX = B1X + B2X; BY = B1Y + B2Y;
    AZ1 = arrayfun(azfil1,X,Y); AZ2 = arrayfun(azfil2,X,Y);
    AZ = AZ1 + AZ2;
    
    figure(1)
    nlignes = 25;
    quiver(X,Y,BX,BY,5,'r')
    axis equal; hold on;
    contour(X,Y,AZ,nlignes,'LineWidth',2)
    
    % dessin des conducteurs
    nt = 60; theta = linspace(0,2*pi,nt); 
    xd = dif/2+rc.*cos(theta); yd = rc.*sin(theta);
    xg = -dif/2+rc.*cos(theta); yg = yd;
    plot(xg,yg,'k','LineWidth',3)
    plot(xd,yd,'k','LineWidth',3)
    
    %#####################
    %
    %     fonctions
    %
    %#####################
    
    function [bx,by] = b_fil(x,y,xc,yc,rc,I)
        % induction creee par le fil conducteur
        mu0=4e-7*pi;
        X = x-xc; Y = y-yc;
        r = sqrt(X^2+Y^2);
        if (r<=rc) 
            h_theta = I/(2*pi)*r/rc^2;
        else
            h_theta = I/(2*pi*r);
        end
        normb = mu0*h_theta;
        theta = atan2(Y,X);
        bx = -normb*sin(theta);
        by = normb*cos(theta);
    end
    
    function az = a_fil(x,y,xc,yc,rc,I)
        % potentiel vecteur cree par le fil conducteur
        mu0=4e-7*pi;
        X = x-xc;
        Y = y-yc;
        r = sqrt(X^2+Y^2);
        if (r<=rc) 
            az = -mu0*I/(4*pi)*r^2/rc^2;
        else
            az = -mu0*I/(2*pi)*(1/2+log(r/rc));
        end
    end

  4. En déduire finalement le champ total créé par la bobine et retrouver le tracé de la solution : Champ de la bobine rectangulaire Champ de la bobine rectangulaire

Cliquer pour afficher la solution en MATLAB
close all; clear; clc

%%% bobine rectangulaire
I = 1;        % courant (A)
rc = 1e-3;    % rayon conducteur (m)
dif = 1e-2;   % distance inter-fils
nspires = 9;  % nombre de spires
dis = 3e-3;   % distance inter-spires
adom = max(2*dif,1.5*(nspires-1)*dis); % largeur domaine (m)

npoints = 100; x = linspace(-adom/2,adom/2,npoints); y = x;
[X,Y] = meshgrid(x,y);
BX = zeros(npoints); BY = zeros(npoints); AZ = zeros(npoints);

for k = 1:nspires
    bfil1  = @(x,y) b_fil(x,y, dif/2,-(nspires-1)*dis/2+(k-1)*dis, rc, I);
    azfil1 = @(x,y) a_fil(x,y, dif/2,-(nspires-1)*dis/2+(k-1)*dis, rc, I);
    bfil2  = @(x,y) b_fil(x,y,-dif/2,-(nspires-1)*dis/2+(k-1)*dis, rc,-I);
    azfil2 = @(x,y) a_fil(x,y,-dif/2,-(nspires-1)*dis/2+(k-1)*dis, rc,-I);
    [B1X,B1Y] = arrayfun(bfil1,X,Y); [B2X,B2Y] = arrayfun(bfil2,X,Y);
    BX = BX + B1X + B2X; BY = BY + B1Y + B2Y;
    AZ1 = arrayfun(azfil1,X,Y); AZ2 = arrayfun(azfil2,X,Y);
    AZ = AZ + AZ1 + AZ2;
end

figure(1)
nlignes = 30;
quiver(X,Y,BX,BY,5,'r')
axis equal; hold on;
contour(X,Y,AZ,nlignes,'LineWidth',2)
% dessin des conducteurs
nt = 60; theta = linspace(0,2*pi,nt); 
xt = rc.*cos(theta); yt = rc.*sin(theta);
xg = zeros(nspires,nt); yg = zeros(nspires,nt);
xd = zeros(nspires,nt); yd = zeros(nspires,nt);
for k = 1:nspires
    xg(k,:) = -dif/2+xt; xd(k,:) = dif/2+xt;
    yg(k,:) = -(nspires-1)*dis/2+(k-1)*dis+yt; yd(k,:) = yg(k,:);
    plot(xg(k,:),yg(k,:),'k','LineWidth',2)
    plot(xd(k,:),yd(k,:),'k','LineWidth',2)
end

%%%###################
%
%     fonctions
%
%#####################

function [bx,by] = b_fil(x,y,xc,yc,rc,I)
    % induction creee par le fil conducteur
    mu0=4e-7*pi;
    X = x-xc; Y = y-yc;
    r = sqrt(X^2+Y^2);
    if (r<=rc)
        h_theta = I/(2*pi)*r/rc^2;
    else
        h_theta = I/(2*pi*r);
    end
    normb = mu0*h_theta;
    theta = atan2(Y,X);
    bx = -normb*sin(theta);
    by = normb*cos(theta);
end

function az = a_fil(x,y,xc,yc,rc,I)
    % potentiel vecteur cree par le fil conducteur
    mu0=4e-7*pi;
    X = x-xc;
    Y = y-yc;
    r = sqrt(X^2+Y^2);
    if (r<=rc)
        az = -mu0*I/(4*pi)*r^2/rc^2;
    else
        az = -mu0*I/(2*pi)*(1/2+log(r/rc));
    end
end

Ex.4. : Cylindre plongé dans un champ uniforme

On considère une région de l’espace où règne un champ d’induction uniforme (imposé par une source extérieure) de la forme : ${\bf b} = B_{0}\,{\bf u_x}$.
On place à l’intérieur de cette zone un cylindre de rayon $R$ constitué d’un matériau de perméabilité relative $\mu_r$ constante.

  1. Caluler, par séparation des variables, le potentiel vecteur magnétique ${\bf a}$ en tout point du domaine.
Cliquer pour afficher un indice

On pensera à utiliser les coordonnées cylindriques et donc calculer le potentiel vecteur magnétique ${\bf a} = a_{z}(r,\theta)\,{\bf u_z}$.

  1. En déduire le tracé des lignes de champ d’induction correspondantes et observer les différents cas possibles en fonction du type du matériau. C’est-à-dire :

Cylindre dans champ uniforme Cylindre dans champ uniforme

Utiliser le langage de votre choix : MATLAB (ou GNU/Octave), Python, Julia, etc…

Cliquer pour afficher une solution

Un exemple de calcul en MATLAB est donné ci-dessous :

close all; clear; clc

% cylindre dans champ uniforme
R = 2e-2;    % rayon du cylindre
adom = 6*R;  % largeur du domaine
B0 = 1;      
mur = 1e3;   

% evaluation sur grille
a = @(x,y) az(x,y,R,mur,B0); 
npoints = 100; x = linspace(-adom/2,adom/2,npoints); y = x;
[X,Y] = meshgrid(x,y);
AZ = arrayfun(a,X,Y);

% tracé
nlignes = 30;
contour(X,Y,AZ,nlignes,'LineWidth',1)
axis equal; hold on;
nc = 60; theta = linspace(0,2*pi,nc);     % contour du cylindre
plot(R*cos(theta),R*sin(theta),'k','LineWidth',2)

% fonction calcul du potentiel vecteur
function a = az(x,y,R,mur,B0)
	r = sqrt(x^2+y^2);
	theta = atan2(y,x);
	if (r <= R)
	    a = 2*mur/(mur+1)*B0*r*sin(theta);
	else
	    a = B0*(r+(mur-1)/(mur+1)*R^2/r)*sin(theta);
	end
end

Ex. 5. : Câble coaxial

On considère un câble coaxial portant un courant $I$ tel que représenté sur la figure ci-dessous.

Représentation schématique du câble coaxial considéré

  1. Après avoir calculé le rayon intérieur du coax permettant d’assurer la même densité de courant dans les conducteurs aller et retour, calculer le champ magnétique en tout point de l’espace.
  2. En déduire l’énergie magnétique (par unité de longueur) et la valeur de l’inductance linéique du câble.
Cliquer pour afficher un indice

On pourra penser à utiliser le théorème d’Ampère pour calculer le champ.

Cliquer pour afficher un début de solution

Allure du champ du coax Allure du champ du coax Le code MATLAB permettant de faire le calcul et le tracé est donné ci-dessous à titre indicatif :

close all; clear; clc

% rayons du cable coaxial :
Ri = 1e-3;
R0 = 2e-3;
Re = sqrt(Ri^2+R0^2); % pour egalite des surfaces
Rdom = 1.5*Re;          % fin du trace

I = 15; % courant (A)

% fonction pour calculer le champ
h_theta = @(r) I/(2*pi)*((r<=Ri)*r/Ri^2+(Ri<r)*(r<=R0)/r...
     +(R0<r)*(r<=Re)*(1 -(r^2-R0^2)/(Re^2-R0^2))/r);

npoints = 1000; rt = linspace(0,Rdom,npoints);
ht = arrayfun(h_theta,rt); % evaluations 
% trace du resultat
plot(rt,ht,LineWidth=2)
title("h_\theta en fonction de la distance au centre du coax")
grid on; xlabel("r (en mm)"); ylabel("h_\theta (en A/m)")
xticks([0 Ri R0 Re]) ; xticklabels(["0", "R_i", "R_0", "R_e"])
yticks([0 I/2/pi/R0 I/2/pi/Ri]); 
yticklabels(["0", "I/(2\pi R_0)", "I/(2\pi R_1)"])

Ex. 6 : Transformateur élémentaire

On considère le transformateur élémentaire donné par la figure ci-dessous. Le primaire (en bleu) est constitué de $N_1$ spires, et le secondaire (en rouge) en comporte $N_2$.

Représentation schématique du transformateur considéré

  1. Calculer les inductances propres et mutuelle dans le cas où la loi de comportement du matériau magnétique est linéaire (de perméabilité relative $\mu_r$).
  2. Reprendre la question précédente dans le cas d’une loi de comportement non-linéaire. Choisir des valeurs réalistes pour les paramètres afin de tracer l’évolution des inductances en fonction des courants. On résoudra avec un petit programme au choix en : MATLAB (ou GNU/Octave), ou Python, ou Julia, ou autre…
    Je vous donne les vecteurs associés à la courbe $B(H)$ du matériau (XC10) et un exemple de son utilisation en MATLAB :
% Valeurs correspondant au XC10 :
H = [0.000000, 79.577472, 100.182101, 126.121793, 158.777930, 199.889571, 251.646061, ...
	316.803620, 398.832128, 502.099901, 632.106325, 795.774715, 1001.821011, ...
	1261.217929, 1587.779301, 1998.895710, 2516.460605, 3168.036204, 3988.321282, ...
	5020.999013, 6321.063250, 7957.747155, 10018.210114, 12612.179293, 15877.793010, ...
	19988.957103, 25164.606052, 31680.362037, 39883.212823, 50209.990127, 63210.632497, ...
	79577.471546, 100182.101136, 126121.792926, 158777.930096, 199889.571030, ...
	251646.060522, 316803.620370];

B = [0.000000, 0.211862, 0.265665, 0.332377, 0.414377, 0.513811, 0.631899, 0.767784, ...
	0.917018, 1.070353, 1.214255, 1.334637, 1.422981, 1.480634, 1.517214, 1.544515, ...
	1.571296, 1.602049, 1.638404, 1.680490, 1.727311, 1.776659, 1.825401, 1.870557, ...
	1.910809, 1.947222, 1.982328, 2.018252, 2.055398, 2.092545, 2.128095, 2.161612, ...
	2.194644, 2.230339, 2.272386, 2.324282, 2.389356, 2.471238];

% calcul de B(H)
function Bres = BdeH(B,H,valH)
	if ( valH < H(length(H)) )
		Bres = interp1(H,B,valH);
	else
		Bres = B(length(B))+mu0*(valH-H(length(H)));
	end
end
Cliquer pour afficher un indice

On pourra encore penser à utiliser le théorème d’Ampère pour calculer le champ.

Cliquer pour afficher la solution

Inductance du primaire en fonction du courant Inductance du primaire en fonction du courant Le code MATLAB permettant de faire le calcul et le tracé est donné ci-dessous :

clear; clc;

a = 3e-2; 
b = 5e-2;
c = 10e-2;
N1 = 100;
Lz = 15e-2;
Lf = 2*(2*a+b+c);

% Valeurs correspondant au XC10 :
H = [0.000000, 79.577472, 100.182101, 126.121793, 158.777930, 199.889571, 251.646061, ...
	316.803620, 398.832128, 502.099901, 632.106325, 795.774715, 1001.821011, ...
	1261.217929, 1587.779301, 1998.895710, 2516.460605, 3168.036204, 3988.321282, ...
	5020.999013, 6321.063250, 7957.747155, 10018.210114, 12612.179293, 15877.793010, ...
	19988.957103, 25164.606052, 31680.362037, 39883.212823, 50209.990127, 63210.632497, ...
	79577.471546, 100182.101136, 126121.792926, 158777.930096, 199889.571030, ...
	251646.060522, 316803.620370];

B = [0.000000, 0.211862, 0.265665, 0.332377, 0.414377, 0.513811, 0.631899, 0.767784, ...
	0.917018, 1.070353, 1.214255, 1.334637, 1.422981, 1.480634, 1.517214, 1.544515, ...
	1.571296, 1.602049, 1.638404, 1.680490, 1.727311, 1.776659, 1.825401, 1.870557, ...
	1.910809, 1.947222, 1.982328, 2.018252, 2.055398, 2.092545, 2.128095, 2.161612, ...
	2.194644, 2.230339, 2.272386, 2.324282, 2.389356, 2.471238];

h1 = @(I) N1*I/Lf;
phi1 = @(I) N1*BdeH(B,H,h1(I))*2*a*Lz;
L1 = @(I) phi1(I)/I;

npoints = 500; Imax = 10;
I = linspace(0,Imax,npoints);
L = arrayfun(L1,I);
plot(I,L,"LineWidth",3)
xlabel("Courant (en A)"); ylabel("Inductance (en H)")
title("Inductance primaire en fonction du courant")
grid; axis([-inf inf 0 ceil(10*max(L))/10])

% calcul de B(H)
function Bres = BdeH(B,H,valH)
	mu0 = 4e-7*pi;
	if ( valH < H(length(H)) )
		Bres = interp1(H,B,valH);
	else
		Bres = B(length(B))+mu0*(valH-H(length(H)));
	end
end

Ex. 7. : Électroaimant

On considère l’électroaimant représenté sur la figure ci-dessous :

Électroaimant Électroaimant

  1. Considérons tout d’abord que le circuit magnétique est infiniment perméable (hypothèse du $\mu_{\infty}$). Calculer la force $F$ s’exerçant sur la partie mobile (plaque du bas) par les dérivées de l’énergie et la coénergie, et mettre en évidence la différence de signe entre les deux expressions. Retrouver ensuite la valeur de la force par le tenseur de Maxwell.

  2. Recalculer la force par le tenseur mais dans le cas où le circuit magnétique a une loi de comportement linéaire (perméabilité $\mu_r$). En déduire l’expression de la force de collage (à entrefer $e$ nul).

  3. En utilisant les valeurs de paramètres et de courbes $B(H)$ données ci-dessous, superposer les tracés de la force en fonction du courant ($F(I_c)$) dans les 2 cas : linéaire et non-linéaire.

mu0 = 4e-7*pi;  % H/m
aE = 1e-2;      % m
bE = 1e-2;
hE = 2e-2;
ent = 0.5e-3;
Ep = 1.e-2;
Lz = 20e-2;
N = 250;

% Loi de comportement des materiaux
% pour le E (M530) :
HE = [0.000000,  19.965330, 29.906288, 36.398771, 41.371669, 45.590262, 49.424859, ...
    53.082280, 56.692664, 60.347374, 64.117637, 68.064755, 72.246371, 76.720886, ...
    81.551123, 86.807959, 92.574503, 98.951520, 106.065047, 114.077777, 123.206911, ...
    133.753385, 146.151738, 161.058668, 179.516634, 203.267945, 235.379748, ...
    281.524948, 352.648412, 470.426179, 677.451541, 1051.068036, 1703.275165, ...
    2726.517959, 4137.981052, 5832.619704, 7939.552940, 10565.294335, 13843.912965, ...
    17970.359698, 23423.776432, 32234.325960, 51366.778967, 84577.843501, ...
    121162.493322, 160127.812767, 202470.282245];
BE = [0.00, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, ...
    0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15, 1.20, ...
    1.25, 1.30, 1.35, 1.40, 1.45, 1.50, 1.55, 1.60, 1.65, 1.70, 1.75, 1.80, 1.85, ...
    1.90, 1.95, 2.00, 2.05, 2.10, 2.15, 2.20, 2.25, 2.30];

% pour la plaque (XC10) :
Hp = [0.000000, 79.577472, 100.182101, 126.121793, 158.777930, 199.889571, 251.646061, ...
    316.803620, 398.832128, 502.099901, 632.106325, 795.774715, 1001.821011, ...
    1261.217929, 1587.779301, 1998.895710, 2516.460605, 3168.036204, 3988.321282, ...
    5020.999013, 6321.063250, 7957.747155, 10018.210114, 12612.179293, 15877.793010, ...
    19988.957103, 25164.606052, 31680.362037, 39883.212823, 50209.990127, 63210.632497, ...
    79577.471546, 100182.101136, 126121.792926, 158777.930096, 199889.571030, ...
    251646.060522, 316803.620370];
Bp = [0.000000, 0.211862, 0.265665, 0.332377, 0.414377, 0.513811, 0.631899, 0.767784, ...
    0.917018, 1.070353, 1.214255, 1.334637, 1.422981, 1.480634, 1.517214, 1.544515, ...
    1.571296, 1.602049, 1.638404, 1.680490, 1.727311, 1.776659, 1.825401, 1.870557, ...
    1.910809, 1.947222, 1.982328, 2.018252, 2.055398, 2.092545, 2.128095, 2.161612, ...
    2.194644, 2.230339, 2.272386, 2.324282, 2.389356, 2.471238];

% calcul de H(B)
function Hres = HdeB(B,H,valB)
	mu0 = 4e-7*pi;
	if ( valB < B(length(B)) )
		Hres = interp1(B,H,valB);
	else
		Hres = H(length(H))+1/mu0*(valB-B(length(B)));
	end
end
Remarque

Cet exercice est adapté de la ventouse magnétique de fermeture de porte des TP FEMM de l’EC S8-B11-EC2.

Cliquer pour afficher la solution

Force de l’électroaimant Force de l’électroaimant Le code MATLAB pour faire le calcul :

clear; clc

mu0 = 4e-7*pi;   % H/m
aE = 1e-2;      % m
bE = 1e-2;
hE = 2e-2;
ent = 0.5e-3;
Ep = 1.e-2;
Lz = 20e-2;
N = 250;

% Loi de comportement des materiaux
%--------------------------------------
% pour le E (M530) :
HE = [0.000000,  19.965330, 29.906288, 36.398771, 41.371669, 45.590262, 49.424859, ...
    53.082280, 56.692664, 60.347374, 64.117637, 68.064755, 72.246371, 76.720886, ...
    81.551123, 86.807959, 92.574503, 98.951520, 106.065047, 114.077777, 123.206911, ...
    133.753385, 146.151738, 161.058668, 179.516634, 203.267945, 235.379748, ...
    281.524948, 352.648412, 470.426179, 677.451541, 1051.068036, 1703.275165, ...
    2726.517959, 4137.981052, 5832.619704, 7939.552940, 10565.294335, 13843.912965, ...
    17970.359698, 23423.776432, 32234.325960, 51366.778967, 84577.843501, ...
    121162.493322, 160127.812767, 202470.282245];
BE = [0.00, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, ...
    0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15, 1.20, ...
    1.25, 1.30, 1.35, 1.40, 1.45, 1.50, 1.55, 1.60, 1.65, 1.70, 1.75, 1.80, 1.85, ...
    1.90, 1.95, 2.00, 2.05, 2.10, 2.15, 2.20, 2.25, 2.30];
% pour la plaque (XC10) :
Hp = [0.000000, 79.577472, 100.182101, 126.121793, 158.777930, 199.889571, 251.646061, ...
    316.803620, 398.832128, 502.099901, 632.106325, 795.774715, 1001.821011, ...
    1261.217929, 1587.779301, 1998.895710, 2516.460605, 3168.036204, 3988.321282, ...
    5020.999013, 6321.063250, 7957.747155, 10018.210114, 12612.179293, 15877.793010, ...
    19988.957103, 25164.606052, 31680.362037, 39883.212823, 50209.990127, 63210.632497, ...
    79577.471546, 100182.101136, 126121.792926, 158777.930096, 199889.571030, ...
    251646.060522, 316803.620370];
Bp = [0.000000, 0.211862, 0.265665, 0.332377, 0.414377, 0.513811, 0.631899, 0.767784, ...
    0.917018, 1.070353, 1.214255, 1.334637, 1.422981, 1.480634, 1.517214, 1.544515, ...
    1.571296, 1.602049, 1.638404, 1.680490, 1.727311, 1.776659, 1.825401, 1.870557, ...
    1.910809, 1.947222, 1.982328, 2.018252, 2.055398, 2.092545, 2.128095, 2.161612, ...
    2.194644, 2.230339, 2.272386, 2.324282, 2.389356, 2.471238];

% Longueurs du contour
lE = 2*hE + 2*aE + bE;   % dans le E
lp = bE + Ep + aE;       % dans la plaque

% en lineaire
npoints = 1000; Imax = 10;
I = linspace(0,Imax,npoints);
murE = (BE(3)-BE(2))/(HE(3)-HE(2))/mu0;  % db/dh
murp = (Bp(3)-Bp(2))/(Hp(3)-Hp(2))/mu0;

he = N*I/(2*ent+lE/murE+lp/murp);
ForceLin = 2*mu0*aE*Lz*he.^2;

% en non-lineaire
ThmAmpere = @(b,I) HdeB(BE,HE,b)*lE + 2*ent*b/mu0 + HdeB(Bp,Hp,b*aE/Ep)*lp - N*I;
options = optimoptions("fsolve");
options.Display = 'off';
be = @(I) fsolve(@(b) ThmAmpere(b,I),mu0*N*I/(2*ent+lE/murE+lp/murp),options);
ForceNL = @(I) 2/mu0*aE*Lz*be(I)^2;
ForceNonLin = arrayfun(ForceNL,I);

% tracé
plot(I,ForceLin,I,ForceNonLin,'LineWidth',2)
grid; xlabel('Courant (en A)'); ylabel('Force (en N)')
title ('Force en fonction du courant')
legend(' En linéaire',' En non-linéaire',"Location","northwest")


% calcul de H(B)
function Hres = HdeB(B,H,valB)
    mu0 = 4e-7*pi;
	if ( valB < B(length(B)) )
		Hres = interp1(B,H,valB);
	else
		Hres = H(length(H))+1/mu0*(valB-B(length(B)));
	end
end

Ex. 8. : Barre de machine asynchrone

Le but de l’exercice est de calculer l’inductance de fuite et la résistance d’une barre de machine asynchrone à cage en fonction de la fréquence du courant rotorique. Lorsque le rayon d’alésage de la machine est assez grand, le problème peut se ramener à un problème 2D cartésien tel que représenté par la figure :

Barre de MAS Barre de MAS

Cas statique :

Le courant I circulant dans la barre est supposé continu ($I = I_0$). Après avoir précisé vos hypothèses :

  1. Que vaut la densité de courant dans le cuivre $j$ ? En déduire la valeur des pertes Joule et de la résistance de la barre $R_0$.
  2. Tracer l’allure des lignes de champ dans cette portion de dispositif.
  3. En utilisant le théorème d’Ampère, calculer la valeur du champ magnétique $h$ dans l’encoche, c’est-à-dire : dans la zone d’air entre le cuivre et l’entrefer, et dans la barre de cuivre.
  4. Tracer $h_x(y)$ pour $y \in [0 ; h 1 + h 2 ]$.
  5. En déduire la valeur de l’énergie magnétique $W_e$ stockée dans l’encoche, et l’inductance de fuite $L_{f_0}$ définie par : $$W_e = \frac{1}{2}\,L_{f_0}\,I^2$$

Cas harmonique :

Le courant I est maintenant supposé sinusoïdal : $I(t) = I_{\text{eff}}\,\sqrt{2}\,\sin(\omega\,t)$.

  1. Dans quelle zone de l’encoche peut-on encore utiliser le théorème d’Ampère ?
  2. Quelle est l’équation vérifiée par $h$ dans le cuivre ?
  3. Résoudre cette équation grâce à un passage en complexes.
  4. En déduire la valeur de $W_e$, puis de l’inductance de fuite $L_f$ en fonction de la fréquence.
  5. À partir des questions précédentes, déterminer la valeur de la densité de courant complexe dans le cuivre. En déduire la valeur des pertes Joule et de la résistance $R$ de la barre en fonction de la fréquence.
  6. Vérifier les cas limites : $\lim\limits_{\omega \to 0} L_f (\omega) = L_{f_0}$ et $\lim\limits_{\omega\to 0} R(\omega) = R_0$.

Tracé des résultats :

Densité volumique de courant dans l'encoche à 50 Hz


Évolution de la valeur de l'inductance de fuite et de la résistance de la barre en fonction de la fréquence

Correction

Ex. 9. : Résistance d’une barre cylindrique alimentée en alternatif

La barre de cuivre de l’exercice Ex.1 est désormais alimentée en courant alternatif.
Calculer la densité de courant lorsque la barre est parcourue par un courant $I(t) = \sqrt{2}\,I_{\text{eff}}\,\cos(\omega\,t)$.

On utilise la transformation en complexes pour résoudre l’équation locale satisfaite par $\underline{\bf j}$ :

  1. Après avoir constaté que la densité de courant complexe est de la forme $\underline{\bf j} = \underline{j_z} (r)\,{\bf u_z}$, donner l’équation différentielle ordinaire satisfaite par $\underline{j_z}$.
  2. Résoudre cette équation en cherchant une solution sous la forme d’une série entière.
    On pensera à introduire l’épaisseur de peau $\delta = \sqrt{\frac{2}{\sigma \mu_0 \omega}}$
  3. Exprimer la formule générale de cette solution de façon plus concise en utlisant les fonctions de Bessel de première espèce $J_n$.
  4. Grâce à une condition de passage judicieusement choisie, retrouver la solution du problème : $$ \displaystyle\underline{j_z}(r) = \frac{\sqrt{-j}\,I_{\text{eff}}}{\sqrt{2}\,\pi R\,\delta} \frac{J_0(\sqrt{-j}\,\frac{\sqrt{2}\,r}{\delta})}{J_1(\sqrt{-j}\,\frac{\sqrt{2}\,R}{\delta})}$$
  5. En déduire l’expression de la densité volumique de puissance, puis les pertes Joules totales dans la barre, et donc sa résistance.
  6. Tracer son évolution avec un logiciel de calcul numérique et discuter des cas limites : $\omega \rightarrow 0$ et $\omega \rightarrow \infty$.

Tracé des résultats :

Densité volumique de pertes Joule dans la barre pour trois fréquences (0 Hz / 100 Hz / 10 kHz)

Évolution de la valeur de la résistance en fonction de la fréquence

Cliquer pour afficher le code MATLAB permettant de faire ces tracés
close all; clear; clc;

mu0 = 4e-7*pi; R = 1e-2; sigma = 56e6; I = 10; L = 1; j = 1i;

npoints = 1000; r = linspace(0,R,npoints); theta = linspace(0,2*pi,npoints);
[RR,THETA] = meshgrid(r,theta); X = RR.*cos(THETA); Y = RR.*sin(THETA);

figure(1)
vf = [1e-9,100,10e3]; tf = ["f = 0 Hz","f = 100 Hz","f = 10 kHz"];
for k = 1:3
    subplot(1,3,k)
    f = vf(k); w = 2*pi*f; delta = sqrt(2/(sigma*mu0*w));
    jz = sqrt(-j)*I/(sqrt(2)*pi*R*delta*besselj(1,sqrt(-j*2)*R/delta)) ...
        *besselj(0,sqrt(-j*2)*r/delta);
    pj = real(1/sigma*jz.*conj(jz));
    PJ = repmat(pj,npoints,1);
    sl = surface(X,Y,PJ);
    sl.EdgeColor='none'; axis equal; axis([-R R -R R]); 
    xticks([]); yticks([]); colorbar; colormap jet; title(tf(k))
end

figure(2)
dr = R/(npoints-1);
nf = 10000; f_fin = 10e4; valf = linspace(1e-6,f_fin,nf); Res = zeros(1,nf);
for k = 1:nf
    w = 2*pi*valf(k);
    delta = sqrt(2/(sigma*mu0*w));
    jz = sqrt(-j)*I/(sqrt(2)*pi*R*delta*besselj(1,sqrt(-j*2)*R/delta))... 
        *besselj(0,sqrt(-j*2)*r/delta);
    pj = real(1/sigma*jz.*conj(jz));
    pjr = pj.*r;
    Pj = pi*sum(pjr(2:npoints)+pjr(1:(npoints-1)))*dr*L;
    Res(k) = Pj/I^2;
end
subplot(1,2,1)
R0 = 1/sigma*L/(pi*R^2); f = linspace(0.8*f_fin,f_fin,0.2*nf);
delta = sqrt(1./(sigma*mu0*pi*f)); Rinf = 1/sigma*L./(2*pi*delta*R);
plot([0 0.1*f_fin],1e3*[R0 R0],'--b',LineWidth=2); hold on;
plot(f,1e3*Rinf,'--k',LineWidth=2) 
plot(valf,1e3*Res,'r',LineWidth=2)
axis([0 f_fin 0 inf]); grid on;
title('Résistance en fonction de la fréquence','FontSize',16)
xlabel('f (en Hz)','FontSize',14); ylabel('R (en m\Omega)','FontSize',14)
legend([" R_0"," R_\infty(f)"," R(f)"],FontSize=14,Location="northwest")
subplot(1,2,2)
plot([0 100],1e3*[R0 R0],'--b',LineWidth=2); hold on;
plot(valf,1e3*Res,'r',LineWidth=2)
axis([0 500 floor(1e5*R0)/1e2 2e3*R0]); grid on; 
title("Zoom vers l'origine",'FontSize',14); 
xlabel('f (en Hz)','FontSize',14); ylabel('R (en m\Omega)','FontSize',16)
Cet exercice est adapté d’un ancien examen :-)

Ex. 10. : Chauffage par induction d’une plaque d’acier

On considère une plaque d’acier (de perméabilité $\mu$ et de conductivité $\sigma$) de longueur $L_z$ et de largeur $l_y$ très grandes devant son épaisseur $2\,e$. Cette plaque est placée à l’intérieur d’un inducteur correspondant à un solénoïde de longueur $L$ à $N$ spires jointives de forme rectangulaire.
Celui-ci est parcouru par un courant $I(t)$ imposé. Une représentation schématique du dispositif et le repère associé sont donnés par la figure ci-dessous :

Représentation schématique du problème

  1. Dans un premier temps, on considère uniquement l’inducteur.
    En précisant vos hypothèses, et en utilisant le théorème d’Ampère sur 3 contours judicieusement choisis, montrez que le champ magnétique à l’intérieur du solénoïde est uniforme et s’écrit : $ {\bf h_s} = n\,I(t)\,{\bf u_z} $.
    On explicitera la valeur de $n$ en fonction de $N$ et $L$.

  2. Le courant d’alimentation est : $ I(t) = I_{\text{eff}} \sqrt{2}\,\cos(\omega\,t) $. Donner la forme complexe du courant $\underline{I}$, ainsi que du champ précédent $\underline{h_s}$.

  3. Désormais, on insère la plaque dans l’inducteur. Donner, en le justifiant, l’équation générale de diffusion à laquelle obéit le champ magnétique à l’intérieur de celle-ci ( $x \in [−e; e]$).

  4. À partir de l’équation précédente et de la question 2, donner la forme complexe du système permettant de calculer le champ complexe $\underline{\bf h}(x)$ dans la plaque. Soit : une équation différentielle ordinaire d’ordre 2 à coefficients constants complexes et 2 conditions aux limites.

  5. Résoudre ce système (on fera intervenir l’épaisseur de peau $\delta$).

  6. En déduire l’expression complexe de la densité de courant dans la plaque, puis celle de la densité volumique de puissance moyenne $p$ injectée dans la plaque par l’inducteur, et donc de la puissance moyenne totale $P$ injectée dans la plaque.

Tracé des résultats :

Représentation du champ magnétique et de la densité de puissance dans la plaque





Important !
$$ \text{{\LARGE That's all Folks!}} $$

Chapitre 2 - Principe de la méthode des éléments finis : Espaces fonctionnels, formulations et méthode de résolution


Où nous essaierons de faire le lien avec les notions de base vues dans l’EC de S7 Distributions et Équations aux Dérivées Partielles (Équations aux Dérivées Partielles), et définirons les notions théoriques dont nous aurons besoin.


Sous-sections de Principe de la MEF

Avant-propos

De toutes les méthodes numériques pouvant être utilisées pour résoudre les équations aux dérivées partielles relevant de l’électromagnétisme basse fréquence, la méthode des éléments finis (MEF) est sans nul doute la plus répandue.

Même si elle fut initialement développée pour la mécanique des structures, certains de ses avantages la rendent particulièrement bien adaptée à nos problèmes :

  • Elle s’utilise aussi bien sur des maillages structurés que non-structurés et s’adapte donc parfaitement à des géométries complexes.
  • Elle permet d’assurer implicitement les conditions de passage aux interfaces entre les différents milieux à l’intérieur du domaine d’étude.
  • Elle repose sur une formulation intégrale des équations et est donc fortement liée à des considérations énergétiques.
  • Elle s’applique à une grande variété de domaines physiques et permet donc de résoudre aisément des problèmes couplés.

Il existe de nombreux codes de calcul par éléments finis (EF) dédiés à l’électromagnétisme BF. On peut citer par exemple (liste non exhaustive) :

  1. Commerciaux / Licences propriétaires :

  2. Freeware :

  3. Libres (non spécifiquement dédiés à l’électromagnétisme) :

    • Elmer : généraliste 2D/3D qui possède plusieurs solveurs pour l’électromagnétisme BF.
    • agros : généraliste 2D
    • FreeFEM : généraliste 2D/3D
    • Netgen/NGSolve : généraliste 2D/3D (mailleur Netgen et solveur NGSolve).
    • ONELAB : généraliste 2D/3D, repose sur le mailleur Gmsh et le solveur GetDP.
Remarque

Dans les travaux pratiques de cet EC, nous utiliserons ONELAB.

Modèle continu

Espaces fonctionnels

Soit un domaine $\Omega$ de $\mathbb{R}^3$, de bord $\Gamma = \partial\Omega$ tel que $\Gamma = \Gamma_d \cup \Gamma_n$, comme présenté sur la figure suivante :

Domaine d’étude Domaine d’étude

Espaces des champs de carré intégrable

Nous considérons l’espace $\text{L}^2(\Omega)$ des champs scalaires $u$ de $\Omega$ défini par :

$$\text{L}^2(\Omega) = \left\{ u : \iiint_\Omega u^2({\bf x})\,\text{d} \Omega < \infty \right\}$$

Il est naturellement muni d’un produit scalaire (produit interne), défini par :

$$(u,v)_{\Omega} = \iiint_\Omega u({\bf x})\,v({\bf x})\,\text{d} \Omega $$

auquel est associée la norme :

$$\| u \|_{\text{L}^2(\Omega)} = (u,u)_{\Omega}^{\frac{1}{2}} = \left(\iiint_\Omega u^2({\bf x})\,\text{d} \Omega\right)^{\frac{1}{2}} $$

Pour les champs vectoriels ${\bf u}$ de $\Omega$, nous pouvons faire de même avec l’espace $\textbf{L}^2(\Omega)$ :

$$\textbf{L}^2(\Omega) = \left\{ {\bf u} : \iiint_\Omega \|{\bf u}({\bf x})\|^2\,\text{d} \Omega < \infty \right\}$$

Et le produit scalaire et la norme associée :

$$({\bf u},{\bf v})_{\Omega} = \iiint_\Omega {\bf u}({\bf x})\cdot{\bf v}({\bf x})\,\text{d} \Omega$$

$$\| {\bf u} \|_{\textbf{L}^2(\Omega)} = ({\bf u},{\bf u})_{\Omega}^{\frac{1}{2}} = \left(\iiint_\Omega \| {\bf u}({\bf x})\|\,\text{d} \Omega\right)^{\frac{1}{2}} $$
Remarque

Concrètement, ces espaces sont des espaces de Hilbert et correspondent aux champs de $\Omega$ à « énergie finie ». Ils conviennent donc parfaitement à nos champs électromagnétiques (et même à tout champ physique).

Espaces de Sobolev

À partir des espaces précédents, on défini d’autres espaces d’intérêt par :

$$\text{H}^1(\Omega) = \left\{ u \in \text{L}^2(\Omega) : \partial_x u, \partial_y u,\partial_z u \in \text{L}^2(\Omega)\right\}$$$$\textbf{H}^1(\Omega) = \left\{ {\bf u} \in \textbf{L}^2(\Omega) : \partial_x {\bf u}, \partial_y {\bf u},\partial_z {\bf u} \in \textbf{L}^2(\Omega)\right\}$$

Où $\partial_i$ désigne la dérivée partielle selon la coordonnée $i$ prise au sens des distributions.

Nos champs étant liés aux opérateurs ${\bf grad}$, $\text{div}$ et ${\bf rot}$, nous utiliserons plutôt les espaces définis ci-dessous :

$$\text{H}({\bf grad},\Omega) = \left\{ u \in \text{L}^2(\Omega) : {\bf grad}\,u \in \text{L}^2(\Omega)\right\} = \text{H}^1(\Omega)$$$$\textbf{H}({\bf rot},\Omega) = \left\{ {\bf u} \in \textbf{L}^2(\Omega) : {\bf rot\,u} \in \textbf{L}^2(\Omega)\right\}$$$$\textbf{H}(\text{div},\Omega) = \left\{ {\bf u} \in \textbf{L}^2(\Omega) : \text{div}\,{\bf u} \in \text{L}^2(\Omega)\right\}$$

On peut remarquer que $\text{H}({\bf grad},\Omega)$ est $\text{H}^1(\Omega)$ (c’est juste la notation qui change), ainsi que :

  • ${\bf grad}\left(\text{H}({\bf grad},\Omega)\right) \subset \textbf{H}({\bf rot},\Omega)$,
  • ${\bf rot}\left(\textbf{H}({\bf rot},\Omega)\right) \subset \textbf{H}(\text{div},\Omega)$,
  • et $\text{div} \left(\textbf{H}(\text{div},\Omega)\right) \subset \text{L}^2(\Omega)$

Finalement, on voit que nos espaces sont liés par ce qu’on appelle le complexe de De Rham :

$$\text{H}^1(\Omega) = \text{H}({\bf grad},\Omega) \xrightarrow[]{{\bf grad}} \textbf{H}({\bf rot},\Omega) \xrightarrow[]{{\bf rot}} \textbf{H}(\text{div},\Omega) \xrightarrow[]{\text{div}} \text{L}^2(\Omega) $$

Formulations faibles

Dans le cadre de ce cours, nous nous intéresserons principalement à deux types de problèmes détaillés ci-après. Nous verrons dans le chapitre 3 que nous pourrons toujours nous ramener à l’une ou l’autre de ces deux formulations.

Important

Dans la suite, nous prendrons de gros raccourcis pour ne traiter que les aspects qui nous intéresseront pour résoudre nos problèmes. Vous trouverez un cadre et un développement mathématique plus rigoureux, en particulier sur les régularités des fonctions intervenant dans les formulations, dans le polycopié de votre cours de S7 (ou une version plus ancienne telle que [Anto21]).


div-grad

Formulation forte

Dans un premier temps, nous considérons le problème suivant. On cherche $u$ champ scalaire de $\Omega$ vérifiant la formulation forte :

$$\left\{\begin{aligned}\text{div}\left(\alpha\,{\bf grad}\,u\right) + \beta &= 0~, &\text{dans}~ \Omega \\ \left.u\right|_{\Gamma_d} &= 0~, &\text{sur}~ \Gamma_d \\ \left.\frac{\partial\,u}{\partial {\bf n}}\right|_{\Gamma_n} = \left.{\bf grad}\, u \cdot {\bf n} \right|_{\Gamma_n} &= \gamma~, &\text{sur}~ \Gamma_n \end{aligned}\right.$$

où $\alpha, \beta \in \text{L}^2({\Omega})$ continûment différentiables sur $\Omega$ (voire $\overline{\Omega}$), et $\gamma \in \mathcal{C}^1(\Gamma_n)$.

Formulation variationnelle

Soit $v$ champ scalaire quelconque de $\text{H}({\bf grad},\Omega)$, qu’on appelle fonction test. En multipliant l’équation de la formulation forte et en intégrant sur tout le domaine, on obtient :

$$\iiint_{\Omega} \left[\text{div}\left(\alpha\,{\bf grad}\,u\right)\right]\,v~\text{d}\Omega + \iiint_{\Omega} \beta\,v ~\text{d}\Omega =0$$

En utilisant la formule de Green en grad-div :

$$ \text{div}(a\,{\bf b}) = ({\bf grad}\,a)\cdot{\bf b} + (\text{div}\,{\bf b})\,a $$

on peut développer le terme de gauche pour obtenir (intégration par parties) :

$$\iiint_{\Omega} -(\alpha\,{\bf grad}\,u)\cdot{\bf grad}\,v~\text{d}\Omega + \iiint_{\Omega} \text{div}(v\,\alpha\,{\bf grad}\,u)~\text{d}\Omega + \iiint_{\Omega} \beta\,v ~\text{d}\Omega =0$$

On applique alors le théorème de la divergence :

$$\iiint_{\Omega} -(\alpha\,{\bf grad}\,u)\cdot{\bf grad}\,v~\text{d}\Omega + \oiint_{\Gamma} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~\text{d}\Gamma + \iiint_{\Omega} \beta\,v ~\text{d}\Omega =0$$

On peut décomposer le terme surfacique en deux en utilisant la condition aux limites de Neumann pour obtenir :

$$\begin{aligned}\oiint_{\Gamma} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~ \text{d}\Gamma &= \iint_{\Gamma_n} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~ \text{d}\Gamma + \iint_{\Gamma_d} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~ \text{d}\Gamma\ \\ &= \iint_{\Gamma_n} v\,\alpha\,\gamma~ \text{d}\Gamma + \iint_{\Gamma_d} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~ \text{d}\Gamma\end{aligned}$$

On aboutit finalement à l’expression générale :

$$\iiint_{\Omega} (\alpha\,{\bf grad}\,u)\cdot{\bf grad}\,v~ \text{d}\Omega - \iint_{\Gamma_n} v\,\alpha\,\gamma~ \text{d}\Gamma - \iiint_{\Omega} \beta\,v ~ \text{d}\Omega = \iint_{\Gamma_d} v\,\alpha\,{\bf grad}\,u \cdot {\bf n}~ \text{d}\Gamma$$

N’ayant aucune information sur le terme ${\bf grad}\,u$ sur $\Gamma_d$, ce terme peut être gênant pour déterminer $u$, mais nous pouvons nous en affranchir en choisissant la fonction test $v$ nulle sur $\Gamma_d$. C’est-à-dire en prenant $v \in \text{H}_0({\bf grad},\Omega)$ définit par :

$$\boxed{\text{H}_0({\bf grad},\Omega) = \{ u \in \text{H}({\bf grad},\Omega) : u\|_{\Gamma_d} = 0\} =\text{H}_0^1(\Omega)}$$

Nous pouvons remarquer que $u \in \text{H}_0({\bf grad},\Omega)$ aussi.

Nous obtenons alors la formulation faible (ou variationnelle) de notre problème :

Cherchons $u \in \text{H}_0({\bf grad},\Omega)$, tel que :

$$\boxed{\forall v \in \text{H}_0({\bf grad},\Omega), \iiint_{\Omega} (\alpha\,{\bf grad}\,u)\cdot{\bf grad}\,v~ \text{d}\Omega - \iiint_{\Omega} \beta\,v ~ \text{d}\Omega - \iint_{\Gamma_n} \alpha\,\gamma\,v~ \text{d}\Gamma = 0}$$

Pour simplifier la notation, on peut utiliser les produits scalaires définis en début de page, et le produit surfacique $\left<\cdot,\cdot\right>$ défini par :

$$\left< u,v \right>_{\Gamma} = \iint_{\Gamma} u\,v\,\text{d}\Gamma$$

Notre formulation faible s’écrit alors :

$$\boxed{\forall v \in \text{H}_0({\bf grad},\Omega), \left(\alpha\,{\bf grad}\,u,{\bf grad}\,v\right)_{\Omega} - \left(\beta,v\right)_{\Omega} - \left<\alpha\,\gamma,v\right>_{\Gamma_n} = 0}$$
Remarque

On pourrait alors montrer (à l’aide du théorème de Lax-Milgram) que le problème correspondant à notre formulation faible est bien posé (existence et unicité de la solution), et qu’il est équivalent (à l’aide du théorème de trace) à la formulation forte, qui, elle aussi, correspond donc à un problème bien posé [Anto21], [Kern04], [Spit02].

Remarques importantes sur les conditions aux limites

Nous pouvons remarquer que, selon leur nature, les conditions aux limites sont traitées de façons totalement différentes.

  1. Conditions de Dirichlet : Elles sont directement prises en compte via la définition de l’espace fonctionnel $\text{H}_0({\bf grad},\Omega)$ (espace des fonctions tests et de recherche de la solution).

  2. Conditions de Neumann : Elles sont prises en compte via le terme surfacique $\left<\alpha\,\gamma,v\right>_{\Gamma_n}$ dans la formulation faible. Et en l’absence de ce terme, ce sont des conditions de Neumann homogènes qui s’appliquent sur $\Gamma_n$.
    C’est pourquoi, en l’absence d’une condition particulière sur un bord du domaine, la condition aux limite par défaut est une condition de Neumann homogène $\frac{\partial\,u}{\partial {\bf n}} = 0$.


rot-rot

Formulation forte

Considérons maintenant la formulation forte suivante. Cherchons un champ vectoriel ${\bf u}$ de $\Omega$ vérifiant :

$$\left\{\begin{aligned}{\bf rot}\left(\alpha\,{\bf rot}\,{\bf u}\right) + \boldsymbol{\beta} & = {\bf 0}~ , &\text{dans}~ \Omega\ \left.{\bf u}\wedge{\bf n}\right|_{\Gamma_d} &= {\bf 0}~ , &\text{sur}~ \Gamma_d \ \left.\frac{\partial\,{\bf u}}{\partial {\bf n}}\right|_{\Gamma_n} = \left.{\bf rot\,u}\wedge{\bf n}\right|_{\Gamma_n} &= \boldsymbol{\gamma}~ , &\text{sur}~ \Gamma_n \end{aligned}\right.$$

où $\alpha \in \text{L}^2({\Omega})$, $\boldsymbol{\beta} \in \textbf{L}^2({\Omega})$ continûment différentiables sur $\Omega$ (voire $\overline{\Omega}$), et $\gamma \in \mathcal{C}^1(\Gamma_n)$.

Formulation variationnelle

Soit la fonction test ${\bf v}$ champ vectoriel quelconque de $\textbf{H}({\bf rot},\Omega)$. En prenant le produit scalaire de l’équation de la formulation forte par ${\bf v}$ et en intégrant sur tout le domaine, on obtient :

$$\iiint_{\Omega} \left({\bf rot}\left(\alpha\,{\bf rot}\,{\bf u}\right)\right)\cdot{\bf v}~ \text{d} \Omega + \iiint_{\Omega}\boldsymbol{\beta}\cdot{\bf v}~ \text{d} \Omega = {\bf 0}$$

En utilisant la formule de Green en rot-rot :

$$\text{div}({\bf a}\wedge{\bf b}) = {\bf b}\cdot{\bf rot\,a} - {\bf a}\cdot{\bf rot\,b}$$

on peut intégrer par parties le terme de gauche pour obtenir :

$$\iiint_{\Omega} \left(\alpha\,{\bf rot}\,{\bf u}\right)\cdot{\bf rot\, v}~ \text{d} \Omega - \iiint_{\Omega} \text{div}\,\left(\alpha\,{\bf rot\,u}\wedge{\bf v}\right)~ \text{d} \Omega + \iiint_{\Omega}\boldsymbol{\beta}\cdot{\bf v}~ \text{d} \Omega = {\bf 0}$$

Après application du théorème de la divergence :

$$\iiint_{\Omega} \left(\alpha\,{\bf rot}\,{\bf u}\right)\cdot{\bf rot\, v}~ \text{d} \Omega - \oiint_{\Gamma} \left(\alpha\,{\bf rot\,u}\wedge{\bf v}\right)\cdot{\bf n}~ \text{d} \Gamma + \iiint_{\Omega}\boldsymbol{\beta}\cdot{\bf v}~ \text{d} \Omega = {\bf 0}$$

En séparant les termes surfaciques et en remarquant que :

$$\begin{aligned}({\bf rot\,u}\wedge{\bf v})\cdot{\bf n} &= {\bf n}\cdot({\bf rot\,u}\wedge{\bf v}) = {\bf rot\,u}\cdot({\bf v}\wedge{\bf n}) \\ &= ({\bf n}\wedge{\bf rot\,u})\cdot{\bf v} = - ({\bf rot\,u}\wedge{\bf n})\cdot{\bf v}\end{aligned}$$

on obtient :

$$\begin{aligned}\iiint_{\Omega} \left(\alpha\,{\bf rot}\,{\bf u}\right)&\cdot{\bf rot\, v}~ \text{d} \Omega + \iiint_{\Omega}\boldsymbol{\beta}\cdot{\bf v}~ \text{d} \Omega \\ &+ \iint_{\Gamma_n} \alpha\,\underbrace{\left({\bf rot\,u}\wedge{\bf n}\right)}_{\displaystyle \boldsymbol{\gamma}}\cdot{\bf v}~ \text{d} \Gamma = \iint_{\Gamma_d} \alpha\,{\bf rot\,u}\cdot\left({\bf v}\wedge{\bf n}\right)~ \text{d} \Gamma \end{aligned}$$

Comme précédemment, on peut éliminer le second terme surfacique en prenant la fonction test ${\bf v}$ et la fonction inconnue ${\bf u}$ dans $\textbf{H}_0({\bf rot},\Omega)$ défini par :

$$\boxed{ \textbf{H}_0({\bf rot},\Omega) = \{{\bf v} \in \textbf{H}({\bf rot},\Omega) : \left.{\bf v}\wedge{\bf n}\right|_{\Gamma_d} = {\bf 0} \} }$$

On aboutit à la formulation faible de notre problème :

Cherchons ${\bf u} \in \textbf{H}_0({\bf rot},\Omega)$ tel que :

$$\boxed{\begin{aligned}\forall\,{\bf v} \in \textbf{H}_0({\bf rot},\Omega),~ \iiint_{\Omega} &\left(\alpha\,{\bf rot}\,{\bf u}\right)\cdot{\bf rot\, v}~ \text{d} \Omega \ &+ \iiint_{\Omega} \boldsymbol{\beta}\cdot{\bf v}~ \text{d} \Omega + \iint_{\Gamma_n} \alpha\,\boldsymbol{\gamma}\cdot{\bf v}~ \text{d} \Gamma = 0\end{aligned}}$$

Ou encore :

$$\boxed{\forall\,{\bf v} \in \textbf{H}_0({\bf rot},\Omega),~ \left(\alpha\,{\bf rot\,u},{\bf rot\,v}\right)_{\Omega} + \left(\boldsymbol{\beta},{\bf v}\right)_{\Omega} + \left<\alpha\,\boldsymbol{\gamma},{\bf v}\right>_{\Gamma_n} = 0}$$

Les remarques précédentes sur les conditions aux limites restent valables :

  • les conditions de type Dirichlet sont liées à la définition de l’espace fonctionnel,
  • celles de type Neumann sont liées à la formulation et par défaut on est en présence d’une condition homogène telle que ${\bf rot\,u} \perp \Gamma_n$.
Important !

Attention : la formulation rot-rot ainsi définie ne correspond pas obligatoirement à un problème bien posé. C’est le cas en 2D, mais en 3D nous devrons rajouter une condition de jauge (comme nous le verrons dans la fin du chapitre).


Aspect généraux

Dans les deux cas précédents, on peut écrire chaque formulation de la même façon, donnée par :

$$\displaystyle \forall v \in \text{H}_0({\bf grad},\Omega), ~ \underbrace{\left(\alpha\,{\bf grad}\,u,{\bf grad}\,v\right)_{\Omega}}_{\displaystyle a(u,v)} = \underbrace{\left(\beta,v\right)_{\Omega} + \left<\alpha\,\gamma,v\right>_{\Gamma_n}}_{\displaystyle \displaystyle L(v)}$$$$\forall\,{\bf v} \in \textbf{H}_0({\bf rot},\Omega),~ \underbrace{\left(\alpha\,{\bf rot\,u},{\bf rot\,v}\right)_{\Omega}}_{\displaystyle a({\bf u},{\bf v})} = \underbrace{- \left(\boldsymbol{\beta},{\bf v}\right)_{\Omega} - \left<\alpha\,\boldsymbol{\gamma},{\bf v}\right>_{\Gamma_n}}_{\displaystyle \displaystyle L({\bf v})} $$

Où $a(\cdot,\cdot)$ est une forme bilinéaire continue et coercive, et $L(\cdot)$ une forme linéaire continue, définies sur $V \left(= \text{H}_0({\bf grad},\Omega) ~ \text{ou}~ \textbf{H}_0({\bf rot},\Omega)\right)$.

Pour simplifier, on ne conservera que la notation correspodant au premier cas ($u$ et $v$) mais ce que nous dirons sera aussi valable pour le deuxième (avec ${\bf u}$ et ${\bf v}$).

En fait, ce qu’on appelle formulation variationnelle du problème est cette forme, qu’on écrit :

$$\boxed{\left\{\begin{aligned}{\large \mathstrut} &\text{Trouver}~ u \in V ~ \text{tel que :} \\ &a(u,v) = L(v),~ ~\forall\,v \in V\end{aligned}\right.}$$

La forme bilinéaire $a$ étant symétrique, résoudre la forme variationnelle est équivalent à trouver le minimum de la fonctionnelle énergétique (quadratique) définie par :

$$\boxed{J(v) = \frac{1}{2}\,a(v,v) - L(v)}$$

Soit :

$$\boxed{u = \mathop{\text{argmin}}_{v \in V} J(v)}$$

En effet, on a :

$$\begin{aligned}J(u+v)-J(u) &= \frac{1}{2}\,a(u+v,u+v) - L(u+v) - \frac{1}{2}\,a(u,u) + L(u) \\ &= \cancel{\frac{1}{2}\,a(u,u)} + \underbrace{\frac{1}{2}\,a(u,v) + \frac{1}{2}\,a(v,u)}_{\displaystyle a(u,v)} + \frac{1}{2}\,a(v,v) - \cancel{L(u)} - L(v) - \cancel{\frac{1}{2}\,a(u,u)} + \cancel{L(u)} \\ &= \underbrace{a(u,v) - L(v)}_{\displaystyle \text{linéaire en}~v} + \underbrace{\frac{1}{2}\,a(v,v)}_{\displaystyle o(v)} \end{aligned}$$

On en déduit :

$$\text{d} J(u) v = a(u,v) - L(v)$$

La différentielle de $J$ s’annule donc en $u$, solution de notre problème (ce qui correspond bien au minimum de $J$).

On peut donc résoudre notre formulation variationnelle en cherchant à minimiser la fonctionnelle énergétique (ou une approximation de cette dernière), mais en pratique, on préfère une autre méthode pour résoudre la formulation faible : la méthode de Galerkin (dont la MEF est un cas particulier).

Modèle discret

Idée derrière la MEF

L’idée de base derrière la méthode des éléments finis est l’approche classique consistant à décomposer un problème compliqué en une multitude de petits problèmes beaucoup plus simples à résoudre :

  1. Pour calculer chaque terme intégral de la formulation faible, nous allons les décomposer sur une partition du domaine d’étude qu’on appelle le maillage.
  2. Sur chaque élément de ce maillage nous allons définir des fonctions simples (polynomiales) qui nous permettront de générer un sous-espace de dimension finie de l’espace fonctionnel auquel appartient notre inconnue (qui, lui, est de dimension infinie).
  3. Nous calculerons alors la projection de la solution de la forme faible dans cet espace discret qui sera alors la meilleure approximation de la solution sur le maillage.

Exemple fil rouge (Running Example)

Pour illustrer les différents aspects abordés dans la suite, on utilisera l’exemple simple donné par la figure suivante :

Représentation de notre problème exemple

Nous avons donc un problème de Poisson avec conditions de Dirichlet et Neumann, dont la formulation forte peut s’écrire :

$$\left\{\begin{aligned} \text{div} \left({\bf grad}\,u \right) + \beta &= 0, ~ \text{dans} ~ \Omega \\ u|_{\Gamma_d} &= 0 \\ \partial_n u|_{\Gamma_n} &= \gamma = 1 \end{aligned}\right.$$

avec $\beta$ définie par morceaux par :

$$\left\{\begin{aligned} \beta &= 1 ~ ~ \text{ dans } ~ ~ \Omega_s \\ \beta &= 0 ~ ~ \text{ dans } ~ ~ \Omega/\Omega_s \end{aligned}\right.$$

Et d’après la section précédente, la formulation faible est :

$$\begin{aligned}&\text{Trouver} ~ u \in \text{H}_0({\bf grad},\Omega) = \left\{ u \in \text{H}({\bf grad},\Omega) : u|_{\Gamma_d} = 0\right\} ~ \text{tel que :}\\\\ &\forall v \in \text{H}_0({\bf grad},\Omega), \iiint_{\Omega} {\bf grad}\,u \cdot{\bf grad}\,v ~\text{d}\Omega - \iiint_{\Omega_s} v ~ \text{d}\Omega - \iint_{\Gamma_n} v ~ \text{d}\Gamma = 0\end{aligned}$$

Soit :

$$\boxed{\begin{aligned}&\text{Trouver} ~ u \in \text{H}_0({\bf grad},\Omega) ~\text{tel que :}\\\\ &\forall v \in \text{H}_0({\bf grad},\Omega), ~ ~ \underbrace{\left({\bf grad}\,u,{\bf grad}\,v\right)_{\Omega} }_{a(u,v)}+ \underbrace{\left(-1,v\right)_{\Omega_s} + \left<-1,v\right>_{\Gamma_n}}_{-L(v)} = 0\end{aligned}}$$

$\rightsquigarrow$ C’est cette dernière que nous résoudrons par la suite.

Sous-sections de Modèle discret

Méthode de Galerkin et éléments finis

Méthode de Galerkin

Nous avons vu dans la section précédente que la forme faible de chaque problème considéré pouvait se mettre sous la forme :

$$\left\{\begin{aligned}~ &\text{Trouver}~ u \in V ~ \text{tel que :}\\ &a(u,v) = L(v),~ ~ \forall\,v \in V\end{aligned}\right.$$

$V$ étant de dimension infinie, un tel problème est particulièrement difficile à résoudre. La méthode de Galerkin consiste à résoudre la formulation faible dans un sous-espace $V_h \subset V$ de dimension finie $n_h$ possédant les mêmes propriétés, soit :

$$\left\{\begin{aligned} ~ &\text{Trouver}~ u_h \in V_h ~ \text{tel que :} \\ &a(u_h,v_h) = L(v_h),~ ~ \forall\,v_h \in V_h\end{aligned}\right.$$

où $u_h$ est une solution approchée de la solution exacte $u$.

L’idée est de résoudre cette formulation à partir d’une base $(\varphi_1,\varphi_2,\dots,\varphi_{n_h})$ de $V_h$. En décomposant $u_h$ dans cette base, on a :

$$u_h = \sum\limits_{j=1}^{n_h} u_j\,\varphi_j$$

Le principe de la méthode de Galerkin est alors d’utiliser les fonctions de base $\varphi_i$ comme fonctions test dans la formulation faible. Ainsi :

$$\begin{aligned}\forall i \in [\![1,n_h]\!]~ ,~ &a\left(\sum\limits_{j=1}^{n_h} u_j\,\varphi_j,\varphi_i\right) = L(\varphi_i) \\ & \sum\limits_{j=1}^{n_h} u_j\,a(\varphi_j,\varphi_i) = L(\varphi_i)\end{aligned} $$

Soit :

$$\boxed{\forall i \in [\![1,n_h]\!]~ ,~ \sum\limits_{j=1}^{n_h} a(\varphi_i,\varphi_j)\,u_j = L(\varphi_i)}$$

En définissant les vecteurs ${\bf U_h} = \left( u_i \right)_{1\leq i \leq n_h}$ et ${\bf B_h} = \big( L(\varphi_i) \big)_{1\leq i \leq n_h}$, et la matrice ${{\bf A_h} = \big( a(\varphi_i,\varphi_j) \big)_{1\leq i,j\leq n_h}}$, le problème peut se mettre sous la forme matricielle :

$$\boxed{{\bf A_h} \, {\bf U_h} = {\bf B_h}}$$

En résolvant ce système linéaire, on obtient alors les composantes $u_i$ de la solution approchée $u_h$ dans la base $(\varphi_i)_{1\leq i\leq n_h}$.

$\rightarrow$ La méthode des éléments finis permet d’appliquer ce principe de résolution.

Qu’est-ce qu’un élément fini ?

On appelle élément fini le triplet $(K,P_K,\Sigma_K)$, où :

  • $K$ est un domaine de l’espace appelé élément géométrique (généralement de forme simple : un segment, un triangle, un quadrangle, un tétraèdre, un hexaèdre, une pyramide, un prisme) ;
  • $P_K$ est un espace fonctionnel de dimension finie $n_K$, défini sur $K$ engendré par ce qu’on appelle les fonctions de base $p_i, 1 \leq i \leq n_K$ ;
  • $\Sigma_K$ est un ensemble de $n_K$ degrés de liberté représentés par $n_K$ fonctionnelles (formes) linéaires $\sigma_i,~ 1 \leq i \leq n_K,$ définies sur l’espace $P_K$ et à valeurs dans $\mathbb{R}$.

De plus, il faut qu’il existe une unique fonction de $P_K$ prenant des valeurs données aux degrés de liberté de $\Sigma_K$ : cette dernière condition définit l’unisolvance de l’élément fini $(K,P_K,\Sigma_K)$.

Nous allons maintenant voir comment mettre en place la méthode basée sur ces éléments.

Maillage

Intéressons nous tout d’abords aux éléments géométriques $K$ obtenus par discrétisation du domaine d’étude $\Omega$, ce qu’on appelle le maillage. Le domaine (polyédrique) est alors partitionné avec le type d’entités élémentaires choisi (triangle, quadrangle, tétraèdre, hexaèdre, etc…).

Le maillage doit être conforme, c’est-à-dire :

  • Les éléments doivent recouvrir la fermeture $\overline{\Omega}$ de $\Omega$.
  • L’intersection de deux éléments est soit l’ensemble vide, soit un sommet, soit une arête partagée.

Nous pouvons illustrer cela sur un exemple :

Maillage conforme Maillage non conforme
Maillage conforme Maillage conforme Maillagenon-conforme Maillagenon-conforme

Dans la suite, nous utiliserons le logiciel libre de maillage par éléments finis Gmsh développé par C. Geuzaine et J-F. Remacle.

Génération d’un maillage

Pour pouvoir discrétiser un problème donné, nous devons tout d’abord définir ses aspects purement géométriques. C’est-à-dire créer toutes les entités élémentaires :

  • les points, qui permettent de définir :
  • les lignes (segments, arcs de cercles, voire courbes), qui permettent de définir :
  • les surfaces (planes ou courbes), qui permettent de définir :
  • les volumes.

Sur notre cas d’étude, on obtient par exemple :

Géométrie de notre exemple Géométrie de notre exemple

Après avoir défini des tailles caractéristiques d’éléments et/ou discrétiser les lignes, on peut mailler notre géométrie. Ci-dessous, deux exemples :

Triangulaire Quadrangulaire
Maillage 1 Maillage 1 Maillage 2 Maillage 2

Pour information, je vous donne en exemple les scripts permettant de générer ces maillages. Par habitude, j’utilise deux fichiers :

  • data.geo : servant à définir les paramètres qui pourront être partagés avec le solveur,
  • poisson.geo : contenant la création de la géométrie.
/* 
	Fichier data.geo contenant les parametres 
*/

// Parametres geometriques
Rd = 1;
Rs = 0.15*Rd;
xs = 0.4*Rd;  
ys = 0.4*Rd;
alphaN = Pi/6;

// Parametres maillage 
finesse = 2;
nec = 4*finesse;
lcd = Rd/nec;
lcs = Rs/nec*2;
neN = 2*nec;
typele = 1;  // <=1 : triangles
             // > 1 : quadrangles
             
// Numeros regions physiques
DISQUE = 1000;
SOURCE = 1001;
DIRICHLET = 2000;
NEUMANN = 2001;
/*
	Fichier poisson.geo contenant la creation de 
	la geometrie de notre petit probleme de Poisson
*/

// Lecture des parametres
Include "data.geo" ;

// Creation des points
Point(1) = {0,0,0,lcd};  // centre domaine
Point(2) = {Rd/Sqrt[2],Rd/Sqrt[2],0,lcd};
Point(3) = {-Rd*Cos[alphaN/2],Rd*Sin[alphaN/2],0,lcd};
Point(4) = {-Rd*Cos[alphaN/2],-Rd*Sin[alphaN/2],0,lcd};
Point(5) = {Rd/Sqrt[2],-Rd/Sqrt[2],0,lcd};
Point(6) = {xs,ys,0,lcs}; // centre Omega_s
Point(7) = {xs+Rs,ys,0,lcs};
Point(8) = {xs,ys+Rs,0,lcs};
Point(9) = {xs-Rs,ys,0,lcs};
Point(10) = {xs,ys-Rs,0,lcs};

// Creation des lignes
Circle(1) = {2,1,3}; 
Circle(2) = {3,1,4};
Circle(3) = {4,1,5}; 
Circle(4) = {5,1,2};
Circle(5) = {7,6,8}; 
Circle(6) = {8,6,9};
Circle(7) = {9,6,10}; 
Circle(8) = {10,6,7};

// Discretisation de la ligne Gamma_n
Transfinite Line {2}  = neN+1 Using Progression 1.0;

// Surfaces
Line Loop(1) = {1,2,3,4};
Line Loop(2) = {5,6,7,8};
Plane Surface(1) = {2};     // Omega_s
Plane Surface(2) = {1,-2};  // Omega

// Maillage en quadrangles (si voulu)
If (typele > 1)  
  Recombine Surface '*';
EndIf

Physical Surface(DISQUE) = {2};
Physical Surface(SOURCE) = {1};
Physical Line(DIRICHLET) = {1,3,4};
Physical Line(NEUMANN) = {2};

// Un peu de cosmetisme
Color Red { Surface{1}; }
Color White { Surface{2}; }
Color Blue { Line{2};}
Color Black { Line{1,3,4,5,6,7,8};}

En plus des fonctions basiques de création des entités élémentaires, Gmsh possède des fonctions plus évoluées : transformations (symétries, translations, rotations, dilatations), extrusions. De plus, il intègre depuis quelques temps un noyau supplémentaire basé sur le moteur CAO OpenCascade permettant de créer directement des objets 2D ou 3D, d’effectuer des opérations booléennes, ou de manipuler des splines.

Remarque

Pour plus d’informations sur le logiciel, vous pouvez :
$\rightarrow$ consulter le site officiel et son wiki ;
$\rightarrow$ suivre un très bon tutoriel fait par B. Thierry (ENSEM, promo 2007).

Exemples

Ci-après, vous trouverez des exemples de maillages utilisés dans le cadre de travaux de mon équipe de recherche au laboratoire GREEN.

En 2D

Machine à courant continu Ventouse magnétique
MCC MCC Electromaimant Electromaimant

En 3D

Accouplements magnétiques (maillages structurés) Machines synchrones à griffes (mix structuré / non-structuré)
Coupleur à Aimants Coupleur à Aimants Machine Geoffrey Machine Geoffrey
Coupleur à induction Coupleur à induction Machine Dominique Machine Dominique

$~$

Les exemples ci-dessus sont issus des thèses de :

  • G. Devornique (ENSEM, promo 2013), pour l’alterno-démarreur synchrone à griffes ;
  • B. Ristagno (ENSEM, promo 2016), pour la machine à courant continu ;
  • D. Giraud (ENSEM, promo 2017), pour la machine synchrone axiale à griffes.
Information

Pour plus d’informations, ou si vous envisagez la possibilité de faire une thèse, n’hésitez pas à me contacter, ainsi que mes collègues : les Professeurs N. Takorabet ou D. Netter.

Autres exemples 3D

On peut également utiliser des maillages beaucoup plus complexes, comme par exemple les deux ci-dessous qui me permettent de calculer des courants induits dans des têtes humaines (par exemple pour des travailleurs opérant à proximité de sources basse fréquence comme des pinces à souder) :

John Doe Jane Doe
John Doe John Doe Jane Doe Jane Doe

$\boldsymbol{\rightarrow}$ Voir même un corps humain complet (oui, j’ai un peu galéré…) :

John en entier (avec tous les organes)
Maillage d’n corps complet Maillage d’n corps complet

Fonctions de base sur éléments nodaux

Maintenant que nous savons créer le maillage (noté $\mathcal{M}_h$), nous allons nous intéresser à la définition des fonctions qui permettront de constituer la base de l’approximation discrète $V_h$ de $V$ (fonctions de base).

Remarque

Par souci de simplicité, nous ne nous intéresserons, dans un premier temps, qu’aux éléments nodaux permettant d’approximer $\text{H}^1_0(\Omega) \left(= \text{H}_0({\bf grad},\Omega)\right).$ On les appelle éléments de Lagrange. Pour clarifier un peu plus les choses, nous ne considérerons tout d’abord que des éléments s’appuyant sur des fonctions de base linéaires (polynômes d’ordre 1) permettant une approximation linéaire par morceaux de la fonction inconnue. On les appelle les éléments $\mathbf{P_1}$ (ou $\mathbf{Q_1}$ pour les quadrangles).

Éléments de référence

En fait, nous allons définir les fonctions de base sur ce qu’on appelle un élément de référence dont la forme géométrique est fixe et prédéfinie.

En 1D

En dimension 1, les éléments sont des segments et l’élément de référence est le segment $[-1,1]$.

En 2D

En dimension 2, nous pouvons donner le triangle et le quadrangle de référence :

  • pour le triangle, c’est celui de sommets : ${\bf n_1}=(0,0)$, ${\bf n_2}=(1,0)$ et ${\bf n_3} = (0,1)$. On peut le paramétrer par : $$\Delta_r = \left\{ (u,v) \in \mathbb{R}^2 : 0 \le u \le 1, 0 \le v\le 1-u\right\}$$
  • pour le quadrangle, c’est celui de sommets : ${\bf n_1} = (-1,-1)$, ${\bf n_2} = (1,-1)$, ${\bf n_3} = (1,1)$ et ${{\bf n_4} =(-1,1)}$. On peut le paramétrer par : $$\text{Q}_r = \left\{ (u,v) \in \mathbb{R}^2 : -1 \le u \le 1, -1 \le v \le 1\right\}$$

Leur représentation graphique est donnée ci-dessous.

Éléments de référence en 2D

En 3D

Nous nous contenterons de donner le tétraèdre et l’hexaèdre de référence :

  • pour le tétraèdre, c’est celui de sommets : ${\bf n_1} = (0,0,0)$, ${\bf n_2} = (1,0,0)$, ${\bf n_3} = (0,1,0)$ et ${{\bf n_4} =(0,0,1)}$. On peut le paramétrer par : $$\text{T}_r = \left\{ (u,v,w) \in \mathbb{R}^3 : 0 \le u \le 1, 0 \le v\le 1-u, 0 \le w\le 1-u-v\right\}$$
  • pour l’hexaèdre, c’est celui de sommets : ${\bf n_1} = (-1,-1,-1)$, ${\bf n_2} = (1,-1,-1)$, ${\bf n_3} = (1,1,-1)$, ${\bf n_4} = (-1,1,-1)$, ${\bf n_5} = (-1,-1,1)$, ${\bf n_6} = (1,-1,1)$, ${\bf n_7} = (1,1,1)$ et ${\bf n_8} = (-1,1,1)$. On peut le paramétrer par : $$\text{H}_r = \left\{ (u,v,w) \in \mathbb{R}^3 : -1 \le u \le 1, -1 \le v \le 1, -1 \le w \le 1\right\}$$

Et leur représentation graphique est donnée ci-dessous.

Éléments de référence en 3D

Fonctions de base sur éléments de référence

Sur ces élément de références, nous pouvons définir des fonctions linéaires valant 1 sur un sommet (un nœud) et 0 sur les autres. Dans ce cas, on fera une approximation linéaire par morceaux de notre fonction inconnue. Ces fonctions seront notées $p_i$ pour $i \in [\![1,n_K]\!]$.

Nous aurons donc autant de fonctions de base que de sommets $n_K$ de l’élément de référence.

Cas du triangle

Dans le cas du triangle de référence, ces fonctions sont données par la table ci-dessous :

Nœud $i$ Fonction de base $p_i (u,v)$
1 $p_1 (u,v) = 1 - u - v$
2 $p_2 (u,v) = u$
3 $p_3 (u,v) = v$

Une représentation graphique est donnée par : Fonctions de base Langrange sur triangle Fonctions de base Langrange sur triangle

On peut également les tracer en surélevé :

$p_1$ $p_2$ $p_3$
phi_1 phi_1 phi_2 phi_2 phi_3 phi_3

Cas du quadrangle

Dans le cas du triangle de référence, ces fonctions sont données par la table ci-dessous :

Nœud $i$ Fonction de base $p_i (u,v)$
1 $\displaystyle p_1 (u,v) = \frac{(1-u)(1-v)}{4}$
2 $\displaystyle p_2 (u,v) = \frac{(1+u)(1-v)}{4}$
3 $\displaystyle p_3 (u,v) = \frac{(1+u)(1+v)}{4}$
4 $\displaystyle p_4 (u,v) = \frac{(1-u)(1+v)}{4}$

Une représentation graphique est donnée par : Fonctions de base Langrange sur quandrangle Fonctions de base Langrange sur quandrangle

On peut également les tracer en surélevé :

$p_1$ $p_2$ $p_3$ $p_4$
phi_1 phi_1 phi_2 phi_2 phi_3 phi_3 phi_4 phi_4

Cas du tétraèdre

Dans le cas du tétraèdre de référence, ces fonctions sont données par la table ci-dessous :

Nœud $i$ Fonction de base $p_i (u,v,w)$
1 $p_1 (u,v,w) = 1 - u - v - w$
2 $p_2 (u,v,w) = u$
3 $p_3 (u,v,w) = v$
4 $p_4 (u,v,w) = w$

Et une représentation graphique de $p_1$ est donnée ci-dessous :

p1 sur tétraèdre p1 sur tétraèdre

Cas de l’hexaèdre

Dans le cas de l’hexaèdre de référence, ces fonctions sont données par la table ci-dessous :

Nœud $i$ Fonction de base $p_i (u,v,w)$
1 $\displaystyle p_1 (u,v,w) = \frac{(1-u)(1-v)(1-w)}{8}$
2 $\displaystyle p_2 (u,v,w) = \frac{(1+u)(1-v)(1-w)}{8}$
3 $\displaystyle p_3 (u,v,w) = \frac{(1+u)(1+v)(1-w)}{8}$
4 $\displaystyle p_4 (u,v,w) = \frac{(1-u)(1+v)(1-w)}{8}$
5 $\displaystyle p_5 (u,v,w) = \frac{(1-u)(1-v)(1+w)}{8}$
6 $\displaystyle p_6 (u,v,w) = \frac{(1+u)(1-v)(1+w)}{8}$
7 $\displaystyle p_7 (u,v,w) = \frac{(1+u)(1+v)(1+w)}{8}$
8 $\displaystyle p_8 (u,v,w) = \frac{(1-u)(1+v)(1+w)}{8}$

Et une représentation graphique de $p_1$ est donnée ci-dessous :

p1 sur hexaèdre p1 sur hexaèdre

Éléments quelconques

Considérons maintenant un élément réel $K$ de $\mathcal{M}_h$, et intéressons nous à la transformation permettant de passer de l’élément de référence associé $K_r$ à cet élément, ainsi que sa réciproque.

Transformations géométriques

Soit ${\bf x}$ un point quelconque de $K$ de coordonnées $(x,y,z)$. Une paramétrisation possible de ${\bf x}$ est :

$${\bf x} = \begin{pmatrix}x\\y\\z\end{pmatrix} = \begin{pmatrix}x(u,v,w)\\y(u,v,w)\\z(u,v,w)\end{pmatrix} ={\bf x}({\bf u}) $$

où ${\bf u} = (u,v,w) \in K_r$ permet de faire correspondre tout point $(x,y,z)$ de $K$ avec un point $(u,v,w)$ de $K_r$ de façon biunivoque (bijective). La transformation inverse est alors notée :

$${\bf u} = {\bf u}({\bf x})$$

Une représentation schématique est donnée ci-dessous :

Passage d’un élément de référence à un quelconque Passage d’un élément de référence à un quelconque

Les formules de différentiation des fonctions composées nous donnent alors :

$$\begin{pmatrix}\partial_u\\\partial_v\\\partial_w\end{pmatrix} = \underbrace{\begin{pmatrix}\partial_u\,x & \partial_u\,y & \partial_u\,z\\ \partial_v\,x & \partial_v\,y & \partial_v\,z\\ \partial_w\,x & \partial_w\,y & \partial_w\,z\end{pmatrix}}_{\displaystyle{\bf J}} \, \begin{pmatrix}\partial_x\\\partial_y\\\partial_z\end{pmatrix} $$$$\begin{pmatrix}\partial_x\\\partial_y\\\partial_z\end{pmatrix} = \underbrace{\begin{pmatrix}\partial_x\,u & \partial_x\,v & \partial_x\,w\\ \partial_y\,u & \partial_y\,v & \partial_y\,w\\ \partial_z\,u & \partial_z\,v & \partial_z\,w\end{pmatrix}}_{\displaystyle{\bf J^{-1}}} \, \begin{pmatrix}\partial_u\\\partial_v\\\partial_w\end{pmatrix} $$

La matrice ${\bf J}$ est appelée matrice jacobienne de transformation. Les relations ci-dessus peuvent s’écrire sous forme plus compacte :

$$\partial_{\bf u} = {\bf J}\cdot\partial_{\bf x},~ ~ \text{avec :}~ ~ {\bf J} = \partial_{\bf u}\,{\bf x}$$$$\partial_{\bf x} = {\bf J^{-1}}\cdot\partial_{\bf u},~ ~ \text{avec :}~ ~ {\bf J^{-1}} = \partial_{\bf x}\,{\bf u}$$

On rappelle au passage la formule de l’inverse :

$${\bf J^{-1}} = \frac{1}{\det {\bf J}}\,{}^{\operatorname {t} }\text{com}\,{\bf J}$$

En pratique, on ne la calcule pas de cette façon. En effet, il est intéressant de remarquer que les colonnes de ${\bf J^{-1}}$ sont les gradients selon les coordonnées réelles ${\bf x}$ des fonctions $u({\bf x}),$ $v({\bf x}),$ et $w({\bf x})$. On les note : ${\bf grad_x}\,u({\bf x}),$ ${\bf grad_x}\,v({\bf x})$ et ${\bf grad_x}\,w({\bf x})$.

Nous pouvons calculer ces termes à partir des lignes de la matrice Jacobienne ${\bf J}$ qui sont ${}^{\operatorname t}\partial_u\,{\bf x},$ ${}^{\operatorname t}\partial_v\,{\bf x}$ et ${}^{\operatorname t}\partial_w\,{\bf x},$ et qui sont plus faciles à calculer.

Rappelons les deux propriétés de la comatrice suivantes :

$$\text{com}\,{}^{\operatorname t}{\bf M} = {}^{\operatorname t}\text{com}\,{\bf M}$$$${\bf M}\,{\bf a}\wedge{\bf M}\,{\bf b} = \text{com}\,{\bf M} \, ({\bf a}\wedge{\bf b})$$

Ainsi, on a :

$$\begin{aligned}{\bf grad_x}\,u({\bf x}) &= {\bf J^{-1}}\,{\bf e_x} \\ &= \frac{1}{\det\,{\bf J}}\,{}^{\operatorname t}\text{com}\,{\bf J}\,{\bf e_x} \\ &= \frac{1}{\det\,{\bf J}}\,\text{com}\,{}^{\operatorname t}{\bf J}\,{\bf e_x}\\ &= \frac{1}{\det\,{\bf J}}\,\text{com}\,{}^{\operatorname t}{\bf J}\,({\bf e_y}\wedge{\bf e_z})\\ &= \frac{1}{\det\,{\bf J}}\, {}^{\operatorname t}{\bf J}\,{\bf e_y}\wedge{}^{\operatorname t}{\bf J}\,{\bf e_z}\\ &= \frac{1}{\det\,{\bf J}}\,\left(\partial_v\,{\bf x}\wedge\partial_w\,{\bf x} \right)\end{aligned}$$

On peut faire de même pour les deux autres colonnes, au final, on obtient :

$$\boxed{\left\{\begin{aligned}{\bf grad_x}\,u({\bf x}) = \frac{1}{\det\,{\bf J}}\,\left(\partial_v\,{\bf x}\wedge\partial_w\,{\bf x} \right)\\[2ex] {\bf grad_x}\,v({\bf x}) = \frac{1}{\det\,{\bf J}}\,\left(\partial_w\,{\bf x}\wedge\partial_u\,{\bf x} \right) \\[2ex] {\bf grad_x}\,w({\bf x}) = \frac{1}{\det\,{\bf J}}\,\left(\partial_u\,{\bf x}\wedge\partial_v\,{\bf x} \right)\end{aligned}\right.}$$

Le déterminant de la matrice jacobienne de transformation ($\det\,{\bf J},$ appelé Jacobien) peut se calculer par :

$$\det\,{\bf J} = \det\,{}^{\operatorname t}{\bf J} = \partial_u\,{\bf x}\cdot(\partial_v\,{\bf x}\wedge\partial_w\,{\bf x})$$

Ce Jacobien est très important car il intervient directement dans les formules d’intégration sur l’élément $K$ qui sont (par la formule de changement de variable) :

$$\iiint_K f({\bf x})\,\text{d}{\bf x} = \iiint_{K_r} f\left({\bf x}({\bf u})\right)\,\det\,{\bf J}\,\text{d}{\bf u}$$

Ci-dessous, vous trouverez une petite application permettant de calculer le Jacobien d’un triangle quelconque (avec l’aimable autorisation de son auteur B. Thierry) :

Déplacez les sommets du triangle pour modifier la valeur du Jacobien. Quand il est négatif cela signifie que le triangle est "retourné" par rapport au triangle de référence


Éléments isoparamétriques

Un élément isoparamétrique est un élément fini dont les fonctions de base nodales (qui permettent l’interpolation des champs scalaires) sont aussi utilisées pour paramétrer l’élément géométrique associé (fonctions d’interpolation géométrique) [Dula94].

Les fonctions de base vues ci-dessus sont définies par morceaux, sur chacun des éléments géométriques qui remplissent le domaine étudié, et permettent alors d’assurer leur continuité aux interfaces entre éléments. Ainsi, il n’y aura pas de discontinuité ni des champs scalaires interpolés, ni des coordonnées après transformation des éléments de référence vers les éléments réels. De telles fonctions de base sont dites conformes.

Considérons un élément fini nodal $(K,P_K,\Sigma_K)$. Si $n_K$ est l’ensemble des nœuds de $K$, de coordonnées ${\bf x_i},~i \in \mathbb{N},$ et si les $p_i({\bf u}),~i \in [\![1,n_K]\!],$ sont ses fonctions de base exprimées dans les coordonnées ${\bf u}$ de l’élément de référence $K_r$ associé à $K$, alors la paramétrisation de $K$ $\left({\bf x} = {\bf x}({\bf u})\right)$ est donnée par :

$$\boxed{{\bf x} = \sum\limits_{i = 1}^{n_K} {\bf x_i}\,p_i({\bf u})}$$

et cet élément est isoparamétrique.

Remarque

Dans ce cas, les fonctions de base permettent de passer de l’élément de référence à un élément réel et ainsi de déterminer la forme de ce dernier. C’est pour cela qu’on les appelle aussi fonctions de forme.

Fonctions de base globales

À l’aide de la transformation géométrique précédente et des fonctions de bases $p_i,~i \in [\![1, n_K]\!]$ définies sur l’élément de référence, nous pouvons définir les fonctions de base globales $\varphi_i,~i \in [\![1, n_h]\!]$ définies sur le maillage complet $\mathcal{M}_h$. Il y en aura autant que de nœuds et chacune sera liée à un nœud particulier. Elle seront non-nulles uniquement sur les éléments contenant le nœud considéré. Cet ensemble d’éléments est appelé le support de la fonction de base.

Finalement, d’après ce qui précède, la fonction de base $\varphi_k$ liée au nœud $k \in [\![1, n_h]\!]$ sera nulle sur tous les nœuds du maillage sauf le nœud $k$ où elle prendra la valeur $1$. Soit, en notant ${\bf x_j}$ les coordonnées du nœud $j$ :

$$\boxed{\forall i,j \in [\![1,n_h]\!], ~ \varphi_i({\bf x_j}) = \delta_{ij}}$$

Une illustration interactive est donnée par l’application suivante (toujours avec l’aimable autorisation de son auteur) :

Application : Cliquez sur un sommet pour faire apparaitre la fonction de forme $\mathbf{P_1}$ associée. Les triangles où la fonction n’est pas nulle forment le support de la fonction de forme.


La famille $(\varphi_i)_{0\le i \le n_h}$ ainsi construite forme une base de $V_h$ qui est donc de dimension $n_h$ égale aux nombre de nœuds du maillage $\mathcal{M}_h$.

Soit $u_h$ une fonction de $V_h$. En la décomposant dans la base obtenue :

$$ u_h = \sum\limits_{i = 1}^{n_h} u_i\,\varphi_i$$

Les coefficients $u_i$ sont en fait les valeurs de la fonctions au nœuds. En effet en appliquant en ${\bf x_j}$ :

$$u_h({\bf x_j}) = \sum\limits_{i = 1}^{n_h} u_i\,\varphi_i({\bf x_j}) = u_j$$

Finalement, une fonction $u_h$ de $V_h$ se décompose donc dans la base $(\varphi_i)_{0\le i \le n_h}$ selon :

$$\boxed{u_h = \sum\limits_{i = 1}^{n_h} u_h({\bf x_i})\,\varphi_i}$$

et elle est entièrement caractérisée par ses $n_h$ valeurs aux nœuds.


Remarques complémentaires importantes

  1. Dans le cas présenté, les fonctions de base de l’élément de référence servent aussi à paramétrer les éléments réels (fonctions d’interpolation géométrique). Cela correspond au cas particulier des éléments isoparamétriques, mais ces deux types de fonctions sont indépendants l’un de l’autre :

    • On pourrait tout à fait utiliser des fonctions de base d’ordre 2 (interpolation quadratique) ou d’ordre 3 (interpolation cubique) avec la transformation géométrique précédente (et les éléments rectilignes précédents). Un exemple fonctionnant sous Onelab vous sera fourni page suivante.
    • On pourrait utiliser des fonctions d’interpolation géométrique d’ordre 2 pour définir des éléments courbes. Le cas isoparamétrique (ou les deux types de fonctions sont d’ordre 2) correspond aux éléments dits $\mathbf{P_2}$ (ou $\mathbf{Q_2}$ si quadrangles).
  2. Les éléments présentés ci-dessus conviennent parfaitement pour représenter des champs scalaires, nous verrons plus tard lesquels utiliser pour les champs vectoriels.

  3. Plus que les fonctions de bases globales, ce sont les fonctions de base sur les éléments de référence et la matrice Jacobienne qui sont utiles pour créer le système à résoudre, c’est ce que nous allons voir de suite.

Assemblage et résolution

Assemblage du système à résoudre

On rappelle l’approximation de la formulation faible à résoudre obtenue par la méthode de Galerkin :

$$\forall i \in [\![1,n_h]\!]~ ,~ \sum\limits_{j=1}^{n_h} a(\varphi_i,\varphi_j)\,u_j = L(\varphi_i)$$

Avec :

$$ a(\varphi_i,\varphi_j) = \iiint_{\Omega} \alpha\,{\bf grad}\,\varphi_i \cdot {\bf grad}\,\varphi_j~\text{d}\Omega$$

Et :

$$\displaystyle L(\varphi_i) = \underbrace{\iiint_{\Omega} \beta\,\varphi_i~\text{d}\Omega}_{\displaystyle\left(\beta,\varphi_i\right)_{\Omega}} + \underbrace{\iint_{\Gamma_n} \alpha\,\gamma\,\varphi_i~\text{d}\Gamma}_{\displaystyle\left<\alpha\,\gamma,\varphi_i\right>_{\Gamma_n}}$$

Cette formulation est équivalente à la forme matricielle :

$${\bf A_h}\,{\bf U_h} = {\bf B_h}$$

avec :

$$\left\{\begin{aligned}&{\bf A_h} = \big(a(\varphi_i,\varphi_j)\big)_{1\le i,j\le n_h} = (A_{ij})_{1\le i,j\le n_h} \\[1ex] &{\bf B_h} = \big(L(\varphi_i)\big)_{1\le i\le n_h} = (B_i)_{1\le i\le n_h} \end{aligned}\right.$$

Calcul de ${\bf A_h}$ (matrice de rigidité ou de raideur)

Nous pourrions calculer les $n_h^2$ termes $A_{ij}$ séparément en effectuant une double boucle sur les nœuds. Cette façon de procéder n’est pas très pertinente car de nombreux termes sont nuls : typiquement, lorsque le nœud $i$ n’appartient pas à un élément du support de $\varphi_j$.

Une méthode plus efficace consiste à boucler sur tous les éléments de $\mathcal{M}_h$ et pour chaque élément $K_q$ calculer sa contribution $a_q(\varphi_k,\varphi_l),$ $(k,l) \in [\![1,n_{K_q}]\!]$ à la matrice globale ${\bf A_h}$ :

$$a_q(\varphi_k,\varphi_l) = \iiint_{K_q} \alpha({\bf x})\,{\bf grad}\,\varphi_k({\bf x}) \cdot {\bf grad}\,\varphi_l({\bf x})~\text{d}{\bf x} $$

D’après notre formule de changement de base :

$$a_q(\varphi_k,\varphi_l) = \iiint_{K_r} \alpha\left({\bf x}({\bf u})\right)\,{\bf grad}\,\varphi_k\left({\bf x}({\bf u})\right) \cdot {\bf grad}\,\varphi_l\left({\bf x}({\bf u})\right)\,\text{det}\,{\bf J_q}~\text{d}{\bf u} $$

En utilisant les relations entre les gradients et la matrice jacobienne de transformation géométrique :

$$a_q(\varphi_k,\varphi_l) = \iiint_{K_r} \alpha\left({\bf x}({\bf u})\right)~ \left({\bf J_q^{-1}}\,{\bf grad}\,p_k({\bf u})\right) \cdot \left({\bf J_q^{-1}}\,{\bf grad}\,p_l({\bf u})\right)\,\text{det}\,{\bf J_q}~\text{d}{\bf u}$$

Finalement :

$$\boxed{a_q(\varphi_k,\varphi_l) = \text{det}\,{\bf J_q} \iiint_{K_r} \alpha\left({\bf x}({\bf u})\right)~ {}^{\operatorname t}\left({\bf grad}\,p_k({\bf u})\right)\,{}^{\operatorname t}({\bf J_q^{-1}})\,{\bf J_q^{-1}}\,{\bf grad}\,p_l({\bf u})~ \text{d}{\bf u}}$$

Nous avons vu comment calculer ${\bf x}({\bf u})$, $\text{det}\,{\bf J_q}$ et ${\bf J_q^{-1}}$ à la page précédente, et les gradients des fonctions de base se déterminent facilement à partir de leurs expressions.

Ainsi, pour calculer les $n_{K_q}$ contributions de l’élément $K_q$, il nous reste plus qu’à savoir comment déterminer l’intégrale sur l’élément de référence $K_r$. Nous le verrons ci-après.

Calcul de ${\bf B_h}$ (second membre)

Intéressons nous maintenant au membre de droite en l’absence de condition de Neumann particulière.

Cas sans condition de Neumann hétérogène

Nous allons procéder de la même manière que pour ${\bf A_h}$ en calculant les contributions $L_q(\varphi_k)$ de chaque élément $K_q$ à ${\bf B_h}$ :

$$\begin{aligned}L_q(\varphi_k) &= \iiint_{K_q} \beta({\bf x})\,\varphi_k({\bf x})\,\text{d}{\bf x} \\ &= \iiint_{K_r} \beta\left({\bf x}({\bf u})\right)\,p_k({\bf u})\,\text{det}\,{\bf J_q}~\text{d}{\bf u}\end{aligned}$$

Finalement :

$$\boxed{L_q(\varphi_k) = \text{det}\,{\bf J_q} \iiint_{K_r} \beta\left({\bf x}({\bf u})\right)\,p_k({\bf u})~\text{d}{\bf u}}$$

Cas avec condition de Neumann hétérogène

Dans le cas d’une condition de Neumann non nulle, nous procédons comme ci-dessus mais en plus nous devons également calculer les contributions $L_q^n(\varphi_k)$ des éléments de la frontière $\Gamma_n$. Ceux-ci sont d’une dimension moindre que les éléments constituant le domaine $\Omega$. Ce seront donc des triangles ou des quadrangles en 3D, ou des segments en 2D.

Pour chaque éléments $K_q^n$ de $\Gamma_n$, nous calculons ainsi :

$$L_q^n(\varphi_k) = \iint_{K_q^n} \alpha({\bf x})\,\gamma({\bf x})\,\varphi_k({\bf x})\,\text{d}{\bf x}$$$$\boxed{L_q^n(\varphi_k) = \text{det}\,{\bf J_q^n} \iint_{K_r^n} \alpha\left({\bf x}({\bf u})\right)\,\gamma\left({\bf x}({\bf u})\right)\,p_k({\bf u})\,\text{d}{\bf u}}$$

où $K_r^n$ est l’élément de référence associé aux éléments du bord du domaine.

Intégration numérique

Pour achever le calcul des coefficients des deux matrices, nous devons calculer les intégrales des différents termes sur le (ou les) élément(s) de référence. Pour cela nous allons utiliser une méthode de quadrature ; et généralement, c’est une formule de quadrature de Gauss.

Ainsi, on aura :

$$\iiint_{K_r} f({\bf u})\,\text{d}{\bf u} \approxeq \sum\limits_{m=1}^{n_g} \omega_m\,f({\bf x_{g_m}})$$

où les ${\bf x_{g_m}}$ sont les coordonnées des $n_g$ points de Gauss choisis et $w_m$ les poids associés.

On notera que le calcul donne même la valeur exacte dans le cas de polynôme (à condition d’avoir le bon nombre de points de Gauss).

Dans la table ci-dessous, sont donnés quelques exemples :

Élément $n_g$ Points de Gauss Poids Exacte pour
Segment $1$ $x_g = 0$ $\omega =2$ degré 1
$2$ $x_{g_1} = -\frac{1}{\sqrt{3}}$, $x_{g_2} = \frac{1}{\sqrt{3}}$ $\omega_1 = \omega_2 = 1$ degré 2
Triangle $1$ ${\bf x_g} = (\frac{1}{3},\frac{1}{3})$ $\omega=\frac{1}{2}$ degré 1
$3$ ${\bf x_{g_1}} = (\frac{1}{6},\frac{1}{6})$, ${\bf x_{g_2}} = (\frac{2}{3},\frac{1}{6})$, ${\bf x_{g_3}} = (\frac{1}{6},\frac{2}{3})$ $\omega_1 = \omega_2 = \omega_3 = \frac{1}{6}$ degré 2
Quadrangle $1$ ${\bf x_g} = (0,0)$ $\omega=4$ degré 1
$4$ ${\bf x_{g_1}} = (\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}})$, ${\bf x_{g_2}} = (-\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}})$, ${\bf x_{g_3}} = (\frac{1}{\sqrt{3}},-\frac{1}{\sqrt{3}})$, ${\bf x_{g_4}} = (-\frac{1}{\sqrt{3}},-\frac{1}{\sqrt{3}})$ $\omega_1 = \omega_2$ $= \omega_3$ $= \omega_4$ $= 1$ degré 2
Tétraèdre $1$ ${\bf x_g} = (\frac{1}{4},\frac{1}{4},\frac{1}{4})$ $\omega=\frac{1}{6}$ degré 1
$4$ ${\bf x_{g_1}} = (\alpha,\alpha,\alpha)$, ${\bf x_{g_2}} = (\alpha,\alpha,\beta)$, ${\bf x_{g_3}} = (\alpha,\beta,\alpha)$, ${{\bf x_{g_4}} = (\beta,\alpha,\alpha)}$, avec : ${\alpha = 0,138196601125}$, ${\beta = 0,585410196625}$ $\omega_1 = \omega_2$ $= \omega_3 = \omega_4$ $= \frac{1}{24}$ degré 2

On remarquera que dans tous les cas, la somme des poids est égale à la longueur, l’aire ou le volume de l’élément considéré.

Astuce

Contrairement à ce qu’on pourrait penser, le choix du nombre de points de Gauss n’est pas primordial car l’erreur commise par la méthode d’intégration est faible devant les autres approximations de la méthode. Les seconds choix de la table précédente sont donc tout à fait pertinents (on n’utilisera que des fonctions de bases linéaires, voire quadratiques).

Résolution

Après génération du système linéaire précédent, il ne reste plus qu’à résoudre. Il convient donc de choisir une méthode / un algorithme pouvant résoudre efficacement des systèmes de grande taille mais creux.

Remarque

Pour les différentes méthodes de résolution (avec ou sans pré-conditionnement), je vous renvoie à l’EC d’« Analyse numérique », du tronc commun de S6.

Dans le cadre de ce cours, nous utiliserons GetDP pour définir et résoudre nos problèmes. Ce dernier s’appuie sur la suite PETSc configurée pour appeler le solveur linéaire direct multithreadé MUMPS (avec factorisation LU).

Après résolution, nous avons accès aux valeurs des degrés de liberté (valeurs du champ scalaire recherché) en chaque nœud du maillage. Nous pouvons ensuite calculer ce champ ou ses dérivés à partir de ces valeurs pour les tracer ou calculer tout autre grandeur locale ou globale. C’est ce qu’on appelle le post-traitement (post-processing).

Application à notre exemple (résolution avec GetDP)

Nous allons mettre en application ce qui précède sur notre exemple fil rouge, en écrivant le script GetDP permettant de le résoudre. Ce dernier doit porter le même nom que le fichier *.geo avec l’extension *.pro, ici : poisson.pro. Le déroulement suit les différentes étapes décrites dans les sections ci-avant, soit :

  1. Lien avec le maillage : Où nous chargeons les différents paramètres et groupons les éléments en fonction de leur région d’appartenance.
Include "data.geo" ;

Group{
  Domaine = Region[{DISQUE,SOURCE}];
  Source = Region[{SOURCE}];
  Dirichlet = Region[{DIRICHLET}];
  Neumann = Region[{NEUMANN}];
}
  1. Définition des fonctions :
Function{
  beta[#{Source}] = 1.0;
  gamma[#{Neumann}] = 1.0;
}
  1. Définition du Jacobien et de la méthode d’intégration :
Jacobian{
  { Name Jvol;
    Case {
      { Region All ; Jacobian Vol; }
    }
  }
}

Integration {
  { Name Integ;
    Case { 
      {Type Gauss;
	Case { 
	  { GeoElement Line ; NumberOfPoints 2; }
	  { GeoElement Triangle ; NumberOfPoints 6; }
	  { GeoElement Quadrangle ; NumberOfPoints 4; }
	}
      }
    }
  }
}
  1. Définition des contraintes : permettant de définir les conditions aux limites dans les espaces fonctionnels
Constraint {	
  {Name ConditionDirichlet ;
    Case {      
      {Region Dirichlet ; Type Assign ; Value 0. ;}
    }
  }
}
  1. Définition de l’espace fonctionnel :
FunctionSpace {
  { Name Hgrad ; Type Form0 ; 
    BasisFunction { 
      { Name sn ; NameOfCoef phi ; Function BF_Node ; 
	Support Region[{Domaine,Neumann}]  ; Entity NodesOf[All] ; }
    } 
    Constraint {
      { NameOfCoef phi  ; EntityType NodesOf ; NameOfConstraint ConditionDirichlet ; }
    }
  }
}
  1. Définition de la formulation (faible) :
Formulation {
  { Name Poisson ; Type FemEquation ;
    Quantity {
      { Name u  ; Type Local  ; NameOfSpace Hgrad ; }
    }
   Equation {
      Integral { [ Dof{Grad u}  , {Grad u} ] ;
		In Domaine ; Jacobian Jvol ; Integration Integ ; }
      Integral { [  -beta[] , {u} ] ;
		In Source ; Jacobian Jvol ; Integration Integ ; }     
      Integral { [ -gamma[] , {u} ] ; 
      	In Neumann ; Jacobian Jvol ; Integration Integ ; }
    }
  }
}
  1. Résolution :
Resolution {
  { Name analyse ;
    System {
      { Name Sys ; NameOfFormulation Poisson ; }
    }
    Operation {
      Generate[Sys] ; 
      Solve[Sys] ;
      SaveSolution[Sys] ;
    }
  }
}
  1. Post-traitement : Calcul des grandeurs (PostProcessing) et tracé ou afffichage (PostOperation).
PostProcessing {
  { Name PostProc ; NameOfFormulation Poisson ;
    Quantity {	
      { Name u  ; Value { Term { [ {u} ] ; In Domaine ; Jacobian Jvol ; } } }
      { Name Grad_u  ; Value { Term { [ {Grad u} ] ; In Domaine ; Jacobian Jvol ; } } }
      { Name normu ; Value { Integral { [ Norm[{u}] ]  ; In Domaine ; 
	    Jacobian Jvol ; Integration Integ ;} } } 
    }
  }
}

PostOperation PostOp UsingPost PostProc {
  Print[ Grad_u, OnElementsOf Domaine, File "gradu.pos"] ;
  Print[ u, OnElementsOf Domaine, File "u.pos"] ;
  Print[ normu[Domaine], OnGlobal, File "normu.dat", 
    SendToServer "Modele/Resultats/1Norme (u)", Color "AliceBlue" ];
}


J’ai regroupé l’ensemble des fichiers permettant de résoudre notre exemple dans un petit modèle Onelab pouvant être utilisé directement dans Gmsh.
Vous pouvez même l’exécuter sur votre smartphone avec l’application Onelab (disponible sur les stores officiels) !
Edit (janv. 2026) : Pour ceux qui sont sous Android ou dérivés, l’app n’est malheureusement plus dans le Play Store. Vous pouvez néanmoins télécharger l’apk à partir de ce lien et l’installer directement (je procède comme ça sous GrapheneOS).

J’ai rajouté :

  • une option pour choisir un maillage triangulaire ou quadrangulaire,
  • un paramètre de contrôle du maillage (plus la valeur est grande, plus le maillage est fin),
  • une option pour choisir l’ordre d’interpolation (ordre des fonctions de base) : linéaire, quadratique, ou cubique (dernier cas seulement pour les triangles).

Exemple fil rouge à télécharger (compatible PC et smartphone) :

Modèle Onelab du running example (MAJ : 03 mai 2022)

Éléments finis de Whitney

Contexte

Nous venons de développer complètement le principe de la méthode des éléments finis pour des champs scalaires appartenant à $\text{H}^1(\Omega) \left(= \text{H}({\bf grad},\Omega)\right)$. Pour cela, nous avons utilisé des éléments de Lagrange bien adaptés pour ce type d’inconnues.

Cependant les différents champs constituant le champ électromagnétique sont également des grandeurs vectorielles pouvant appartenir à ${\bf H}({\bf rot},\Omega)$ ou ${\bf H}(\text{div},\Omega)$. Typiquement nous ne pouvons résoudre notre formulation rot-rot avec des éléments de Lagrange tels quels. Nous pourrions choisir de résoudre avec trois champs scalaires pour déterminer notre vecteur inconnu (un par composante), mais cette solution est loin d’être la plus pertinente en terme d’efficacité et d’aspects géométriques (respect de certaines conditions de continuité aux interfaces).

Parmi la grande variété d’éléments finis existants, une famille est très largement utilisée pour modéliser des problèmes électromagnétiques : les éléments finis de Whitney. En fait, ces derniers ont été spécifiquement créés dans ce but [Boss93]. Basés sur les formes différentielles du même nom, ils offrent un cadre idéal pour approximer nos champs en 3D car ils permettent de construire de manière séquentielle les espaces discrets auxquels ils appartiennent. Nous allons donc présenter succinctement ces éléments.

Éléments de Whitney

Contrairement aux éléments précédents, les éléments de Whitney sont initialement définis en 3D et s’appuient sur des degrés de libertés pouvant être reliés aux valeurs aux nœuds (éléments nodaux), mais aussi aux circulations le long des arêtes (éléments d’arête), aux flux au travers des facettes (éléments de facette), et aux intégrales sur les volumes (éléments de volume) des éléments du maillage. Compte tenu de ces différences de nature entre degrés de liberté, on les appelle parfois éléments finis mixtes.

Astuce

Nous verrons dans la partie applicative qu’il est tout a fait possible de traiter des cas 2D. Selon les cas : soit directement, soit en utilisant certaines adaptations (arêtes ou facettes fictives orthogonales au plan d’étude).

Espaces discrets

Le principe de base est de construire successivement les espaces discrets $W^0$, $W^1$, $W^2$ et $W^3$ permettant d’approximer respectivement $\text{H}({\bf grad},\Omega)$, ${\bf H}({\bf rot},\Omega)$, ${\bf H}(\text{div},\Omega)$ et $L^2(\Omega)$, à partir d’une séquence de fonctions de base, liées respectivement aux nœuds $(\mathcal{N_h})$, aux arêtes $(\mathcal{A_h})$, aux facettes $(\mathcal{F_h})$ et aux volumes $(\mathcal{V_h})$ des éléments du maillage $\mathcal{M_h}$.

On peut synthétiser l’ensemble dans la table suivante :

Espace Approxime Fonctions de bases Propriété Degré de liberté Type d’élément
$W^0$ $\text{H}({\bf grad},\Omega)$ $\{s_n,~ n\in\mathcal{N_h}\}$ $s_i({\bf x_j}) = \delta_{ij},~$ ${\forall i,j \in\mathcal{N}_h}$ Valeur nodale Élément nodal
$W^1$ ${\bf H}({\bf rot},\Omega)$ $\{ {\bf s_a},~ a\in \mathcal{A_h}\}$ $\displaystyle \int_j {\bf s_i}\cdot{\bf dl} = \delta_{ij},~$ ${\forall i,j \in\mathcal{A_h}}$ Circulation le long d’une arête Élément d’arête
$W^2$ ${\bf H}(\text{div},\Omega)$ $\{ {\bf s_f},~ f\in \mathcal{F_h}\}$ $\displaystyle \iint_j {\bf s_i}\cdot{\bf n}~ \text{d}S =\delta_{ij},~$ ${\forall i,j \in\mathcal{F}_h}$ Flux à travers une face Élément de facette
$W^3$ $L^2(\Omega)$ $\{s_v,~ v\in\mathcal{V_h}\}$ $\displaystyle \iiint_j s_i~\text{d}V = \delta_{ij},~$ ${\forall i,j \in\mathcal{V}_h}$ Intégrale volumique Élément de volume

En procédant ainsi, on respecte la séquence vue sur les espaces continus, à savoir :

$$W^0 \xrightarrow[]{{\bf grad}} W^1 \xrightarrow[]{{\bf rot}} W^2 \xrightarrow[]{\text{div}} W^3 $$

Et l’ensemble nous permet également d’assurer les continuités aux interfaces :

  • de valeur pour les $s_n$ ;
  • de composante tangentielle pour les ${\bf s_a}$ ;
  • de composante normale pour les ${\bf s_f}$.

Voyons maintenant comment définir ces fonctions de base (sur les éléments de références).

Fonctions de base

Fonctions de base nodales

Puisque $W_0$ est une approximation de $\text{H}({\bf grad},\Omega) = \text{H}^1$, nous pouvons réutiliser les fonctions définies dans les parties précédentes. Nous aurons donc pour tout nœud $n_i = \{i\}$ de $\mathcal{N_h}$ :

$$s_{n_i} = p_i,~ ~ \forall\,i \in [\![1, n_K]\!]$$

Tout ce qui précède reste donc valable. Les fonctions de base nodales des éléments de Whitney sont celles des éléments de Lagrange.

Fonctions de base d’arête

À une arête ${\bf a_{ij}} = \{i\rightarrow j\}$ de $\mathcal{A_h}$, on associe :

$${\bf s_{a_{ij}}} = p_j~{\bf grad}\left(\sum\limits_{r\in \operatorname{N}(j,\overline{i})} p_r \right) - p_i~{\bf grad}\left(\sum\limits_{r\in \operatorname{N}(i,\overline{j})} p_r \right) $$

Où $\operatorname{N}(i,\overline{j})$ représente l’ensemble des nœuds de la facette $f$ contenant le nœud $i$ mais pas le nœud $j$.

Remarque : Dans le cas du tétraèdre, l’expression ci-dessus se ramène à :

$${\bf s_{a_{ij}}} = p_i~{\bf grad}\,p_j - p_j~{\bf grad}\,p_i$$

À titre d’illustration, nous traçons un exemple pour les triangle, quadrangle, tétraèdre et hexaèdre de référence ci-dessous :

${\bf s_{a_{23}}}$ sur tétraèdre ${\bf s_{a_{23}}}$ sur hexaèdre
sa23 tetra sa23 tetra sa23 tetra sa23 tetra

En considérant une facette fictive $f$ orthogonale au plan d’étude, on peut définir nos fonctions de base en 2D, et dans ce cas, on obtient :

${\bf s_{a_{23}}}$ sur triangle ${\bf s_{a_{23}}}$ sur quadrangle
sa23 triangle sa23 triangle sa23 quadrangle sa23 quadrangle

Fonctions de base de facette

À une facette orientée ${\bf f_{ijk}} = \{i,j,k\} = \operatorname{N}({\bf f_{ijk}})$ (si tétrahèdre) ou ${\bf f_{ijkl}} = \{i,j,k,l\} = \operatorname{N}({\bf f_{ijkl}})$ (si hexaèdre) de $\mathcal{F_h}$, on associe :

$${\bf s_{f_{ijk(l)}}} = a~{\large \sum\limits_{q \in \operatorname{N}({\bf f_{ijk(l)}})}} { p_q \left({\bf grad}\,\sum\limits_{r \in \operatorname{N}(q,\overline{q+1})} p_r \right)\wedge\left({\bf grad}\,\sum\limits_{r \in \operatorname{N}(q,\overline{q-1})} p_r \right) }$$

où la liste des nœuds de la facette $\operatorname{N}({\bf f})$ est rendue circulaire, $\operatorname{N}(i,\overline{j})$ conserve sa définition précédente et $a$ est un coefficient tel que : $ a= 2$ si $\dim(\operatorname{N}({\bf f})) = 3$ et $a = 1$ si $\dim(\operatorname{N}({\bf f})) = 4$.

On représente graphiquement ces fonctions de facette en 2D (facette fictive perpendiculaire au plan d’étude) dans la table ci-dessous :

${\bf s_{f_{23\perp}}}$ sur triangle ${\bf s_{f_{23\perp}}}$ sur quadrangle
sa23 triangle sa23 triangle sa23 quadrangle sa23 quadrangle

Fonctions de base de volume

À l’élément $K$, on fait correspondre la fonction de base de volume :

$$s_{v_K} = \frac{1}{\operatorname{vol}(K)}$$

qui est donc constante sur l’élément.

Remarque

Les fonctions de base se généralisent aux éléments de type pyramide et prisme. Pour de plus amples détails voir : [Dula94] et [Geuz01].

Degrés de liberté

Avec les définitions précédentes on peut décomposer tout champ scalaire ou vectoriel selon son espace d’appartenance :

  1. Soit $u \in \text{H}({\bf grad},\Omega)$, son approximation sur $\mathcal{M_h}$ est $u_h \in W^0$ tel que :

    $$u_h = \sum\limits_{n\in\mathcal{N_h}} \sigma_n(u_h)\,s_n = \sum\limits_{n\in\mathcal{N_h}} u_n\,s_n$$

    avec :

    $$u_n = u_h({\bf x_n})$$
  2. Soit ${\bf u} \in \textbf{H}({\bf rot},\Omega)$, son approximation sur $\mathcal{M_h}$ est ${\bf u_h} \in W^1$ tel que :

    $${\bf u_h} = \sum\limits_{a\in\mathcal{A_h}} \sigma_a({\bf u_h})\,{\bf s_a} = \sum\limits_{a\in\mathcal{A_h}} {u_a}\,{\bf s_a}$$

    avec :

    $$u_a = \int_a {\bf u_h}\cdot{\bf dl}$$
  3. Soit ${\bf u} \in \textbf{H}(\text{div},\Omega)$, son approximation sur $\mathcal{M_h}$ est ${\bf u_h} \in W^2$ tel que :

    $${\bf u_h} = \sum\limits_{f\in\mathcal{F_h}} \sigma_f({\bf u_h})\,{\bf s_f} = \sum\limits_{f\in\mathcal{F_h}} {u_f}\,{\bf s_f}$$

    avec :

    $$u_f = \iint_f {\bf u_h}\cdot{\bf n}~\text{d}S$$
  4. Soit $u \in L^2(\Omega)$, son approximation sur $\mathcal{M_h}$ est $u_h \in W^3$ tel que:

    $$u_h = \sum\limits_{v\in\mathcal{V_h}} \sigma_v(u_h)\,s_v = \sum\limits_{v\in\mathcal{V_h}} u_v\,s_v$$

    avec :

    $$u_v = \iiint_v u_h~\text{d}V$$

Ainsi, en décomposant nos approximations dans les bons espaces, on peut appliquer la méthode de Galerkin en utilisant les fonctions de base ci-dessus comme fonctions tests. Par analogie avec les éléments nodaux de la section précédente, on se ramènera donc à la résolution d’un système linaire où le vecteur inconnu ${\bf U_h}$ correspondra aux différents degrés de liberté.

Application des éléments d’arête à la formulation rot-rot

Formulation

On rappelle la formulation faible continue à résoudre :

$$\left\{\begin{aligned}&\text{Trouver}~ {\bf u} \in\textbf{H}_0({\bf rot},\Omega) ~ \text{tel que :} \\ & \left(\alpha\,{\bf rot\,u},{\bf rot\,v}\right)_{\Omega} = - \left(\boldsymbol{\beta},{\bf v}\right)_{\Omega} - \left<\alpha\,\boldsymbol{\gamma},{\bf v}\right>_{\Gamma_n},~ \forall\,{\bf v} \in \textbf{H}_0({\bf rot},\Omega) \end{aligned}\right.$$

Qui devient en discret :

$$\left\{\begin{aligned}&\text{Trouver}~ {\bf u_h} \in W_0^1 ~ \text{tel que :} \\ & \left(\alpha\,{\bf rot\,u_h},{\bf rot\,v_h}\right)_{\Omega} + \left(\boldsymbol{\beta},{\bf v_h}\right)_{\Omega} + \left<\alpha\,\boldsymbol{\gamma},{\bf v_h}\right>_{\Gamma_n} = 0,~ \forall\,{\bf v_h} \in W_0^1\end{aligned}\right.$$

Où $W_0^1 \in W^1$ est obtenu en annulant les degrés de liberté sur les arêtes appartenant à la frontière $\Gamma_d$. On constate que cela implique bien notre condition de bord :

$$\left.{\bf u_h}\wedge{\bf n}\right|_{\Gamma_d} = {\bf 0}~ , ~ \text{sur}~ \Gamma_d$$

La façon de procéder est identique à celle basée sur les éléments nodaux. Nous pouvons calculer les contributions de chaque arête élément par élément et les ajouter à la matrice de raideur globale ${\bf A_h}$, ou au vecteur second membre ${\bf B_h}$. On peut finalement résoudre le système obtenu, mais seulement après avoir implanté une condition de jauge comme expliqué ci-après. En effet, une telle formulation sous forme brute conduit à une matrice ${\bf A_h}$ singulière.

Condition de jauge

Nous savons malheureusement qu’un problème général (en 3D) comme celui-ci n’a pas de solution unique (vient de l’équivalence avec la formulation forte) et que le champ ${\bf u_h}$ solution est défini à un champ de gradient près. Il est alors impossible de résoudre le système obtenu sans avoir ajouté de condition de jauge particulière. Nous allons donc voir comment procéder.

Jauge d’arbre

Dans le domaine continu, pour rendre ${\bf u}$ unique, on peut ajouter une condition du type :

$${\bf u}\cdot{\bf w} = 0$$

Où ${\bf w}$ est un champ de vecteurs dont les lignes de champ ne sont pas fermées et sont telles qu’elles peuvent relier toute paire de points quelconque du domaine d’étude $\Omega$ (par exemple un champ de gradient divergeant).

Dans le domaine discret, nous allons construire un arbre. C’est un ensemble d’arêtes qui relient tous les nœuds du maillage entre eux sans former de chemin fermé. Les arêtes du maillage qui ne sont pas dans l’arbre constituent le co-arbre associé. Un moyen de jauger ${\bf u_h}$ est ainsi d’annuler les composantes sur les arrêtes de l’arbre (condition équivalente à celle continue ci-dessus). Afin de ne pas dénaturer les conditions imposées sur $\Gamma_d$, il convient de commencer à construire l’arbre à partir des arrêtes de cette frontière. Une représentation graphique est donnée ci-dessous :

Exemple d'un arbre (trait bleu) et d'un co-arbre (trait noir) sur des éléments 3D. Les nœuds sont en rouge et la partie grisée appartient à $\Gamma_d$

En rajoutant la condition de jauge d’arbre dans l’espace fonctionnel auquel appartient ${\bf u_h}$ (que nous noterons $W_{0,\text{JA}}^1 \subset W_0^1$), nous pouvons alors résoudre notre formulation faible rot-rot qui s’exprime :

$$\boxed{\left\{\begin{aligned}&\text{Trouver}~ {\bf u_h} \in W_{0,\text{JA}}^1 ~ \text{tel que :} \\ & \left(\alpha\,{\bf rot\,u_h},{\bf rot\,v_h}\right)_{\Omega} + \left(\boldsymbol{\beta},{\bf v_h}\right)_{\Omega} + \left<\alpha\,\boldsymbol{\gamma},{\bf v_h}\right>_{\Gamma_n} = 0,~ \forall\,{\bf v_h} \in W_{0,\text{JA}}^1\end{aligned}\right.}$$

Cette façon de procéder est la plus efficace d’un point de vue numérique car elle permet de réduire la taille du système à résoudre (par annulation des degrés de liberté liés au arêtes de l’arbre). Cependant la solution obtenue perd son sens physique, seul son rotationnel pourra être interprété physiquement. Pour de plus amples compléments, je vous renvoie à [Dula94] .

Jauge de Coulomb

Une autre Jauge possible est d’annuler la divergence de notre inconnue (Jauge de Coulomb) :

$$\text{div}\,{\bf u} = 0$$

Pour obtenir la forme faible de cette condition, considérons un champ scalaire $\mu$ quelconque de $\text{H}({\bf grad},\Omega)$. On a :

$$\iiint_{\Omega}\text{div}({\bf u})\,\mu ~\text{d}V = 0$$

En utilisant la formule de Green en grad-div :

$$\iiint_{\Omega} {\bf u}\cdot{\bf grad}\,\mu ~ \text{d}V - \iiint_{\Omega} \text{div}(\mu\,{\bf u})~ \text{d}V =0$$

En appliquant le théorème de la divergence et en séparant les deux frontières :

$$\iiint_{\Omega} {\bf u}\cdot{\bf grad}\,\mu ~ \text{d}V - \iint_{\Gamma_d} \mu\,{\bf u}\cdot{\bf n}~ \text{d}S - \iint_{\Gamma_n} \mu\,{\bf u}\cdot{\bf n} ~ \text{d}V =0$$

Nous ne considérerons que le cas d’une condition de Neumann homogène sur $\Gamma_n$ $(\boldsymbol{\gamma} = 0)$, soit : $\left.{\bf rot\,u}\wedge{\bf n}\right|_{\Gamma_n} = 0$. On peut donc en déduire : $\left.{\bf u}\cdot{\bf n}\right|_{\Gamma_n} = 0$. En choisissant $\mu = 0$ sur $\Gamma_d$, on annule le second terme surfacique.

Ainsi, notre condition de Jauge est équivalente à :

$$\boxed{\iiint_{\Omega} {\bf u}\cdot{\bf grad}\,\mu ~ \text{d}V = 0~ ,~ ~ \forall \, \mu \in \text{H}_0({\bf grad},\Omega)}$$

Si nous ajoutons uniquement ce terme à la formulation faible initiale, nous nous trouverons face à une formulation avec une fonction inconnue et deux fonctions tests. Pour remédier à cela, nous devons introduire un multiplicateur de Lagrange $\lambda$. Ainsi la formulation variationnelle complète devient :

$$\left\{\begin{aligned}&\text{Trouver}~ {\bf u} \in\textbf{H}_0({\bf rot},\Omega),~ \lambda \in \text{H}_0({\bf grad},\Omega) ~ \text{tels que :} \\ &\left(\alpha\,{\bf rot\,u},{\bf rot\,v}\right)_{\Omega} + \left({\bf grad}\,\lambda,{\bf v}\right)_{\Omega} + \left(\boldsymbol{\beta},{\bf v}\right)_{\Omega} = 0,~ \forall\,{\bf v} \in \textbf{H}_0({\bf rot},\Omega)\\ &\left({\bf u},{\bf grad}\,\mu\right)_{\Omega} = 0, \forall \, \mu \in \text{H}_0({\bf grad},\Omega)\end{aligned}\right.$$

La transcription dans le domaine discret est immédiate :

$$\boxed{\left\{\begin{aligned}&\text{Trouver}~ {\bf u_h} \in W_0^1,~ \lambda_h \in W_0^0~ \text{tels que :} \\ &\left(\alpha\,{\bf rot\,u_h},{\bf rot\,v_h}\right)_{\Omega} + \left({\bf grad}\,\lambda_h,{\bf v_h}\right)_{\Omega} + \left(\boldsymbol{\beta},{\bf v_h}\right)_{\Omega} = 0,~ \forall\,{\bf v_h} \in W_0^1 \\ &\left({\bf u_h},{\bf grad}\,\mu_h\right)_{\Omega} = 0, \forall \, \mu_h \in W_0^0 \end{aligned}\right.}$$

Cette façon de procéder est plus lourde à résoudre : le système est beaucoup plus grand que le précédent car on a rajouté autant de degrés de liberté que de nœuds du maillage. Cependant, elle a le mérite de fournir une solution « plus physique » et plus facilement interprétable.

Chapitre 3 - Méthodes des éléments finis en électromagnétisme basse fréquence


Où on appliquera la MEF à nos problèmes d’électromagnétisme dans l’ARQS.

Sous-sections de MEF en Électromag. BF

Avant-propos

Maxwell House

Les éléments finis de Whitney développés à la fin du chapitre 2 nous fournissent toute une structure permettant d’accueillir parfaitement toutes les constituantes du champ électromagnétique en basse fréquence. Une figure valant mieux qu’un long discours, vous trouverez ci-dessous une version de la Maison de Maxwell (diagramme de Tonti 3D appliqué à l’électromagnétisme dans l’ARQS).

La Maison de Maxwell (Maxwell House) dans l'ARQS : les différents étages de chaque côté correspondent à un espace fonctionnel (en couleur), on passe d'un étage à l'autre par un opérateur différentiel (flèches noires), de l'avant à l'arrière par dérivation temporelle (flèches noires aussi), et d'un côté à l'autre par les lois de comportement (flèches grises).

Pour vous, outre l’aspect esthétique, le principal intérêt de ce diagramme est de rapidement trouver à quel espace appartient chaque champ scalaire ou vectoriel.

$\rightsquigarrow$ Dans la suite, nous allons voir comment formuler des problèmes simples du domaine avec la méthode développée précédemment.

Électrostatique

Dans le cas de l’électrostatique (en anglais electrostatics), nous nous intéresserons au calcul de la distribution du champ électrique ${\bf e}$ due à des charges statiques ou à différents niveaux de potentiel électrique.

Les relations intervenant en électrostatique sont :

  • Les équations de Maxwell en statique suivantes :

    $$\left\{\begin{aligned}\text{div}\,{\bf d} &= \rho_q\\ {\bf rot}\,{\bf e} &= {\bf 0} \end{aligned}\right.$$
  • La loi de comportement dans les milieux diélectriques :

    $${\bf d} = \varepsilon\,{\bf e}$$
  • Pour les conditions aux limites, c’est-à-dire aux frontières du domaine d’étude (${\partial\Omega = \Gamma = \Gamma_d\cup \Gamma_n}$), nous aurons :

    • soit, d’après la condition sur la composante tangentielle de ${\bf e}$ : $$\left.{\bf n}\wedge{\bf e}\right|_{\Gamma_d} = {\bf 0}$$
    • soit, d’après la condition sur la composante normale de ${\bf d}$ : $$\left.{\bf n}\cdot{\bf d}\right|_{\Gamma_n} = 0$$

Formulation forte

Maxwell-Faraday en statique nous permet de définir le potentiel scalaire électrique ${\bf v}$ tel que : ${{\bf e} = -{\bf grad}\,v}$

Ainsi, dans le domaine d’étude $\Omega$, l’équation satisfaite par $v$ est obtenue par substitution dans l’équation de Maxwell-Gauss :

$$ \text{div}\left(\varepsilon\,{\bf grad}\,v \right) + \rho_q = 0$$
Important !

Attention : En électrostatique, les conducteurs sont supposés « parfaits », le champ électrique est nul à l’intérieur et donc $v$ y est constant.

En pratique, les conducteurs seront donc exclus du domaine d’étude et seules les conditions sur leurs bords $(\Gamma_k)$ interviendront :

  • soit en tant que condition de Dirichlet où : $$v|_{\Gamma_i} = v_i$$
  • soit en tant que condition de Neumann où : $$\left.\frac{\partial\,v}{\partial {\bf n}}\right|_{\Gamma_j} = {\bf grad}\,v\cdot {\bf n}\big|_{\Gamma_j} = -\frac{\sigma_{q_j}}{\varepsilon}$$

Aux frontières, nous aurons les mêmes conditions mais homogènes : $ v|_{\Gamma_d} = 0~$ ou $~{\bf grad}\,v\cdot {\bf n}\big|_{\Gamma_n} = 0$.

Finalement, la forme complète de la formulation forte à résoudre est donc :

$$\left\{\begin{aligned}\text{div}\left(\varepsilon\,{\bf grad}\,v\right) + \rho_q &= 0~ , &\text{dans}~ \Omega\\ \left.v\right|_{\Gamma_d} &= 0~, &\text{sur}~ \Gamma_d \\ \left.v\right|_{\Gamma_i} &= v_i~, &\text{sur}~ \Gamma_i \\ \left.{\bf grad}\, v \cdot {\bf n}\right|_{\Gamma_n} &= 0~ , &\text{sur}~ \Gamma_n \\ \left.{\bf grad}\, v \cdot {\bf n}\right|_{\Gamma_j} &= -\frac{\sigma_{q_j}}{\varepsilon}~ , &\text{sur}~ \Gamma_j\end{aligned}\right.$$

Formulation faible

En appliquant le principe vu dans le chapitre précédent, nous en déduisons la formulation faible du problème :

Trouver $v \in \text{H}_{0i}({\bf grad},\Omega) = \{ u \in \text{H}({\bf grad},\Omega) : u|_{\Gamma_d} = 0,~ u|_{\Gamma_i} = v_i \}$, tel que :

$$\forall v' \in \text{H}_{0i}({\bf grad},\Omega),~~ \left(\varepsilon\,{\bf grad}\,v,\,{\bf grad}\,v'\right)_{\Omega} - \left(\rho_q,v'\right)_{\Omega} + \left<\sigma_{q_j},v'\right>_{\Gamma_j} = 0$$

Exemples et applications

Condensateur cylindrique

Nous disposons de tous les outils pour résoudre numériquement l’exemple classique du condensateur cylindrique du premier chapitre (cf ici).

Compte tenu des symétries, le problème pourra se résoudre en 2D axisymétrique sur une demie-géométrie, telle que représentée sur la figure ci-dessous montrant également les conditions aux limites associées ainsi qu’un exemple de maillage :

Géométrie et maillage du condensateur cylindrique Géométrie et maillage du condensateur cylindrique

Dans ce cas, la formulation faible à résoudre se ramène à :

Trouver $v \in \text{H}_{01}({\bf grad},\Omega) = \{ u \in \text{H}({\bf grad},\Omega) : u|_{\Gamma_d} = 0,~ u|_{\Gamma_1} = V_1 \}$, tel que :

$$\forall v' \in \text{H}_{01}({\bf grad},\Omega),~~ \left(\varepsilon\,{\bf grad}\,v,\,{\bf grad}\,v'\right)_{\Omega} = 0$$

Dans GetDP, cela se traduit par :

Constraint {	
  {Name TensionsImposees ;
    Case {      
      { Region Gamma1 ; Type Assign ; Value V1 ; }
      { Region Masse ; Type Assign ; Value 0 ; }
      { Region Dirichlet ; Type Assign ; Value 0 ; }
    }
  }
}

FunctionSpace {
  { Name Hgrad ; Type Form0 ; 
    BasisFunction { 
      { Name sn ; NameOfCoef vn ; Function BF_Node ; 
			Support Region[{Domaine}]  ; Entity NodesOf[All] ; }
    } 
    Constraint {
      { NameOfCoef vn ; EntityType NodesOf ; 
			NameOfConstraint TensionsImposees ; }
    }
  }
}

Formulation {
  { Name Electrostat ; Type FemEquation ;
    Quantity {
      { Name v  ; Type Local  ; NameOfSpace Hgrad ; }
    }
    Equation {
      Galerkin { [ eps[]*Dof{Grad v}  , {Grad v} ] ;
		In Domaine ; Jacobian Jvol ; Integration Integ ; }
    }
  }
}

Explications :

  1. On définit tout d’abord les contraintes sur le potentiel $v$.
  2. Celles-ci permettent de définir ensuite l’espace fonctionnel dans lequel se trouve $v$. On l’appelle ici Hgrad (correspond au $W^0$ du chapitre précédent) qui approxime $\text{H}_{01}({\bf grad},\Omega)$. On utilise des éléments nodaux avec les fonctions de base $s_n$ vues précédemment.
  3. Enfin, nous définissons la forme faible du problème.

Après résolution, on obtient la distribution du potentiel scalaire électrique : v dans le domaine v dans le domaine

Et on peut calculer la valeur de la capacité à partir de l’énergie électrostatique.

Vous pouvez télécharger les fichiers complets en cliquant ici .


Condensateurs plans

  1. Adapter l’exemple précédent pour résoudre le problème similaire du condensateur plan à armatures rectangulaires :
    • modifier la géométrie ;
    • changer de jacobien ;
    • adapter les formules de calcul de l’énergie et de capacité.
  2. Étudier également le cas d’un condensateur plan mais, cette fois, à armatures circulaires.

Potentiel Flottant

Dans des problèmes tels que définis ci-dessus, nous n’avons pas directement accès à la charge portée par les armatures (il faut nécessairement passer par des calculs post-processeur). Nous ne pouvons pas non plus proprement considérer cette charge comme une entrée du problème pour calculer la différence de potentiels associée.
Nous pourrions penser à utiliser une condition de Neumann non homogène sur l’armature portant le potentiel $V_1$ mais la valeur du potentiel résultant du calcul ne serait plus constante le long de l’armature.

Pour pallier cet inconvénient, les auteurs de GetDP ont implanté une fonctionalité très pratique : les Global quantities (grandeurs globales) qui permettent de définir ce qu’on appelle un potentiel flottant (floating potential) via un terme global (global term) dans la formulation.

Plutôt que de faire une explication un peu trop appoximative, je préfère vous renvoyer à l’exemple du wiki de ONELAB détaillant son principe de fonctionnement : Electrostatics with floating potentials :

  1. Télécharger les fichiers et lire attentivement les commentaires du .pro (oui, ça relève de la magie !).
  2. Adapter les exemples précédents pour les résoudre en potentiel flottant.

Comme je ne suis pas méchant, je vous donne la solution pour le condensateur cylindrique en cliquant ici .

Électrocinétique

Dans le cas de l’électrocinétique (en anglais electrokinetics ou current flow), nous nous intéresserons au calcul de la distribution de la densité volumique statique de courrant électrique ${\bf j}$ dans des conducteurs.

Les relations intervenant en électrocinétique sont :

  • Les équations de Maxwell en statique suivantes :

    $$\left\{\begin{aligned}\text{div}\,{\bf j} &= 0 \\ {\bf rot}\,{\bf e} &= {\bf 0} \end{aligned}\right.$$
  • La loi de comportement dans les milieux conducteurs électriques :

    $${\bf j} = \sigma\,{\bf e}$$
  • Pour les conditions au limites, c’est-à-dire aux frontières du domaine d’étude $\Omega_c$, nous aurons :

    • soit, d’après la condition sur la composante tangentielle de ${\bf e}$ sur les faces d’entrée ou sortie du courant $(\Gamma_d)$ : $$\left.{\bf n}\wedge{\bf e}\right|_{\Gamma_d} = {\bf 0}$$
    • soit, d’après la condition sur la composante normale de ${\bf j}$ sur les autres bords du conducteurs $(\Gamma_n)$ : $$\left.{\bf n}\cdot{\bf j}\right|_{\Gamma_n} = 0$$

Formulation forte

Comme en électrostatique, nous pouvons définir le potentiel scalaire électrique $v$ tel que : ${{\bf e} = -{\bf grad}\,v}$.

En réinjectant cette relation couplée à la loi de comportement dans la loi des nœuds locale, on obtient :

$$ \text{div}\left(\sigma\,{\bf grad}\,v \right) = 0$$

Sur les faces d’entrée et de sortie du courant (${\Gamma_d = \Gamma_{di}\cup\Gamma_{dj}}$), deux cas seront possibles :

  1. Soit une condition de potentiel imposé par une condition de Dirichlet sur $\Gamma_{di}$ de type : $$v|_{\Gamma_{di}} = v_i$$
  2. Soit une condition de Neumann non-homogène imposant la densité de courant normale à la surface $\Gamma_{dj}$ : $$\left.\frac{\partial\,v}{\partial {\bf n}}\right|_{\Gamma_{dj}} = {\bf grad}\,v\cdot {\bf n}\big|_{\Gamma_{dj}} = \pm \frac{j_{n_j}}{\sigma}$$

Sur les autres bords du domaine $(\Gamma_n)$, nous aurons des conditions de Neumann homogènes : ${{\bf grad}\,v\cdot {\bf n}\big|_{\Gamma_{n}} = 0}$

Finalement, la forme complète de la formulation forte à résoudre est donc :

$$\left\{\begin{aligned}\text{div}\left(\sigma\,{\bf grad}\,v\right) &= 0~ , &\text{dans}~ \Omega_c \\ \left.v\right|_{\Gamma_{di}} &= v_i~ , &\text{sur}~ \Gamma_{di} \\ \left.{\bf grad}\, v \cdot {\bf n}\right|_{\Gamma_{dj}} &= \pm \frac{j_{n_j}}{\sigma}~ , &\text{sur}~ \Gamma_{d_j} \\ \left.{\bf grad}\, v \cdot {\bf n}\right|_{\Gamma_n} &= 0~ , &\text{sur}~ \Gamma_n \end{aligned}\right.$$

Formulation faible

La formulation faible correspondant à la forme forte ci-dessus est obtenue rapidement par analogie avec l’électrostatique :

Trouver $v \in \text{H}_{0}({\bf grad},\Omega) = \{ u \in \text{H}({\bf grad},\Omega) : u|_{\Gamma_{di}} = v_i \}$, tel que :

$$\forall v' \in \text{H}_{0}({\bf grad},\Omega),~~ \left(\sigma\,{\bf grad}\,v,{\bf grad}\,v'\right)_{\Omega} + \left< j_{n_j},v' \right>_{\Gamma_{dj}} = 0$$

Exemples et applications

Résistance de sole de four électrique

On considère une résistance de sole de four électrique telle que représentée ci-dessous : Résistance de sole Résistance de sole

On désire calculer la distribution de la densité de courant à l’intérieur lorsqu’on applique une tension de 230 V à ses bornes, afin d’en déduire sa résistance via les pertes Joule associées.

L’implantation dans GetDP ressemble beaucoup au cas précédent :

Constraint {	
  {Name Dirichlet ;
    Case {      
      {Region Sentree ; Type Assign ; Value Veff ;}
      {Region Ssortie ; Type Assign ; Value 0. ;}
    }
  }
}

FunctionSpace {
  { Name Hgrad_v ; Type Form0 ; 
    BasisFunction { 
      { Name sn ; NameOfCoef vn ; Function BF_Node ; 
		Support Region[{Domaine}]  ; Entity NodesOf[All] ; }
    } 
    Constraint {
      { NameOfCoef vn  ; EntityType NodesOf ; NameOfConstraint Dirichlet ; }
    }
  }
}


Formulation {
  { Name Electrocinetique ; Type FemEquation ;
    Quantity {
      { Name v  ; Type Local  ; NameOfSpace Hgrad_v ; }
    } 
    Equation {
      Galerkin { [ Sigma[]*Dof{Grad v}  , {Grad v} ] ;
		In Domaine ; Jacobian Jvol ; Integration Integ ; }
     }
  }
}

Après calcul, on obtient pour la répartition du potentiel scalaire électrique : v dans résistance de sole v dans résistance de sole

Vous pouvez télécharger les fichiers complets en cliquant ici .

Pour la petite histoire, voici une photo de celle de mon four perso après démontage pour changement suite à un défaut d’isolement : Ma resistance de sole perso Ma resistance de sole perso


Résistance de charge

  1. Traiter le problème analogue sur une forme correspondant aux résistances de charge utilisées sur nos bancs expérimentaux : “Résistances de charges pour manip” “Résistances de charges pour manip”

  2. En dimensionner une permettant de dissiper 5 kW sous 48 V continus.
    On pourra utiliser comme conducteur du Constantan, par exemple du 45Ni-55Cu de résistivité électrique : $\rho = 14,9\cdot 10^{-7}~\Omega\cdot\text{m}$

Astuce

Pour la géométrie, on pensera à utiliser une extrusion combinant à la fois une translation selon le vecteur $(v_{t_x},v_{t_y},v_{t_z})$ et une rotation d’un angle $\alpha$ autour de l’axe de vecteur directeur $(v_{a_x},v_{a_y},v_{a_z})$ et passant par le point $(x_a,y_a,z_a)$. Dans Gmsh, cela se définit de façon la plus simple :
Extrude{ {vtx,vty,vtz}, {vax,vay,vaz}, {xa,ya,za}, alpha } { Surface{numero}; }
ou de façon un peu plus élaborée (si on veut structurer le maillage) :
sortie[] = Extrude{ {vtx,vty,vtz}, {vax,vay,vaz}, {xa,ya,za}, alpha } { Surface{numero}; Layers{Ncouches}; Recombine; };


Busbar avec potentiel flottant

Tout comme dans le cas électrostatique de la section précédente, il est possible de définir, dans l’espace fonctionnel d’approximation $W^0$ , des grandeurs globales associées à notre inconnue $v$. Dans le cas présent, elles correspondront aux potentiels globaux $V_i$ imposés sur certaines faces du bords du domaine, ou aux courants $I_j$ traversant certaines autres.

  1. En utilisant (ou pas) ces grandeurs globales, calculer la distribution de courant à l’intérieur du busbar en cuivre représenté ci-dessous lorsque qu’un courant de 2000 A arrive par le haut et se sépare en 2 fois 1000 A qui sortent par le bas. “Busbar” “Busbar” Pour éviter de perdre trop de temps, je vous fournis la géométrie (libre à vous de l’utiliser ou non) : Cliquer ici pour la télécharger .

  2. Proposer des améliorations possibles du design d’un tel busbar (en terme de quantité de matière, masse, volume, pertes…).

Magnétostatique

La magnétostatique (en anglais magnetostatics) correspond au calcul de la distribution du champ ou de l’induction magnétiques produit par des courants continus ou des aimants.

Considérons le domaine $\Omega$ de $\mathbb{R}^3$ constitué de plusieurs sous-domaines schématisé par la figure : Domaine magnétostatique Domaine magnétostatique

  • $\Omega_m$ correspondant à des matériaux magnétiques ;
  • $\Omega_c$ correspondant à des conducteurs électriques parcourus par une densité de courant imposée par une source extérieure ${\bf j_s}$ ;
  • $\Omega_a$ correspondant à des aimants permanents d’induction rémanente ${\bf b_r}$ ;
  • une zone d’air entourant ses différents sous-domaines.

Et sa frontière $\Gamma (=\partial\Omega)$ est divisée en deux morceaux $\Gamma_d$ et $\Gamma_n$.

Les relations régissant la magnétostatique sont :

  • Les équations de Maxwell en statique suivantes : $$\left\{\begin{aligned}\text{div}\,{\bf b} &= 0 \\ {\bf rot}\,{\bf h} &= {\bf j_s}~\text{dans } \Omega_c, \text{ et } {\bf 0} \text{ ailleurs}\end{aligned}\right.$$
  • Les lois de comportements magnétiques : $$\left\{\begin{aligned}{\bf b} &= \mu_0\,{\bf h}&\text{dans l'air et }\Omega_c \\ {\bf b} &= \mu\,{\bf h} &\text{dans~}\Omega_m \\ {\bf b} &= \mu_0\mu_{ra}\, {\bf h}+{\bf b_r} &\text{dans~}\Omega_a\end{aligned}\right.$$
  • Les contions aux limites, par exemple :
    • continuité de la composante normale de l’induction : ${\bf n}\cdot{\bf b} = 0$ sur $\Gamma_d$ ;
    • continuité de la composante tangentielle du champ : ${\bf n}\wedge{\bf h} = {\bf 0}$ sur $\Gamma_n$.

Formulation en potentiel vecteur magnétique

Formulation forte

${\bf b}$ étant à divergence nulle, nous avons vu dans le premier chapitre, qu’il était possible de définir un potentiel vecteur magnétique ${\bf a}$ tel que :

$${\bf b} = {\bf rot}\,{\bf a}$$

En lui associant les lois de comportement et en reportant dans l’équation de Maxwell-Ampère, on obtient :

$$\left\{\begin{aligned} {\bf rot}\left(\frac{1}{\mu_0}{\bf rot}\,{\bf a}\right) - {\bf j_s} &= 0 ~ ,\text{ dans }\Omega_c\\ {\bf rot}\left(\frac{1}{\mu_{ra}\mu_0}\left({\bf rot}\,{\bf a}-{\bf b_r}\right)\right) &= 0~ ,\text{ dans }\Omega_a\\ {\bf rot}\left(\frac{1}{\mu}{\bf rot}\,{\bf a}\right) &= 0 ~ ,\text{ ailleurs }\end{aligned}\right.$$

Et nos conditions aux limites peuvent se traduire par :

$$\left\{\begin{aligned} \left.{\bf a}\wedge{\bf n}\right|_{\Gamma_d} &= {\bf 0}\\ \left.{\bf rot}\,{\bf a}\wedge{\bf n}\right|_{\Gamma_n} &= {\bf 0} \end{aligned}\right.$$

Formulation faible

En appliquant le principe détaillé dans le deuxième chapitre sur la formulation en rot-rot, on peut déduire la formulation faible de notre problème :

Trouver ${\bf a} \in \textbf{H}_{0}({\bf rot},\Omega) = \{ {\bf a} \in \textbf{H}({\bf rot},\Omega) : {\bf a}\wedge{\bf n}|_{\Gamma_{d}} = 0\}$, tel que :

$$\forall {\bf a'} \in \textbf{H}_{0}({\bf rot},\Omega),~~ \left(\mu^{-1}\,{\bf rot}\,{\bf a}\,,\,{\bf rot}\,{\bf a'}\right)_{\Omega} + \left(\mu^{-1}\,{\bf b_r}\,,\,{\bf rot}\,{\bf a'}\right)_{\Omega_a} + \left( -{\bf j_s} \,,\, {\bf a'}\right)_{\Omega_c}= 0$$
Important !

Rappelons ici que la formulation ci-dessus ne conduit pas à une solution unique comme vu dans les chapitres précédents, il nous faudra rajouter une condition de jauge sur ${\bf a}$ pour pouvoir le calculer en 3D (jauge de Coulomb ou jauge d’arbre).


Formulation en potentiel scalaire magnétique

Formulation forte

Dans le cas particulier d’un problème sans densité de courant source $({\bf j_s} = {\bf 0})$, on a : ${\bf rot}\,{\bf h} = {\bf 0}$ dans tout le domaine.

On peut alors définir un potentiel scalaire magnétique $\phi$ tel que :

$${\bf h} = -{\bf grad}\,\phi$$

En lui associant les lois de comportement et en reportant dans l’équation de Maxwell-Thomson, on obtient :

$$\left\{\begin{aligned}\text{div}\left(-\mu\,{\bf grad}\,\phi\right) &= 0~, &\text{dans}~ \Omega\setminus\Omega_a\\ \text{div}\left(-\mu\,{\bf grad}\,\phi + {\bf b_r}\right) &= 0~, &\text{dans}~ \Omega_a \end{aligned}\right.$$

Et nos conditions aux limites peuvent se traduire par :

$$\left\{\begin{aligned} \left.\phi\right|_{\Gamma_n} &= {\bf 0} \\ \left.{\bf grad}\,\phi\cdot{\bf n}\right|_{\Gamma_d} &= {\bf 0} \end{aligned}\right.$$

Formulation faible

En procédant de la même façon qu’en électrostatique ou électrocinétique, on déduit la formulation faible associée :

Trouver $\phi \in \text{H}_{0}({\bf grad},\Omega) = \{ \phi \in \text{H}({\bf grad},\Omega) : \phi|_{\Gamma_{n}} = 0\}$, tel que :

$$\forall \phi' \in \text{H}_{0}({\bf grad},\Omega),~~ \left(-\mu\,{\bf grad}\,\phi\,,\,{\bf grad}\,\phi'\right)_{\Omega} + \left({\bf b_r}\,,\,{\bf grad}\,\phi'\right)_{\Omega_a}= 0$$

Sous-sections de Magnétostatique

Problèmes 2D

Simplifications

Dans le cas de problèmes 2D plans ou axisymétriques, la formulation en potentiel vecteur magnétique se ramène à calculer uniquement ses composantes $a_z(x,y)$ ou $a_\theta(r,z)$.

Dans ces cas, la jauge de Coulomb $(\text{div}\,{\bf a} = 0)$ est automatiquement vérifiée et n’a pas besoin d’être spécifiquement imposée.

Pour définir $W^1$ approximant $\textbf{H}({\bf rot},\Omega)$, il existe dans GetDP des fonctions de base spécialement dédiées. Elles sont associées à des arrêtes fictives s’appuyant sur les nœuds du domaine et perpendiculaires au plan d’étude. En pratique, nous pourrons définir notre espace d’aproximation comme suit :

FunctionSpace {
  { Name Hrot ; Type Form1P ; 
    BasisFunction { 
      { Name se ; NameOfCoef ae ; Function BF_PerpendicularEdge ; 
	 	  Support Region[{Domaine}]  ; Entity NodesOf[All] ; }  } 
    Constraint {
      { NameOfCoef ae  ; EntityType NodesOf ; NameOfConstraint Dirichlet ; }
    }
  }  
}

Applications

Un premier problème simple sans source : un cylindre plongé dans un champ uniforme

Traiter numériquement l’exercice du cylindre plongé dans un champ uniforme :

  1. Trouver les conditions aux limites à imposer aux frontières du domaine (cubique) permettant d’obtenir un champ horizontal uniforme de $1~\text{T}$ à l’intérieur.
  2. Ajouter un cylindre au centre du domaine pour traiter les 3 cas possibles en fonction du type de matériau : cylindre_dans_champ_uniforme cylindre_dans_champ_uniforme

Dimensionnement d’une inductance pour électronique de puissance

Pour des besoins d’électronique de puissance (ne m’en demandez pas plus), on désire concevoir une inductance de 200 µH sous 15 A avec :

  • des noyaux de ferrites de type E 42/21/20 dont les caractéristiques sont fournies par cette datasheet ;
  • du fil de cuivre émaillé de 2,5 mm² (diamètre de 1,8 mm)

Simuler le problème correspondant et donner une solution.

Information

Après avoir traité le problème avec une loi de comportement magnétique linéaire dans la ferrite ($\mu_r$ constant), il faudra sûrement résoudre le problème en prenant en compte la non-linéarité de cette loi. Pour ce faire, je vous renvoie à cette explication très bien faite sur le wiki de GetDP. Vous pouvez également consulter cette page.

Je vous fournis également la définition complète du matériau (N27) de la ferrite (en utilisant les mêmes notations que dans les exemples du wiki) :

Function{		
  If(NonLineaire)
    Mat_core_b = {0.000000, 0.068851, 0.079231, 0.096630, 0.104285, 0.117920, 0.123374, 
      0.150912, 0.191749, 0.202635, 0.239024, 0.243936, 0.245556, 0.267244, 
      0.290565, 0.296190, 0.312896, 0.313356, 0.335942, 0.364839, 0.368482, 
      0.376766, 0.477117, 0.494881, 0.666990, 0.828539, 0.832720};

    Mat_core_h = {0.000000, 44.635198, 47.996938, 54.360481, 57.254136, 63.513926, 66.205407, 
      83.184012, 128.638642, 150.321852, 280.295679, 307.761975, 317.501481, 
      486.037901, 775.608272, 869.477778, 1359.072840, 1373.269136, 2431.451852, 
      5699.176543, 6389.154321, 8458.007407, 61532.617284, 73419.641975, 
      197003.703704, 321027.901235, 324350.000000};

    Mat_core_b2 = Mat_core_b()^2;
    Mat_core_h2 = Mat_core_h()^2;
    Mat_core_nu = Mat_core_h() / Mat_core_b();
    Mat_core_nu(0) = Mat_core_nu(1);
    Mat_core_nu_b2  = ListAlt[Mat_core_b2(), Mat_core_nu()] ;
    nu_core[] = InterpolationLinear[ SquNorm[$1] ]{ Mat_core_nu_b2() } ;
    dnudb2_core[] = dInterpolationLinear[SquNorm[$1]]{ Mat_core_nu_b2() } ;
    h_core[] = nu_core[$1] * $1 ;
    dhdb_core[] = TensorDiag[1,1,1] * nu_core[$1#1] + 2*dnudb2_core[#1] * SquDyadicProduct[#1]  ;
    nu[ Ferrite ]  = nu_core[$1];
    dhdb[ Ferrite ] = dhdb_core[$1];
  Else
    nu[ Ferrite ]  = 1./(mur*mu0);
  EndIf
}

Un exemple de résultat possible pourrait être par exemple :

Inductance Inductance


Accouplement magnétique à aimants permanent

Apprès avoir détaillé son principe de fonctionnement, résoudre le problème correspondant à un coupleur à aimants tel que représenté ci-dessous :

Représentation schématique d'un pôle de coupleur considéré

Pour gagner du temps, vous pouvez télécharger la géométrie en cliquant sur ce lien .

Remarque

Il faudra utiliser des conditions de périodicité puisque nous travaillerons sur un pôle.

Je vous donne un exemple d’implantation de ce type de conditions ci-dessous :

Constraint {	
  {Name Anticyclique;
    Case {
       { Region Gauche; Type Link; RegionRef Droite;
		  Coefficient (-1) ; Function Rotate[ Vector[$X,$Y,$Z], 0, 0, -Pi/p ] ; } 
    }
  }
}
Astuce

Pour le calcul du couple, une bonne approche consiste à moyenner, sur le volume d’entrefer sous un pôle $(V_e = S_e\,L_z)$, l’expression obtenue par le tenseur de Maxwell. Montrer préalablement (sur papier) que cette moyenne peut s’écrire :

$$ \displaystyle \Gamma = \frac{2\,p~L_z}{\mu_0\,e} \iint_{S_e} \frac{(x^2-y^2)\,b_x b_y + x y\,(b_y^2-b_x^2)}{\sqrt{x^2+y^2}}\,dxdy$$

Cette formule sera ensuite facile à implanter dans le post-processeur de GetDP.

Information

Cet exemple est tiré de cet excellent article des Techniques de l’Ingénieur. Oui, je fais de l’auto-promo 😉
Si vous le souhaitez, vous pouvez le télécharger avec l’abonnement de l’UL en cliquant ici.

Problèmes 3D

Conditions de Jauge sur le potentiel vecteur magnétique

Nous avons déjà vu plusieurs fois précédemment que le potentiel vecteur magnétique ${\bf a}$ était défini à un champ de gradient près et qu’il était donc nécessaire de le jauger pour assurer l’unicité de la solution.

Dans le chapitre précédent, deux méthodes ont été présentées et nous allons maintenant voir leur application à nos problèmes ainsi que la manière de les définir dans GetDP.

Jauge de Coulomb

Par application directe de la méthode du chapitre 2, nous allons définir un champ scalaire $\xi$ dont le gradient permettra d’assurer $\text{div}\,{\bf a} = 0$ en l’introduisant comme multiplicateur de Lagrange dans la formulation.

Ainsi la formulation ccomplète dans le domaine discret sera :

$$\boxed{\left\{\begin{aligned}&\text{Trouver}~ {\bf a_h} \in W_0^1,~ \xi_h \in W_0^0~ \text{tels que :} \\ &\left(\mu^{-1}\,{\bf rot\,a_h},{\bf rot\,a_h'}\right)_{\Omega} + \left(\mu^{-1}\,{\bf b_r},{\bf rot\,a_h'}\right)_{\Omega_a} + \left(-{\bf j_s},{\bf a_h'}\right)_{\Omega} + \left({\bf grad}\,\xi_h,{\bf a_h'}\right)_{\Omega} = 0,~ \forall\,{\bf a_h'} \in W_0^1 \\ &\left({\bf a_h},{\bf grad}\,\xi_h'\right)_{\Omega} = 0, \forall \, \xi'_h \in W_0^0 \end{aligned}\right.}$$

où $W_0^1$ et $W_0^0$ approximent respectivement $\textbf{H}_{0}({\bf rot},\Omega)$ et $\text{H}_{0}({\bf grad},\Omega)$.

Dans GetDP, il faudra d’abord définir ces deux espaces fonctionnels :

Constraint {	
  {Name Dirichlet ;
    Case {      
      { Region Dirichlet ; Type Assign ; Value 0. ; }
    }
  }
}

FunctionSpace {
  { Name Hrot ; Type Form1 ; // W_0^1
    BasisFunction { 
      { Name se ; NameOfCoef ae ; Function BF_Edge ; 
	     Support Region[{Domaine}]  ; Entity EdgesOf[All] ; }  } 
    Constraint {
      { NameOfCoef ae  ; EntityType EdgesOf ; NameOfConstraint Dirichlet ; }
    }
  }  
  { Name Hgrad ; Type Form0 ; // W_0^0
    BasisFunction { 
      { Name sn ; NameOfCoef xin ; Function BF_Node ; 
	       Support Region[{Domaine}]  ; Entity NodesOf[All] ; }  } 
    Constraint {
      { NameOfCoef xin  ; EntityType NodesOf ; NameOfConstraint Dirichlet ; }
    }
  } 
}

Puis la formulation correspondante (exemple pour un problème sans aimants avec lois de comportement magnétiques linéaires) :

Formulation {
  { Name Magnetostat ; Type FemEquation ;
    Quantity {
      { Name a  ; Type Local  ; NameOfSpace Hrot ; }
      { Name xi ; Type Local  ; NameOfSpace Hgrad ; }
    }
    Equation {
      Integral { [ nu[] * Dof{d a} , {d a} ];
	     In Domaine; Jacobian Jvol; Integration Integ; }
      
      Integral { [ -js[] , {a} ];
	     In Bobines; Jacobian Jvol; Integration Integ; }
      
      Integral{ [ Dof{Grad xi} , {a}  ];
	     In Domaine; Jacobian Jvol; Integration Integ; }
      
      Integral { [ Dof{a} , {Grad xi} ];
	     In Domaine; Jacobian Jvol; Integration Integ; }
    }
  } 
}

Le principal inconvénient de cette méthode est d’aboutir à une taille de système conséquente conduisant à des temps de calcul élévés, c’est pourquoi on lui préfèrera généralement la technique suivante.

Jauge d’arbre

Comme vu dans cette partie, nous allons construire un arbre sur l’ensemble des arrêtes du domaine en partant des surfaces sur lesquelles sont imposées des conditions particulières (dans le cas présent, les conditions de Dirichlet) et imposer une circulation nulle de ${\bf a}$ le long de cet arbre directement dans l’espace fonctionnel associé. Ce dernier sera alors noté $W_{0,\text{JA}}^1$, et notre formulation devient ainsi :

$$\boxed{\left\{\begin{aligned}&\text{Trouver}~ {\bf a_h} \in W_{0,\text{JA}}^1 ~ \text{tel que :} \\ & \left(\mu^{-1}\,{\bf rot\,a_h},{\bf rot\,a_h'}\right)_{\Omega} + \left(\mu^{-1}\,{\bf b_r},{\bf rot\,a_h'}\right)_{\Omega_a} + \left(-{\bf j_s},{\bf a_h'}\right)_{\Omega} = 0,~ \forall\,{\bf a_h'} \in W_{0,\text{JA}}^1\end{aligned}\right.}$$

La taille du système sera ainsi fortement réduite par rapport au cas précédent puisqu’on s’affranchit du calcul de la grandeur nodale $\xi$.

En pratique, dans GetDP cela se définit de la façon suivante :

Constraint {	
  {Name Dirichlet ;
    Case {      
      { Region Dirichlet ; Type Assign ; Value 0. ; }
    }
  }
  { Name Jauge_arbre ; Type Assign ;
    Case {
      {Region Domaine ; SubRegion Dirichlet ; Value 0. ; }
    }
  }
}

FunctionSpace {
  { Name Hrot ; Type Form1 ;  // W_(0,JA)^1
    BasisFunction { 
      { Name se ; NameOfCoef ae ; Function BF_Edge ; 
	      Support Region[{Domaine}]  ; Entity EdgesOf[All] ; }  } 
    Constraint {
      { NameOfCoef ae  ; EntityType EdgesOf ; NameOfConstraint Dirichlet ; }
      { NameOfCoef ae  ; EntityType EdgesOfTreeIn ; EntitySubType StartingOn ;
	       NameOfConstraint Jauge_arbre ; }
    }
  }  
}

Et la formulation sera strictement la même que dans les cas 2D précédents.


Applications

Retour sur notre inductance pour électronique de puissance

Dans le problème de dimensionnement d’inductance de la page précédente, nous avons utilisé un modèle 2D alors que l’épaisseur de la ferrite utilisée est relativement faible. Il serait donc judicieux de valider (ou non) cette hypothèse par un calcul 3D.

Pour ce faire, je vous fournis le modèle complet (réduit à un huitième de géométrie gràce aux symétries) à Télécharger ici .

Avec, vous pourrez :

  • tester les deux types de jauge en linéaire et non-linéaire ;
  • observer les valeurs des champs tels que l’induction dans le circuit magnétique par exemple : Champ dans l’inductance en 3D Champ dans l’inductance en 3D
  • tester votre design et vérifier si vous respectez le cahier des charges (200 µH sous 15 A) ;
  • tracer la valeur de l’inductance en fonction du courant : Inductance en fonction du courant Inductance en fonction du courant

Retour sur notre accouplement à aimants permanents

L’accouplement étudié page précédente reposait lui aussi sur l’hypothèse que les effets de bords sont négligeables et il serait opportun de le vérifier.

Résoudre le problème en 3D et comparer les deux formulations :

  1. en potentiel vecteur magnétique (avec la jauge que vous voulez) ;
  2. en potentiel scalaire magnétique.

Pour gagner du temps, je vous fournis encore la géométie 3D en cliquant ici . Un exemple de géométrie possible est représenté ci-dessous :

Représentation schématique du coupleur considéré

Magnétodynamique

La magnétodynamique (en anglais magnetodynamics) correspond au calcul de la distribution du champ (ou de l’induction) magnétique et des courants induits produits par des courants variables dans le temps et/ou par des sources en mouvement (aimants ou courants).

Considérons un domaine $\Omega$ de $\mathbb{R}^3$ comportant un sous-domaine $\Omega_c$ conducteur électrique, dont la frontière $\Gamma (=\partial\Omega)$ est comme précédemment divisée en deux morceaux $\Gamma_d$ et $\Gamma_n$.

Les équations qui nous concerneront seront :

  • Les équations de Maxwell : $$\left\{\begin{aligned}\text{div}\,{\bf b} &= 0 \\ {\bf rot}\,{\bf h} &= {\bf j}~\text{dans } \Omega_{c}, \text{ et } {\bf 0} \text{ ailleurs} \\ {\bf rot\,e} &= -\frac{\partial\,{\bf b}}{\partial t} ~\text{dans }\Omega_c\end{aligned}\right.$$
  • Les lois de comportements : $$\left\{\begin{aligned}{\bf b} &= \mu\,{\bf h}&\text{dans }\Omega \\ {\bf j} &= \sigma\,{\bf e} &\text{dans~}\Omega_c\end{aligned}\right.$$
  • Les contions aux limites, par exemple :
    • continuité de la composante normale de l’induction : ${\bf n}\cdot{\bf b} = 0$ sur $\Gamma_d$ ;
    • continuité de la composante tangentielle du champ : ${\bf n}\wedge{\bf h} = {\bf 0}$ sur $\Gamma_n$.

Formulation forte

Le potentiel vecteur magnétique ${\bf a}$ est défini comme précédemment et donc ${\bf b} = {\bf rot\,a}$. En le repportant dans l’équation de Maxwell-Faraday, on obtient :

$${\bf rot}\,\left({\bf e}+\frac{\partial\,{\bf a}}{\partial t}\right) = {\bf 0}$$

.

On peut donc définir dans $\Omega_c$ un champ scalaire $v$, potentiel scalaire électrique tel que ${{\bf e}-\frac{\partial\,{\bf a}}{\partial t} = - {\bf grad}\,v}$, soit :

$$ {\bf e} = -{\bf grad}\,v - \frac{\partial\,{\bf a}}{\partial t}$$

Et finalement, l’équation de Maxwell-Ampère dans $\Omega_c$ donne :

$${\bf rot}\,\left( \mu^{-1}{\bf rot\,a}\right) = \left\{\begin{aligned}-\sigma\left({\bf grad}\,v + \frac{\partial\,{\bf a}}{\partial t}\right) ~ &~ \text{dans }\Omega_c \\ {\bf 0}~ &~ \text{ailleurs}\end{aligned}\right.$$

La deuxième relation permettant de résoudre est la conservation de la densité de courant dans $\Omega_c$ :

$$\text{div}\left( \sigma\left({\bf grad}\,v + \frac{\partial\,{\bf a}}{\partial t}\right)\right) = 0$$

Les conditions aux limites sont analogues à celles vues en magnétostatique ou électrocinétique.

Formulation faible

En combinant les différentes approches vues dans les sections précédentes, on en déduit la formulation faible complète du problème, dite $({\bf a},v)$ :

Trouver ${\bf a} \in \textbf{H}_{0}({\bf rot},\Omega) = \{ {\bf a} \in \textbf{H}({\bf rot},\Omega) : {\bf a}\wedge{\bf n}|_{\Gamma_{d}} = 0\}$ et $v \in \text{H}_{0}({\bf grad},\Omega) = \{ u \in \text{H}({\bf grad},\Omega) : u|_{\Gamma_{di}} = v_i\}$, tels que :

$$\left\{\begin{aligned}\left(\mu^{-1}\,{\bf rot}\,{\bf a}\,,\,{\bf rot}\,{\bf a'}\right)_{\Omega} + \left(\sigma\,\partial_t\,{\bf a}\,,\,{\bf a'}\right)_{\Omega_c} + \left( \sigma\,{\bf grad}\,v \,,\, {\bf a'}\right)_{\Omega_c} = 0,~ ~ \forall\,{\bf a'} \in \textbf{H}_{0}({\bf rot},\Omega) \\ (\sigma\,{\bf grad}\,v \,,\, {\bf grad}\,v')_{\Omega_c} + (\sigma\,\partial_t\,{\bf a} \,,\, {\bf grad}\,v')_{\Omega_c} = 0,~ ~\forall\, v' \in \text{H}_{0}({\bf grad},\Omega)\end{aligned}\right.$$

Sous-sections de Magnétodynamique

Magnétoharmonique

Dans le cas particulier où les sources sont en régime sinusoïdal forcé de pulsation $\omega$, nous pourrons utiliser la transformation complexe vue dans le chapitre 1 et résoudre directement en complexe : c’est ce qu’on appelle la magnétoharmonique (certains l’appellent « magnétostatique complexe »).

La formulation faible à résoudre est alors :

Trouver $\underline{\bf a} \in \textbf{H}_{0}({\bf rot},\Omega) = \{ \underline{\bf a} \in \textbf{H}({\bf rot},\Omega) : \underline{\bf a}\wedge{\bf n}|_{\Gamma_{d}} = 0\}$ et $\underline{v} \in \text{H}_{0}({\bf grad},\Omega) = \{ \underline{u} \in \text{H}({\bf grad},\Omega) : \underline{u}|_{\Gamma_{di}} = \underline{v_i}\}$, tels que :

$$\left\{\begin{aligned}\left(\mu^{-1}\,{\bf rot}\,\underline{\bf a}\,,\,{\bf rot}\,\underline{\bf a'}\right)_{\Omega} + \left(\sigma\,j\omega\,\underline{\bf a}\,,\,\underline{\bf a'}\right)_{\Omega_c} + \left( \sigma\,{\bf grad}\,\underline{v} \,,\, \underline{\bf a'}\right)_{\Omega_c} = 0,~ ~ \forall\,\underline{\bf a'} \in \textbf{H}_{0}({\bf rot},\Omega) \\ (\sigma\,{\bf grad}\,\underline{v} \,,\, {\bf grad}\,\underline{v'})_{\Omega_c} + (\sigma\,j\omega\,\underline{\bf a} \,,\, {\bf grad}\,\underline{v'})_{\Omega_c} = 0,~ ~ \forall\, \underline{v'} \in \text{H}_{0}({\bf grad},\Omega)\end{aligned}\right.$$

L’implantation dans GetDP n’est pas plus compliquée que ce que nous avons vu jusqu’à présent. Le passage en complexe et la fréquence associée sont précisés dans la partie « Résolution » :

Resolution {
  { Name MagnetoHarmonique_2D;
    System {
      { Name A; NameOfFormulation MagnetoHarmonique_2D;
			Type ComplexValue; Frequency freq;
      }
    }
    Operation {
      Generate[A];
      Solve[A]; 
      SaveSolution[A];
    }
  }
}

Et la multiplication par $j\omega$ dans la formulation peut-être faite (au choix) :

  • directement via un terme Complex[0,1]*2*Pi*freq dans les expressions ;
  • ou en utilisant DtDof qui permet de définir une dérivée temporelle des degrés de liberté.

Applications

Barre cylindrique

À titre d’exemple, je vous propose de résoudre numériquement l’exercice sur la barre cylindre alimentée en alternatif.

Le modèle est téléchargeable ici .

Observer l’effet de peau ainsi que l’évolution de la résistance du conducteur en fonction de la fréquence :

“J efficace dans barre” “J efficace dans barre”

“Résistance en fonction de la fréquence” “Résistance en fonction de la fréquence”

Câble triphasé

Modifier les programmes précédents afin de modéliser une ligne triphasée et observer l’effet de proximité à 50 Hz :

“J efficace dans cable triphasé” “J efficace dans cable triphasé”

Prise en compte du mouvement


Ça arrive bientôt…


Conclusion

Merci d’avoir choisi et suivi cet EC. J’espère que vous avez trouvé cela intéressant et qu’il vous a permis de mieux comprendre les aspects théoriques liés à la MEF appliquée à notre domaine, ainsi que ce qui est caché derrière les boîtes à clics interfaces des logiciels propriétaires.

Chouchouille au tableau Chouchouille au tableau

Références bibliographiques

[Anto21] X. Antoine, “Équations aux Dérivées Partielles, Théorie et résolution numérique”, Polycopié de cours de l’EC « EDP », ENSEM 2A Formation Énergie, 2021.

[Bast14] J. P. Bastos, N. Sadowski, “Magnetic Materials and 3D Finite Element Modeling”, CRC Press, Boca Raton, 2014. Disponible à la BU

[Boss93] A. Bossavit, “Électromagnétisme, en vue de la modélisation”, Mathématiques et Applications, Vol. 14, Springer-Verlag, Berlin, 1993. Disponible à la BU

[Dula94] P. Dular, “Modélisation du champ magnétique et des courants induits dans des systèmes tridimensionnels non linéaires”, Thèse de doctorat en Sciences appliquées, Université de Liège, 1994. Accessible en ligne via ORBi

[Four85] G. Fournet, “Électromagnétisme : à partir des équations locales”, Masson, Paris, 1985. Disponible à la BU

[Four93] G. Fournet, “Électromagnétisme”, Techniques de l’Ingénieur, traité Génie électrique, dossier D1020, 1993. Accessible en ligne via la BU

[Geuz01] C. Geuzaine, “High order hybrid finite element schemes for Maxwell’s equations taking thin structures and global quantities into account”, Thèse de doctorat en Sciences appliquées, Université de Liège, 2001. Accessible en ligne via ORBi

[Kern04] M. Kern, “Introduction à la méthode des éléments finis”, Polycopié de cours, École Nationale Supérieure des Mines de Paris, 2004. Accessible en ligne

[Land84] L. D. Landau, E. M. Lifshitz, L. P. Pitaevskii, “Electrodynamics of Continuous Media”, Course of Theoretical Physics, Vol. 8 (2nd ed.), Butterworth-Heinemann, Oxford, 1984. Disponible à la BU

[Nett18] D. Netter, “Le Blog de l’Énergie Électrique”, collection de notes de cours, ENSEM, version du 12 sept. 2018. Accessible en ligne via ARCHE

[Noga05] B. Nogarède, “Électrodynamique appliquée : fondements et principes physiques de l’électrotechnique”, Sciences sup. Dunod, Paris, 2005. Disponible à la BU

[Piri23] F. Piriou, and S. Clénet, “Modélisation Numérique en électromagnétisme Basse Fréquence Par la Méthode des éléments Finis”, 1st ed., ISTE Editions Ltd, London, 2023. Accessible en ligne via la BU

[Spit02] P. Spiteri, “Approche variationnelle pour la méthode des éléments finis”, Techniques de l’Ingénieur, traité Sciences fondamentales, Ref. AF503, 2002. Accessible en ligne via la BU

[Thie20] B. Thierry, “Main5 : Maillage et Éléments Finis”, Notes de cours, Polytech Sorbonne, 2020.