Élasticité linéaire — Séance 1

Loi de comportement, élasticité linéaire isotrope et thermoélasticité

Notes manuscrites de la séance : Elasticité_2026_10_22.pdf.

1 Rappels de mécanique des milieux continus

Cette séance s’appuie sur ce que l’on sait du cours de mécanique des milieux continus (MMC). On rappelle ici les objets essentiels, dans l’hypothèse des petites perturbations qui sera celle de tout le cours.

1.1 Notations

NotePour info : changement de notation

Dans ce cours, les vecteurs sont soulignés une fois et les tenseurs d’ordre 2 deux fois (les tenseurs d’ordre 4 quatre fois), au lieu des flèches utilisées en MMC :

\[ \vec{u} \to \underline{u}, \qquad \vec{a} \to \underline{M}, \qquad \vec{\vec{F}} \to \underline{\underline{F}}, \qquad \vec{\vec{\varepsilon}} \to \underline{\underline{\varepsilon}}, \qquad \vec{\vec{\sigma}} \to \underline{\underline{\sigma}}. \]

1.2 Cinématique d’un solide déformable

On sait décrire la cinématique d’un solide qui se déforme via :

  • la transformation \(\underline{x} = \underline{\varphi}(\underline{X})\), qui associe à la position initiale \(\underline{X}\) d’un point matériel sa position actuelle \(\underline{x}\) ;
  • son gradient \(\underline{\underline{F}} = \underline{\underline{\nabla}} \underline{\varphi} = \underline{\underline{\mathbf{1}}}+ \underline{\underline{\nabla}} \underline{u}\), où \(\underline{u}\) est le champ de déplacement ;
  • le tenseur des déformations de Green–Lagrange \[ \underline{\underline{E}} = \frac{1}{2}\left({}^{t}\underline{\underline{F}}\,\underline{\underline{F}} - \underline{\underline{\mathbf{1}}}\right). \tag{1}\]

1.3 Hypothèse des petites perturbations (HPP)

AvertissementHypothèse des petites perturbations

C’est le cadre dans lequel on se place pour tout ce cours : \(\|\underline{u}\| \ll 1\) (rapporté à une longueur caractéristique) et \(\|\underline{\underline{\nabla}} \underline{u}\| \ll 1\).

1.3.1 Déformation linéarisée

En développant Équation 1 avec \(\underline{\underline{F}} = \underline{\underline{\mathbf{1}}}+ \underline{\underline{\nabla}}\underline{u}\) : \[ \underline{\underline{E}} = \frac{1}{2}\left({}^{t}\underline{\underline{F}}\,\underline{\underline{F}} - \underline{\underline{\mathbf{1}}}\right) = \frac{1}{2}\Big(\underbrace{\underline{\underline{\nabla}} \underline{u} + {}^{t}\underline{\underline{\nabla}} \underline{u}}_{\text{linéaire}} + \underbrace{{}^{t}\underline{\underline{\nabla}} \underline{u}\,\underline{\underline{\nabla}} \underline{u}}_{\text{non linéaire}}\Big). \]

En HPP, \(\|\underline{\underline{\nabla}} \underline{u}\| \ll 1\), donc \({}^{t}\underline{\underline{\nabla}}\underline{u}\,\underline{\underline{\nabla}}\underline{u} \simeq \underline{\underline{0}}\) et on obtient le tenseur des déformations linéarisé \(\underline{\underline{\varepsilon}}\), tel que \[ \underline{\underline{E}} \simeq \underline{\underline{\varepsilon}}= \frac{1}{2}\left(\underline{\underline{\nabla}} \underline{u} + {}^{t}\underline{\underline{\nabla}} \underline{u}\right) = \underline{\underline{\nabla}}_{\text{sym}}\underline{u}. \tag{2}\]

AvertissementAttention

On a bien rappelé cela et le fait que \(\underline{\underline{\varepsilon}}\) n’est vrai qu’en HPP (cf. cours de MMC).

1.3.2 Interprétation : allongement relatif

Un petit segment matériel \(d\underline{X} = \ell_0\,\underline{e}_i\) est transporté en \(d\underline{x} = \underline{\underline{F}}\,d\underline{X}\). Sa longueur actuelle vaut \[ \|d\underline{x}\| = \sqrt{d\underline{x}\cdot d\underline{x}} = \sqrt{\underline{\underline{F}}\,d\underline{X}\cdot\underline{\underline{F}}\,d\underline{X}} = \ell_0\sqrt{\underline{\underline{F}}\underline{e}_i\cdot\underline{\underline{F}}\underline{e}_i}, \qquad\text{avec}\quad \underline{\underline{F}}\underline{e}_i\cdot\underline{\underline{F}}\underline{e}_i = {}^{t}(\underline{\underline{F}}\underline{e}_i)(\underline{\underline{F}}\underline{e}_i) = {}^{t}\underline{e}_i\,{}^{t}\underline{\underline{F}}\underline{\underline{F}}\,\underline{e}_i . \]

D’où l’allongement relatif, en utilisant \({}^{t}\underline{\underline{F}}\underline{\underline{F}} = 2\underline{\underline{E}} + \underline{\underline{\mathbf{1}}}\simeq 2\underline{\underline{\varepsilon}}+ \underline{\underline{\mathbf{1}}}\) : \[ \frac{\|d\underline{x}\| - \|d\underline{X}\|}{\|d\underline{X}\|} = \sqrt{{}^{t}\underline{e}_i\,{}^{t}\underline{\underline{F}}\underline{\underline{F}}\,\underline{e}_i} - 1 = \sqrt{1 + 2\varepsilon_{ii}} - 1 \simeq \varepsilon_{ii}. \]

Donc \(\varepsilon_{ii}\) (sans sommation) mesure l’allongement relatif dans la direction \(\underline{e}_i\).

1.3.3 Mesure de la variation de volume

En HPP, \[ \det\underline{\underline{F}} = \det\begin{pmatrix} 1+u_{1,1} & u_{1,2} & u_{1,3}\\ \vdots & 1+u_{2,2} & u_{2,3}\\ \cdots & \cdots & 1+u_{3,3} \end{pmatrix} \simeq (1+u_{1,1})(1+u_{2,2})(1+u_{3,3}) \simeq 1 + u_{1,1} + u_{2,2} + u_{3,3}, \] en enlevant à chaque étape les termes d’ordre élevé (qui font intervenir des produits \(\sim u^2\)). Ainsi \[ \det\underline{\underline{F}} \simeq 1 + \operatorname{tr}(\underline{\underline{\nabla}}\underline{u}) = 1 + \operatorname{tr}\big(\underline{\underline{\varepsilon}}(\underline{u})\big). \]

D’où \(dV \simeq \big(1 + \operatorname{tr}\underline{\underline{\varepsilon}}\big)\,dV_0\), soit \[ \frac{dV - dV_0}{dV_0} = \operatorname{tr}\underline{\underline{\varepsilon}}, \tag{3}\] qui mesure la déformation volumique.

1.4 Contraintes

Figure 1: Coupure du solide \(\Omega\) en deux parties : à travers l’élément de surface \(dS\) de normale \(\underline{n}\) (sortante de \(\Omega^+\)), \(\Omega^-\) exerce sur \(\Omega^+\) l’effort surfacique \(\underline{T} = \underline{\underline{\sigma}}\,\underline{n}\).

On a également introduit un objet décrivant les efforts à l’intérieur de la matière : le tenseur des contraintes de Cauchy \(\underline{\underline{\sigma}}\).

Si l’on coupe le solide \(\Omega\) en deux parties \(\Omega^-\) et \(\Omega^+\), les efforts surfaciques exercés par \(\Omega^-\) sur \(\Omega^+\) à travers un élément de surface \(dS\) de normale \(\underline{n}\) sont donnés par le vecteur contrainte (Figure 1) \[ \underline{T} = \underline{\underline{\sigma}}\,\underline{n}. \]

L’équilibre (principe fondamental de la dynamique) donne \[ \operatorname{div}\underline{\underline{\sigma}}+ \underline{f}_v = \rho\,\underline{\gamma} \quad\text{dans } \Omega, \qquad \underline{\underline{\sigma}}= {}^{t}\underline{\underline{\sigma}}\quad\text{dans } \Omega . \tag{4}\]

NoteRemarque : d’où vient l’équation locale ?

On part de ce que l’on connaît : le PFD, \(\sum \underline{F} = m\,\underline{\gamma}\), écrit pour un sous-domaine quelconque \(D \subset \Omega\) : \[ \underbrace{\int_D \underline{f}_v\,dV}_{\text{efforts volumiques}} + \underbrace{\int_{\partial D} \underline{T}\,dS}_{\text{efforts surfaciques}} = \int_D \rho\,\underline{\gamma}\,dV . \] Les efforts surfaciques se réécrivent avec \(\underline{\underline{\sigma}}\), puisque \(\underline{T} = \underline{\underline{\sigma}}\,\underline{n}\), puis avec le théorème de la divergence : \[ \int_{\partial D} \underline{\underline{\sigma}}\,\underline{n}\,dS = \int_D \operatorname{div}\underline{\underline{\sigma}}\,dV . \] On obtient donc \[ \int_D \left(\operatorname{div}\underline{\underline{\sigma}}+ \underline{f}_v - \rho\,\underline{\gamma}\right) dV = \underline{0} \qquad \text{pour tout } D \subset \Omega . \] Comme cette égalité est vraie pour n’importe quel volume \(D\), aussi petit soit-il, l’intégrande est nul en tout point : c’est l’équation locale (Équation 4). (La symétrie \(\underline{\underline{\sigma}}= {}^{t}\underline{\underline{\sigma}}\) s’obtient de la même façon à partir de l’équilibre des moments.)

Les conditions aux limites sont de deux types :

  • en déplacement (Dirichlet) : \(\underline{u}(\underline{M}) = \underline{u}_d \quad \forall \underline{M}\in\partial\Omega_u\) ;
  • en effort (Neumann) : \(\underline{T}(\underline{M}) = \underline{F}_d \quad \forall \underline{M}\in\partial\Omega_f\).

1.5 Bilan de ce que l’on sait

Résoudre un problème de mécanique des milieux continus solides signifie trouver, en tout point \(\underline{M}\in\Omega\) :

Champ inconnu Notation Nombre d’inconnues
déplacement \(\underline{u}(\underline{M})\) 3
déformations \(\underline{\underline{\varepsilon}}(\underline{M})\) 6
contraintes \(\underline{\underline{\sigma}}(\underline{M})\) 6
total 15

Pour cela, nous disposons, après le cours de MMC, des équations suivantes :

Équation Nombre d’équations
\(\underline{\underline{\varepsilon}}= \underline{\underline{\nabla}}_{\text{sym}}\underline{u}\) (compatibilité, Équation 2) 6
\(\operatorname{div}\underline{\underline{\sigma}}+ \underline{f} = \rho\underline{\gamma}\) (équilibre, Équation 4) 3
total 9

2 Notion de loi de comportement

Il nous manque alors 6 équations pour espérer pouvoir résoudre le problème de mécanique avec une logique purement comptable (on parle ici des équations dans le volume, pas des conditions aux limites).

En effet, les équations décrites plus haut ne décrivent que la cinématique et le respect du PFD, mais sont aveugles à la matière du solide étudié. Les 6 équations manquantes pour fermer le problème viennent décrire le comportement de la matière.

AstuceAnalogie avec le ressort
  • cinématique : \(\Delta \ell = x - x_0\), analogue de \(\underline{\underline{\varepsilon}}\) ;
  • PFD : \(m\ddot{x} = F_{\text{ext}} - F_{\text{ressort}}\), analogue de \(\operatorname{div}\underline{\underline{\sigma}}+ \underline{f} = \rho\underline{\gamma}\) ;
  • c’est la loi de Hooke qui ferme le problème : \(F_{\text{ressort}} = -k\,\Delta\ell\).
ImportantDéfinition : loi de comportement

Nous appelons loi de comportement la fonction tensorielle qui relie la contrainte et la déformation : \[ \underline{\underline{\sigma}}= \mathcal{F}\big(\underline{\underline{\varepsilon}}(\underline{M},t),\, T,\, \dots\big). \]

Des exemples de tracés illustrant certains liens \(\underline{\underline{\varepsilon}}/\underline{\underline{\sigma}}\) sont donnés en Figure 2, qui compare la loi élastique linéaire à deux lois non linéaires :

  • une loi hyperélastique : élastique mais non linéaire (courbe en S typique des caoutchoucs), la décharge suit le même chemin que la charge ;
  • une loi élastoplastique : linéaire au début, puis non élastique au-delà d’un certain seuil, avec une déformation résiduelle \(\varepsilon^p\) après décharge.

Dans les deux cas, l’élasticité linéaire ne décrit que le comportement au voisinage de l’origine (pente \(E\)) : c’est cette zone, mise en évidence sur la figure, qui constitue le cadre du cours.

Afficher le code Python
from plotly.subplots import make_subplots

fig = make_subplots(rows=1, cols=2, horizontal_spacing=0.12,
                    subplot_titles=("Loi hyperélastique (caoutchouc)",
                                    "Loi élastoplastique (acier)"))

# Hyperélastique : courbe en S (illustrative)
# partie linéaire (pente E_h), puis plateau (adoucissement), puis raidissement
E_h, s0, k, n = 1.5, 1.5, 0.025, 3          # MPa, MPa, MPa, -
eps_h = np.linspace(0, 6, 400)              # déformation (sans unité)
sig_h = E_h * eps_h / (1 + (E_h * eps_h / s0)**n)**(1 / n) + k * eps_h**3
eps_lin_h = 0.2                             # zone linéaire : petites déformations (HPP)

def zone_lineaire(x1, y1, col):
    # Zone où la loi se confond avec sa tangente : cadre du cours
    fig.add_trace(go.Scatter(x=[0, x1, x1, 0, 0], y=[0, 0, y1, y1, 0], fill="toself",
                             fillcolor="rgba(155, 162, 255, 0.35)", line_width=0,
                             mode="lines", hoverinfo="skip", showlegend=(col == 1),
                             name="zone linéaire : cadre du cours"),
                  row=1, col=col)

zone_lineaire(eps_lin_h * 100, 8, 1)
fig.add_annotation(x=eps_lin_h * 50, y=4, text="élasticité linéaire :<br><b>cadre du cours</b>",
                   showarrow=True, ax=90, ay=-30, xanchor="left",
                   font=dict(color=COULEURS[2]), row=1, col=1)
fig.add_trace(go.Scatter(x=eps_h * 100, y=sig_h, mode="lines",
                         name="loi non linéaire (charge)",
                         line=dict(color=COULEURS[0], width=3),
                         hovertemplate="ε = %{x:.0f} %<br>σ = %{y:.2f} MPa<extra></extra>"),
              row=1, col=1)
fig.add_trace(go.Scatter(x=eps_h[::-1] * 100, y=sig_h[::-1], mode="lines",
                         name="décharge",
                         line=dict(color=COULEURS[1], width=2, dash="dot"),
                         hovertemplate="ε = %{x:.0f} %<br>σ = %{y:.2f} MPa<extra></extra>"),
              row=1, col=1)
fig.add_trace(go.Scatter(x=[0, 200], y=[0, 2 * E_h], mode="lines",
                         name="élasticité linéaire (pente E)",
                         line=dict(color=COULEURS[2], width=2, dash="dash")),
              row=1, col=1)

# Élastoplastique à écrouissage linéaire
E = 210e3          # MPa
sig_y = 300.0      # MPa, limite d'élasticité (illustratif)
H = 5e3            # MPa, module d'écrouissage (illustratif)
eps_y = sig_y / E
eps_max = 0.015
eps_c = np.linspace(0, eps_max, 600)
sig_c = np.where(eps_c <= eps_y, E * eps_c, sig_y + H * (eps_c - eps_y))
sig_max = sig_c[-1]
eps_p = eps_max - sig_max / E               # déformation résiduelle

zone_lineaire(eps_y * 100, 450, 2)
fig.add_annotation(x=eps_y * 50, y=150, text="élasticité linéaire :<br><b>cadre du cours</b>",
                   showarrow=True, ax=90, ay=0, xanchor="left",
                   font=dict(color=COULEURS[2]), row=1, col=2)
fig.add_trace(go.Scatter(x=eps_c * 100, y=sig_c, mode="lines", showlegend=False,
                         line=dict(color=COULEURS[0], width=3),
                         hovertemplate="ε = %{x:.3f} %<br>σ = %{y:.0f} MPa<extra></extra>"),
              row=1, col=2)
fig.add_trace(go.Scatter(x=[eps_max * 100, eps_p * 100], y=[sig_max, 0], mode="lines",
                         showlegend=False,
                         line=dict(color=COULEURS[1], width=2, dash="dot"),
                         hovertemplate="ε = %{x:.3f} %<br>σ = %{y:.0f} MPa<extra></extra>"),
              row=1, col=2)
fig.add_trace(go.Scatter(x=[0, 2 * eps_y * 100], y=[0, 2 * sig_y], mode="lines",
                         showlegend=False,
                         line=dict(color=COULEURS[2], width=2, dash="dash")),
              row=1, col=2)
fig.add_annotation(x=eps_p * 100, y=0, text="ε<sup>p</sup>", showarrow=True,
                   ax=-40, ay=-35, row=1, col=2)

fig.update_xaxes(title_text="déformation ε (%)")
fig.update_yaxes(title_text="contrainte σ (MPa)", row=1, col=1)
fig.update_yaxes(range=[0, 8], row=1, col=1)
fig.update_yaxes(range=[0, 450], row=1, col=2)
fig.update_layout(height=450, legend=dict(orientation="h", y=-0.25, x=0.5, xanchor="center"))
fig.show()
Figure 2: Deux exemples de lois de comportement en traction, comparées à la loi élastique linéaire tangente à l’origine (pente \(E\), en tirets). La zone bleu clair, où la loi se confond avec sa tangente, est le cadre de ce cours (élasticité linéaire). À gauche : loi hyperélastique en S (type caoutchouc) : seules les petites déformations relèvent de l’élasticité linéaire (HPP) ; charge et décharge suivent la même courbe. À droite : loi élastoplastique à écrouissage linéaire (type acier) ; la décharge se fait avec la pente \(E\) et laisse une déformation résiduelle \(\varepsilon^p\). Valeurs illustratives.

Il existe une grande variété de comportements, et l’objet de ce cours est d’étudier l’élasticité linéaire :

Élasticité
l’état de contrainte à un instant donné dépend uniquement de l’état de déformation à ce même instant (indépendamment de l’histoire du chargement et de la vitesse de chargement). Il n’y a pas de dissipation : le comportement est réversible.
Linéaire
valide uniquement sous l’hypothèse HPP ; la relation reliant le tenseur des déformations linéarisé et le tenseur de Cauchy est linéaire.
NoteÉlasticité n’implique pas linéarité

Les deux hypothèses sont indépendantes. Un matériau peut être élastique sans être linéaire : c’est le cas des matériaux hyperélastiques (caoutchoucs, élastomères, tissus biologiques mous), qui subissent de grandes déformations réversibles. La contrainte dérive toujours d’un potentiel élastique (comportement réversible, sans dissipation), mais ce potentiel n’est plus quadratique : la relation contrainte–déformation est non linéaire. L’élasticité linéaire n’en est que l’approximation au premier ordre, au voisinage de l’état naturel et sous l’hypothèse HPP.

2.1 Potentiel élastique

Puisque le travail de déformation est indépendant du chemin de chargement, la contrainte \(\underline{\underline{\sigma}}\) dérive d’un potentiel \(w_{\text{élas}}\) tel que \[ \boxed{\underline{\underline{\sigma}}= \frac{\partial w_{\text{élas}}}{\partial \underline{\underline{\varepsilon}}} \iff \sigma_{ij} = \frac{\partial w_{\text{élas}}}{\partial \varepsilon_{ij}}.} \tag{5}\]

On justifie ce résultat par analogie avec les forces conservatives.

NoteRappel : force conservative et énergie potentielle

Par définition, une force est conservative si son travail entre deux points \(A\) et \(B\) ne dépend pas du chemin suivi. On part d’un point \(O\) arbitraire vers un point \(\underline{M}\) et on pose \[ E_p(\underline{M}) = -W_{O\to M}(\underline{F}) = -\int_O^M \underline{F}\cdot d\underline{x}. \] L’intégrale a une valeur unique car le travail ne dépend pas du chemin : \(E_p(\underline{M})\) est donc une fonction d’état.

Étudions la variation de \(E_p\) entre deux points \(\underline{M}\) et \(\underline{M}'\) infiniment proches : \[ \begin{aligned} dE_p = E_p(\underline{M}') - E_p(\underline{M}) &= -\int_O^{M'} \underline{F}\cdot d\underline{x} + \int_O^{M} \underline{F}\cdot d\underline{x} && \text{(chemin indifférent + Chasles)}\\ &= -\int_M^{M'} \underline{F}\cdot d\underline{x} = -\underline{F}\cdot\int_M^{M'} d\underline{x} && (\underline{F} \text{ constante entre } \underline{M} \text{ et } \underline{M}')\\ &= -\underline{F}\cdot d\underline{x} && (\underline{M}' = \underline{M} + d\underline{x}). \end{aligned} \] Par identification avec \(dE_p = \operatorname{grad}(E_p)\cdot d\underline{x}\), on obtient \(\boxed{\underline{F} = -\operatorname{grad}(E_p)}\).

De manière analogue, le travail élémentaire reçu par la matière (opposé à celui fourni par les efforts intérieurs) vaut \[ \delta w = \underline{\underline{\sigma}}: d\underline{\underline{\varepsilon}}. \]

Puisque ce travail est indépendant du chemin, on peut définir une fonction univoque \[ w(\underline{\underline{\varepsilon}}) = \int_{\underline{\underline{0}}}^{\underline{\underline{\varepsilon}}} \underline{\underline{\sigma}}(\tilde{\underline{\underline{\varepsilon}}}) : d\tilde{\underline{\underline{\varepsilon}}}. \]

Alors \[ dw = w(\underline{\underline{\varepsilon}}+ d\underline{\underline{\varepsilon}}) - w(\underline{\underline{\varepsilon}}) = \int_{\underline{\underline{\varepsilon}}}^{\underline{\underline{\varepsilon}}+ d\underline{\underline{\varepsilon}}} \underline{\underline{\sigma}}: d\tilde{\underline{\underline{\varepsilon}}} = \underline{\underline{\sigma}}: d\underline{\underline{\varepsilon}} \qquad (\underline{\underline{\sigma}}\text{ constant sur } d\underline{\underline{\varepsilon}}). \]

Par identification avec \(dw = \dfrac{\partial w}{\partial \underline{\underline{\varepsilon}}} : d\underline{\underline{\varepsilon}}\), on retrouve Équation 5 : \[ \underline{\underline{\sigma}}= \frac{\partial w}{\partial \underline{\underline{\varepsilon}}}. \]

  1. Par rapport au travail avec \(\underline{F}\), la force de rappel du ressort qui s’oppose au mouvement : ici, la convention est que \(\underline{\underline{\sigma}}\) représente l’effort appliqué à la matière pour garantir sa cohésion. D’où les signes opposés : \(\underline{F} = -\operatorname{grad}(E_p)\) mais \(\underline{\underline{\sigma}}= +\dfrac{\partial w}{\partial \underline{\underline{\varepsilon}}}\).
  2. \(\delta w\) représente un échange d’énergie avec l’extérieur (une quantité de travail fournie), tandis que \(dw\) représente la variation d’énergie stockée entre deux déformations proches.

3 Élasticité linéaire

3.1 Tenseur d’élasticité

\(\definecolor{enstableu}{RGB}{55,70,255}\definecolor{enstacorailfonce}{RGB}{214,69,90}\newcommand{\isig}[1]{{\color{enstableu}{#1}}}\newcommand{\ieps}[1]{{\color{enstacorailfonce}{#1}}}\newcommand{\hl}[1]{{\color{enstacorailfonce}{#1}}}\)

\(\underline{\underline{\sigma}}\) est linéaire en \(\underline{\underline{\varepsilon}}\). Cela signifie que chaque composante de \(\underline{\underline{\sigma}}\) est une combinaison linéaire des composantes de \(\underline{\underline{\varepsilon}}\) (indices liés à \(\underline{\underline{\sigma}}\) en \(\isig{\text{bleu}}\), indices liés à \(\underline{\underline{\varepsilon}}\) en \(\ieps{\text{corail}}\)) : \[ \begin{aligned} \sigma_{\isig{11}} &= C_{\isig{11}\ieps{11}}\,\varepsilon_{\ieps{11}} + C_{\isig{11}\ieps{12}}\,\varepsilon_{\ieps{12}} + C_{\isig{11}\ieps{13}}\,\varepsilon_{\ieps{13}} + \cdots\\ &\ \,\vdots\\ \sigma_{\isig{33}} &= C_{\isig{33}\ieps{13}}\,\varepsilon_{\ieps{13}} + C_{\isig{33}\ieps{23}}\,\varepsilon_{\ieps{23}} + C_{\isig{33}\ieps{33}}\,\varepsilon_{\ieps{33}} + \cdots \end{aligned} \]

D’où l’introduction d’un tenseur d’ordre 4 (quatre indices) \(\underline{\underline{\underline{\underline{C}}}}\), appelé tenseur d’élasticité linéaire, tel que \[ \underline{\underline{\sigma}}= \underline{\underline{\underline{\underline{C}}}}: \underline{\underline{\varepsilon}} \iff \sigma_{\isig{ij}} = C_{\isig{ij}\ieps{kl}}\,\varepsilon_{\ieps{kl}}, \qquad\text{soit, par identification,}\quad C_{\isig{ij}\ieps{kl}} = \frac{\partial \sigma_{\isig{ij}}}{\partial \varepsilon_{\ieps{kl}}}. \tag{6}\]

3.2 Potentiel élastique linéaire

Dans le cas de l’élasticité linéaire, on a donc \[ \boxed{w_{\text{élas}}= \frac{1}{2}\,\underline{\underline{\varepsilon}}: \underline{\underline{\underline{\underline{C}}}}: \underline{\underline{\varepsilon}}} \tag{7}\] et l’on retrouve bien \[ \underline{\underline{\sigma}}= \frac{\partial w_{\text{élas}}}{\partial \underline{\underline{\varepsilon}}} = \underline{\underline{\underline{\underline{C}}}}: \underline{\underline{\varepsilon}}. \]

AstuceAnalogie avec le ressort

\[ w_{\text{élas}}= \frac{1}{2}\,k\,\Delta\ell^2, \qquad F_{\text{ext}\to\text{ressort}} = \frac{\partial w_{\text{élas}}}{\partial \Delta\ell} = k\,\Delta\ell \;\big(= -F_{\text{rappel}}\big). \]

3.3 Symétries et composantes indépendantes

\(\underline{\underline{\underline{\underline{C}}}}\) est un tenseur d’ordre 4 de \(3\times3\times3\times3 = 81\) composantes. Cependant, du fait des symétries de \(\underline{\underline{\sigma}}\) et \(\underline{\underline{\varepsilon}}\), on peut réduire le nombre de composantes indépendantes.

Petites symétries (héritées de \(\underline{\underline{\sigma}}= {}^{t}\underline{\underline{\sigma}}\) et \(\underline{\underline{\varepsilon}}= {}^{t}\underline{\underline{\varepsilon}}\)) : \[ C_{ijkl} = C_{jikl} \qquad\text{et}\qquad C_{ijkl} = C_{ijlk}. \]

Grande symétrie (héritée de l’existence du potentiel) : \[ C_{ijkl} = \frac{\partial \sigma_{ij}}{\partial \varepsilon_{kl}} = \frac{\partial^2 w_{\text{élas}}}{\partial \varepsilon_{ij}\,\partial \varepsilon_{kl}} = C_{klij}. \]

ImportantDécompte des composantes indépendantes
  • Chacune des petites symétries fait passer le nombre de combinaisons d’indices indépendantes de 9 à 6 : \(11, 22, 33\) puis \(12, 13, 23\). Les petites symétries font donc tomber les \(9\times 9 = 81\) composantes à \(6\times6 = 36\) (une matrice \(6\times6\) en notation de Voigt).
  • La grande symétrie impose à cette matrice \(6\times6\) d’être symétrique : sur 36 cases, 6 sont sur la diagonale et 30 hors diagonale, dont seulement 15 indépendantes.

D’où \(15 + 6 = \mathbf{21}\) composantes indépendantes pour le matériau élastique linéaire le plus général (anisotrope).

3.4 Notation de (Kelvin–)Voigt

Afin de permettre une résolution par algèbre linéaire classique, on « vectorise » (aplatit) les tenseurs symétriques d’ordre 2 que sont \(\underline{\underline{\sigma}}\) et \(\underline{\underline{\varepsilon}}\).

NoteRemarque

La forme tensorielle est plus compacte et géométrique : la prise en compte des rotations et changements de base est simple, sans avoir à utiliser d’énormes matrices de rotation pour \(\underline{\underline{\sigma}}\) et \(\underline{\underline{\varepsilon}}\) (matrices de Bond). Le pire étant avec la notation de Voigt : il faut des matrices différentes pour \(\sigma\) et \(\varepsilon\).

3.4.1 Notation de Voigt

\[ \underbrace{\begin{pmatrix} \sigma_{11}\\ \sigma_{22}\\ \sigma_{33}\\ \sigma_{23}\\ \sigma_{31}\\ \sigma_{12} \end{pmatrix}}_{\Sigma} = \begin{bmatrix} C_{11} & C_{12} & \cdots & & & C_{16}\\ & \ddots & & & & \vdots\\ & & & & & \\ & \text{sym} & & & & C_{56}\\ & & & & & C_{66} \end{bmatrix} \underbrace{\begin{pmatrix} \varepsilon_{11}\\ \varepsilon_{22}\\ \varepsilon_{33}\\ \hl{2}\varepsilon_{23}\\ \hl{2}\varepsilon_{31}\\ \hl{2}\varepsilon_{12} \end{pmatrix}}_{E} \tag{8}\]

NoteAstuce : l’ordre des composantes

Pour retenir l’ordre de Voigt, on parcourt la partie triangulaire supérieure de \(\underline{\underline{\sigma}}\) : d’abord la diagonale de haut en bas (\(\sigma_{11}\), \(\sigma_{22}\), \(\sigma_{33}\)), puis on remonte la dernière colonne (\(\sigma_{23}\), \(\sigma_{13}\)) et on finit par \(\sigma_{12}\) (Figure 3).

Figure 3: Ordre des composantes dans la notation de Voigt.

Pourquoi des facteurs 2 ? Calculons le produit \(\underline{\underline{\sigma}}: \underline{\underline{\varepsilon}}\), qui donne la densité d’énergie de déformation (énergie par unité de volume, \(w_{\text{élas}}= \tfrac{1}{2}\,\underline{\underline{\sigma}}: \underline{\underline{\varepsilon}}\)) : \[ \begin{aligned} \underline{\underline{\sigma}}: \underline{\underline{\varepsilon}} &= \begin{pmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13}\\ \sigma_{12} & \sigma_{22} & \sigma_{23}\\ \sigma_{13} & \sigma_{23} & \sigma_{33} \end{pmatrix} : \begin{pmatrix} \varepsilon_{11} & \varepsilon_{12} & \varepsilon_{13}\\ \varepsilon_{12} & \varepsilon_{22} & \varepsilon_{23}\\ \varepsilon_{13} & \varepsilon_{23} & \varepsilon_{33} \end{pmatrix}\\ &= \sigma_{11}\varepsilon_{11} + \sigma_{22}\varepsilon_{22} + \sigma_{33}\varepsilon_{33} + \hl{2}\,\sigma_{12}\varepsilon_{12} + \hl{2}\,\sigma_{13}\varepsilon_{13} + \hl{2}\,\sigma_{23}\varepsilon_{23}\\ &= \Sigma\cdot E . \end{aligned} \]

La densité d’énergie qui, avec les tenseurs, se calcule avec un produit doublement contracté, se calcule avec un produit scalaire de vecteurs en notation de Voigt.

3.4.2 Notation de Kelvin–Voigt

AvertissementAttention

Avec la notation de Voigt, le produit scalaire euclidien classique de deux vecteurs n’est pas égal au produit doublement contracté des tenseurs associés : \(\Sigma^a\cdot\Sigma^b \neq \underline{\underline{\sigma}}^a : \underline{\underline{\sigma}}^b\) et \(E^a\cdot E^b \neq \underline{\underline{\varepsilon}}^a : \underline{\underline{\varepsilon}}^b\). Pour cela, il faut utiliser la notation de Kelvin–Voigt, plus rigoureuse.

\[ \begin{pmatrix} \sigma_{11}\\ \sigma_{22}\\ \sigma_{33}\\ \hl{\sqrt{2}}\,\sigma_{23}\\ \hl{\sqrt{2}}\,\sigma_{31}\\ \hl{\sqrt{2}}\,\sigma_{12} \end{pmatrix} = \begin{bmatrix} \tilde{C}_{11} & \tilde{C}_{12} & \cdots & \tilde{C}_{16}\\ & \ddots & & \vdots\\ & \text{sym} & & \tilde{C}_{56}\\ & & & \tilde{C}_{66} \end{bmatrix} \begin{pmatrix} \varepsilon_{11}\\ \varepsilon_{22}\\ \varepsilon_{33}\\ \hl{\sqrt{2}}\,\varepsilon_{23}\\ \hl{\sqrt{2}}\,\varepsilon_{31}\\ \hl{\sqrt{2}}\,\varepsilon_{12} \end{pmatrix} \tag{9}\]

4 Élasticité linéaire isotrope

4.1 Potentiel élastique isotrope

Nous supposons enfin que la loi de comportement est linéaire et isotrope, c’est-à-dire qu’elle est invariante par toute rotation \(\underline{\underline{R}}\) : \[ w_{\text{élas}}\big({}^{t}\underline{\underline{R}}\,\underline{\underline{\varepsilon}}\,\underline{\underline{R}}\big) = w_{\text{élas}}(\underline{\underline{\varepsilon}}). \]

La loi de comportement doit donc uniquement dépendre des trois valeurs propres de \(\underline{\underline{\varepsilon}}\). Il y a une bijection entre ces valeurs propres et les invariants du tenseur de déformation, mais ces derniers sont plus commodes à utiliser : ils sont continûment dérivables partout (fonctions polynomiales des composantes) et permettent d’aboutir à des expressions tensorielles simples à la dérivation.

On cherche donc à écrire le potentiel élastique comme fonction des invariants \[ I_1 = \operatorname{tr}\underline{\underline{\varepsilon}}, \qquad I_2 = \underline{\underline{\varepsilon}}:\underline{\underline{\varepsilon}}= \operatorname{tr}\big(\underline{\underline{\varepsilon}}^2\big), \qquad I_3 = \det\underline{\underline{\varepsilon}}. \]

La loi étant linéaire, on cherche une fonction quadratique (homogène de degré 2) des composantes. Le déterminant étant un produit de 3 composantes, il est d’ordre 3 : il ne reste que \(I_1^2\) et \(I_2\) : \[ \boxed{w_{\text{élas}}= \frac{\lambda}{2}\,\big(\operatorname{tr}\underline{\underline{\varepsilon}}\big)^2 + \mu\,\underline{\underline{\varepsilon}}:\underline{\underline{\varepsilon}}} \tag{10}\] où \(\lambda\) et \(\mu\) sont deux constantes (paramètres matériaux) appelées coefficients de Lamé, exprimés en Pa.

4.2 Loi de Hooke isotrope

Pour trouver la loi de comportement associée à ce potentiel, on le dérive, en utilisant \(\dfrac{\partial \varepsilon_{ij}}{\partial \varepsilon_{kl}} = \delta_{ik}\,\delta_{jl}\) : \[ \begin{aligned} \sigma_{ij} = \frac{\partial w_{\text{élas}}}{\partial \varepsilon_{ij}} &= \frac{\lambda}{2}\,\frac{\partial\,(\varepsilon_{kk})^2}{\partial \varepsilon_{ij}} + \mu\,\frac{\partial\,(\varepsilon_{kl}\varepsilon_{kl})}{\partial \varepsilon_{ij}}\\ &= \frac{\lambda}{2}\times 2\,\varepsilon_{kk}\,\frac{\partial \varepsilon_{mm}}{\partial \varepsilon_{ij}} + \mu\left(\frac{\partial \varepsilon_{kl}}{\partial \varepsilon_{ij}}\,\varepsilon_{kl} + \varepsilon_{kl}\,\frac{\partial \varepsilon_{kl}}{\partial \varepsilon_{ij}}\right)\\ &= \lambda\,\varepsilon_{kk}\,\delta_{ij} + \mu\,\big(\underbrace{\delta_{ik}\delta_{jl}\,\varepsilon_{kl} + \delta_{ik}\delta_{jl}\,\varepsilon_{kl}}_{2\,\varepsilon_{ij}}\big), \end{aligned} \] soit la loi de Hooke isotrope : \[ \boxed{\underline{\underline{\sigma}}= \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}+ 2\mu\,\underline{\underline{\varepsilon}}.} \tag{11}\]

NoteRemarque : dérivation directement en notation tensorielle

On peut aussi obtenir ce résultat sans passer par les indices, en généralisant aux tenseurs d’ordre 2 les règles de dérivation usuelles : la double contraction « \(:\) » joue le rôle d’un produit, auquel on applique la règle de dérivation d’un produit.

On peut ainsi voir que \(\operatorname{tr}\underline{\underline{\varepsilon}}= \underline{\underline{\varepsilon}}:\underline{\underline{\mathbf{1}}}\), d’où \[ \frac{\partial\,(\operatorname{tr}\underline{\underline{\varepsilon}})^2}{\partial \underline{\underline{\varepsilon}}} = \frac{\partial\,(\underline{\underline{\varepsilon}}:\underline{\underline{\mathbf{1}}})^2}{\partial \underline{\underline{\varepsilon}}} = 2\times\underline{\underline{\mathbf{1}}}\times(\underline{\underline{\varepsilon}}:\underline{\underline{\mathbf{1}}}) = 2\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}, \] exactement comme \(\dfrac{d\,(a x)^2}{dx} = 2\,a\,(a x)\) pour des scalaires. De même, \(\underline{\underline{\varepsilon}}:\underline{\underline{\varepsilon}}\) est un « carré » : \[ \frac{\partial\,(\underline{\underline{\varepsilon}}:\underline{\underline{\varepsilon}})}{\partial \underline{\underline{\varepsilon}}} = 2\,\underline{\underline{\varepsilon}}. \] On retrouve donc \(\underline{\underline{\sigma}}= \dfrac{\lambda}{2}\times 2\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}+ \mu\times 2\,\underline{\underline{\varepsilon}}= \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}+ 2\mu\,\underline{\underline{\varepsilon}}\).

4.3 Décomposition sphérique / déviatorique

Suivant l’interprétation que l’on veut avoir de cette loi, on peut la réorganiser en faisant intervenir le déviateur de \(\underline{\underline{\varepsilon}}\), \[ \underline{\underline{e}} = \underline{\underline{\varepsilon}}- \frac{1}{3}\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}, \] qui caractérise la distorsion de forme sans prendre en compte la variation de volume (\(\underline{\underline{e}}\) est à trace nulle). On peut alors écrire \[ \underline{\underline{\sigma}}= \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}+ 2\mu\left(\underline{\underline{e}} + \frac{1}{3}\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}\right) = \underbrace{\left(\lambda + \frac{2}{3}\mu\right)}_{K}\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}+ 2\mu\,\underline{\underline{e}}, \tag{12}\] où \(K = \lambda + \tfrac{2}{3}\mu\) est le module de compressibilité.

4.4 Exemples : donner du sens à \(\mu\) et \(K\)

4.4.1 Exemple a : cisaillement simple

On considère un carré dont la base est bloquée et que l’on cisaille d’un angle \(\gamma\) (Figure 4) : \[ \underline{u} = \gamma\,X_2\,\underline{e}_1 . \]

Alors \[ \underline{\underline{\varepsilon}}= \begin{pmatrix} 0 & \gamma/2 & 0\\ \gamma/2 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}, \qquad \underline{\underline{\sigma}}= 2\mu\,\underline{\underline{\varepsilon}}+ \lambda\underbrace{\operatorname{tr}(\underline{\underline{\varepsilon}})}_{0}\underline{\underline{\mathbf{1}}} = \begin{pmatrix} 0 & \mu\gamma & 0\\ \mu\gamma & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}. \]

\(\mu\) peut aussi être noté \(G\) : c’est le module de cisaillement, \[ \mu = \frac{\sigma_{12}}{2\,\varepsilon_{12}} \;\left(= \frac{\sigma_{13}}{2\,\varepsilon_{13}} = \frac{\sigma_{23}}{2\,\varepsilon_{23}} \text{ suivant les directions dans lesquelles on cisaille}\right). \]

Afficher le code Python
mu = 80e3  # MPa
gammas = np.round(np.linspace(0, 0.6, 13), 2)

def carre_cisaille(g):
    X = np.array([0, 1, 1, 0, 0])
    Y = np.array([0, 0, 1, 1, 0])
    return X + g * Y, Y

fig = go.Figure()
fig.add_trace(go.Scatter(x=[0, 1, 1, 0, 0], y=[0, 0, 1, 1, 0], mode="lines",
                         name="configuration initiale",
                         line=dict(color="grey", dash="dot")))
for k, g in enumerate(gammas):
    x, y = carre_cisaille(g)
    fig.add_trace(go.Scatter(x=x, y=y, fill="toself", mode="lines",
                             name="configuration déformée",
                             line=dict(color=COULEURS[0], width=3),
                             fillcolor="rgba(42,157,143,0.25)",
                             visible=(k == len(gammas) // 2)))

steps = []
for k, g in enumerate(gammas):
    vis = [True] + [j == k for j in range(len(gammas))]
    steps.append(dict(method="update", label=f"{g:.2f}",
                      args=[{"visible": vis},
                            {"title": f"γ = {g:.2f}  →  σ₁₂ = μγ = {mu * g / 1e3:.1f} GPa"}]))

g0 = gammas[len(gammas) // 2]
fig.update_layout(
    sliders=[dict(active=len(gammas) // 2, currentvalue=dict(prefix="γ = "),
                  steps=steps, pad=dict(t=40))],
    title=f"γ = {g0:.2f}  →  σ₁₂ = μγ = {mu * g0 / 1e3:.1f} GPa",
    xaxis=dict(range=[-0.2, 1.9], title="x₁", scaleanchor="y"),
    yaxis=dict(range=[-0.2, 1.3], title="x₂"),
    height=480, legend=dict(x=0.99, y=0.02, xanchor="right", yanchor="bottom", bgcolor="rgba(255,255,255,0.7)"),
)
fig.show()
Figure 4: Cisaillement simple \(\underline{u} = \gamma X_2 \underline{e}_1\) d’un carré unité (base bloquée). Le curseur fait varier \(\gamma\) ; la valeur de \(\sigma_{12} = \mu\gamma\) est donnée pour \(\mu = 80\) GPa (acier). Les déformations sont exagérées pour la lecture.

4.4.2 Exemple b : compression isostatique

On comprime un cube uniformément dans toutes les directions : \[ \underline{u} = \beta\,X_i\,\underline{e}_i, \qquad \beta < 0 . \]

Alors \[ \underline{\underline{\varepsilon}}= \begin{pmatrix} \beta & 0 & 0\\ 0 & \beta & 0\\ 0 & 0 & \beta \end{pmatrix} = \beta\,\underline{\underline{\mathbf{1}}}, \qquad \underline{\underline{\sigma}}= 2\mu\underbrace{\beta\,\underline{\underline{\mathbf{1}}}}_{\underline{\underline{\varepsilon}}} + \lambda\times\underbrace{3\beta}_{\operatorname{tr}\underline{\underline{\varepsilon}}}\,\underline{\underline{\mathbf{1}}} = (2\mu + 3\lambda)\,\beta\,\underline{\underline{\mathbf{1}}}= -p\,\underline{\underline{\mathbf{1}}}. \]

On a donc, avec Équation 3, \[ \frac{\Delta V}{V} = \operatorname{tr}\underline{\underline{\varepsilon}}= 3\beta = \frac{3\times(-p)}{2\mu + 3\lambda} = -\frac{p}{K}, \] d’où \(K\,\operatorname{tr}\underline{\underline{\varepsilon}}= -p\), soit \[ \boxed{K\,\frac{\Delta V}{V} = -p .} \tag{13}\]

\(K\) relie donc directement la pression appliquée à la variation relative de volume. La Figure 5 permet de jouer avec \(\beta\).

Afficher le code Python
K_acier = 175e3  # MPa
betas = np.round(np.linspace(-0.30, 0.0, 13), 3)

def carre_comprime(b):
    c = 1 + b
    return [0, c, c, 0, 0], [0, 0, c, c, 0]

def titre_iso(b):
    return f"β = {b:.3f}  →  ΔV/V = 3β = {3 * b:+.2f},  p = −3Kβ = {-3 * K_acier * b / 1e3:.0f} GPa"

fig = go.Figure()
fig.add_trace(go.Scatter(x=[0, 1, 1, 0, 0], y=[0, 0, 1, 1, 0], mode="lines",
                         name="configuration initiale",
                         line=dict(color=COULEURS[2], dash="dot")))
k0 = 5
for k, b in enumerate(betas):
    x, y = carre_comprime(b)
    fig.add_trace(go.Scatter(x=x, y=y, fill="toself", mode="lines",
                             name="configuration déformée",
                             line=dict(color=COULEURS[0], width=3),
                             fillcolor="rgba(55,70,255,0.18)",
                             visible=(k == k0)))

# Flèches de pression sur les faces chargées (x = 1 et y = 1 dans la coupe)
def fleches(b):
    c = 1 + b
    ann = []
    for t in (0.25, 0.5, 0.75):
        ann.append(dict(x=c, y=t * c, ax=c + 0.25, ay=t * c, xref="x", yref="y",
                        axref="x", ayref="y", showarrow=True, arrowhead=2,
                        arrowwidth=2, arrowcolor=COULEURS[1], text=""))
        ann.append(dict(x=t * c, y=c, ax=t * c, ay=c + 0.25, xref="x", yref="y",
                        axref="x", ayref="y", showarrow=True, arrowhead=2,
                        arrowwidth=2, arrowcolor=COULEURS[1], text=""))
    return ann

steps = []
for k, b in enumerate(betas):
    vis = [True] + [j == k for j in range(len(betas))]
    steps.append(dict(method="update", label=f"{b:.3f}",
                      args=[{"visible": vis},
                            {"title": titre_iso(b), "annotations": fleches(b)}]))

fig.update_layout(
    sliders=[dict(active=k0, currentvalue=dict(prefix="β = "), steps=steps, pad=dict(t=40))],
    title=titre_iso(betas[k0]),
    annotations=fleches(betas[k0]),
    xaxis=dict(range=[-0.2, 1.5], title="x₁", scaleanchor="y"),
    yaxis=dict(range=[-0.2, 1.4], title="x₂"),
    height=480,
    legend=dict(x=0.99, y=0.02, xanchor="right", yanchor="bottom", bgcolor="rgba(255,255,255,0.7)"),
)
fig.show()
Figure 5: Compression isostatique \(\underline{u} = \beta X_i \underline{e}_i\) d’un cube unité (coupe dans le plan \((\underline{e}_1, \underline{e}_2)\), coin en \(O\) fixe). Le curseur fait varier \(\beta\) ; le titre donne \(\Delta V / V = 3\beta\) et la pression \(p = -3K\beta\) pour \(K = 175\) GPa (acier). Les déformations sont exagérées pour la lecture.

4.5 Inversion de la loi de comportement

De manière analogue à \(\underline{\underline{\underline{\underline{C}}}}\), on peut définir le tenseur de souplesse \(\underline{\underline{\underline{\underline{S}}}}= \underline{\underline{\underline{\underline{C}}}}^{-1}\) tel que \[ \underline{\underline{\varepsilon}}= \underline{\underline{\underline{\underline{S}}}}: \underline{\underline{\sigma}}. \]

Le potentiel élastique peut alors se réécrire \[ w_{\text{élas}}= \frac{1}{2}\,\underline{\underline{\sigma}}: \underline{\underline{\underline{\underline{S}}}}: \underline{\underline{\sigma}} \qquad \left(\text{analogie : } w_{\text{élas}}= \frac{1}{2}\frac{F^2}{k}\right). \]

Dans le cas isotrope, on peut mettre \(\underline{\underline{\underline{\underline{S}}}}\) en exergue en inversant la loi Équation 11 reliant \(\underline{\underline{\sigma}}\) à \(\underline{\underline{\varepsilon}}\). On prend la trace de cette expression (avec \(\operatorname{tr}\underline{\underline{\mathbf{1}}}= 3\)) : \[ \operatorname{tr}\underline{\underline{\sigma}}= 3\lambda\,\operatorname{tr}\underline{\underline{\varepsilon}}+ 2\mu\,\operatorname{tr}\underline{\underline{\varepsilon}}= (2\mu + 3\lambda)\,\operatorname{tr}\underline{\underline{\varepsilon}}. \]

D’où \[ \underline{\underline{\sigma}}= \frac{\lambda\,\operatorname{tr}\underline{\underline{\sigma}}}{2\mu + 3\lambda}\,\underline{\underline{\mathbf{1}}}+ 2\mu\,\underline{\underline{\varepsilon}} \quad\Longrightarrow\quad \boxed{\underline{\underline{\varepsilon}}= \frac{1}{2\mu}\left[\underline{\underline{\sigma}}- \frac{\lambda\,\operatorname{tr}\underline{\underline{\sigma}}}{2\mu + 3\lambda}\,\underline{\underline{\mathbf{1}}}\right].} \]

4.5.1 Module d’Young et coefficient de Poisson

En posant \[ \frac{1+\nu}{E} = \frac{1}{2\mu} \qquad\text{et}\qquad \frac{\nu}{E} = \frac{\lambda}{2\mu\,(3\lambda + 2\mu)}, \] la relation devient \[ \boxed{\underline{\underline{\varepsilon}}= \frac{1+\nu}{E}\,\underline{\underline{\sigma}}- \frac{\nu}{E}\,\big(\operatorname{tr}\underline{\underline{\sigma}}\big)\,\underline{\underline{\mathbf{1}}}.} \tag{14}\]

\[ \frac{1}{E} + \frac{\nu}{E} = \frac{1}{2\mu} \;\Rightarrow\; \frac{1}{E} = \frac{1}{2\mu} - \frac{\lambda}{2\mu\,(3\lambda + 2\mu)} = \frac{3\lambda + 2\mu - \lambda}{2\mu\,(3\lambda + 2\mu)} = \frac{\lambda + \mu}{\mu\,(3\lambda + 2\mu)} , \] soit \(E = \dfrac{\mu\,(3\lambda + 2\mu)}{\lambda + \mu}\). Puis \[ 1 + \nu = \frac{E}{2\mu} = \frac{3\lambda + 2\mu}{2(\lambda + \mu)} \quad\Rightarrow\quad \nu = \frac{3\lambda + 2\mu}{2(\lambda + \mu)} - 1 = \frac{\lambda}{2(\lambda + \mu)} . \]

4.5.2 Exemple c : traction simple — donner du sens à \(E\) et \(\nu\)

On considère un état de traction pure : \[ \underline{\underline{\sigma}}= \begin{pmatrix} \sigma_{11} & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}. \]

On utilise la loi de comportement Équation 14, qui permet de remonter à \(\underline{\underline{\varepsilon}}\) depuis \(\underline{\underline{\sigma}}\) : \[ \underline{\underline{\varepsilon}}= \frac{1+\nu}{E}\,\underline{\underline{\sigma}}- \frac{\nu}{E}\,\operatorname{tr}(\underline{\underline{\sigma}})\,\underline{\underline{\mathbf{1}}} = \begin{pmatrix} \sigma_{11}/E & 0 & 0\\ 0 & -\nu\,\sigma_{11}/E & 0\\ 0 & 0 & -\nu\,\sigma_{11}/E \end{pmatrix}. \]

D’où \(\varepsilon_{11}\,E = \sigma_{11}\), et \[ \boxed{E = \frac{\sigma_{11}}{\varepsilon_{11}}} \qquad\qquad \boxed{\nu = -\frac{\varepsilon_{22}}{\varepsilon_{11}} = -\frac{\varepsilon_{33}}{\varepsilon_{11}}} \] (en effet \(-\varepsilon_{22}/\varepsilon_{11} = \dfrac{\nu\,\sigma_{11}}{E}\times\dfrac{E}{\sigma_{11}} = \nu\)).

\(E\) est le module d’Young (pente de la zone linéaire en traction, Figure 2) et \(\nu\) le coefficient de Poisson, qui mesure la contraction transverse. La Figure 6 permet de jouer avec \(\nu\).

Afficher le code Python
eps11 = 0.20
nus = np.round(np.arange(0.0, 0.51, 0.05), 2)
L0, h0 = 3.0, 1.0

def rectangle(L, h):
    return [0, L, L, 0, 0], [-h / 2, -h / 2, h / 2, h / 2, -h / 2]

fig = go.Figure()
x0, y0 = rectangle(L0, h0)
fig.add_trace(go.Scatter(x=x0, y=y0, mode="lines", name="configuration initiale",
                         line=dict(color="grey", dash="dot")))
for k, nu in enumerate(nus):
    x, y = rectangle(L0 * (1 + eps11), h0 * (1 - nu * eps11))
    fig.add_trace(go.Scatter(x=x, y=y, fill="toself", mode="lines",
                             name="configuration déformée",
                             line=dict(color=COULEURS[1], width=3),
                             fillcolor="rgba(231,111,81,0.25)",
                             visible=(nu == 0.3)))

def titre(nu):
    return (f"ν = {nu:.2f} :  ε₂₂ = {-nu * eps11:+.3f},  "
            f"ΔV/V = (1−2ν) ε₁₁ = {(1 - 2 * nu) * eps11:+.3f}")

steps = []
for k, nu in enumerate(nus):
    vis = [True] + [j == k for j in range(len(nus))]
    steps.append(dict(method="update", label=f"{nu:.2f}",
                      args=[{"visible": vis}, {"title": titre(nu)}]))

k0 = int(np.where(nus == 0.3)[0][0])
fig.update_layout(
    sliders=[dict(active=k0, currentvalue=dict(prefix="ν = "), steps=steps, pad=dict(t=40))],
    title=titre(0.3),
    xaxis=dict(range=[-0.3, 3.9], title="x₁", scaleanchor="y"),
    yaxis=dict(range=[-0.9, 0.9], title="x₂"),
    height=430, legend=dict(x=0.99, y=0.02, xanchor="right", yanchor="bottom", bgcolor="rgba(255,255,255,0.7)"),
)
fig.show()
Figure 6: Effet Poisson en traction simple : barreau de section carrée allongé de \(\varepsilon_{11}\) (exagéré à 20 %) et contracté transversalement de \(\varepsilon_{22} = -\nu\,\varepsilon_{11}\). Le curseur fait varier \(\nu\) ; le titre donne la variation relative de volume \(\operatorname{tr}\underline{\underline{\varepsilon}}= (1-2\nu)\,\varepsilon_{11}\).

4.5.3 Relations entre les coefficients

On retiendra les relations suivantes entre les couples \((\lambda, \mu)\) et \((E, \nu)\) :

Table 1: Relations entre coefficients d’élasticité isotrope.
en fonction de \((\lambda,\mu)\) en fonction de \((E,\nu)\)
\(E\) \(\dfrac{\mu(3\lambda+2\mu)}{\lambda+\mu}\) —
\(\nu\) \(\dfrac{\lambda}{2(\lambda+\mu)}\) —
\(\lambda\) — \(\dfrac{E\nu}{(1+\nu)(1-2\nu)}\)
\(\mu = G\) — \(\dfrac{E}{2(1+\nu)}\)
\(K\) \(\lambda + \dfrac{2}{3}\mu\) \(\dfrac{E}{3(1-2\nu)}\)

D’après le Table 1, quand \(\nu \to 1/2\), \(\lambda\) et \(K\) divergent (matériau incompressible), alors que \(\mu\) reste fini.

5 Exercice : compression œdométrique

Mise en gardeÉnoncé

Un échantillon cylindrique de rayon \(R\) et de hauteur \(h\), constitué d’un matériau élastique linéaire isotrope \((\lambda, \mu)\), est placé dans un moule rigide. Il repose sur un fond fixe (\(z = 0\)), est comprimé sur sa face supérieure (\(z = h\)) par une pression uniforme \(p\), et sa face latérale (\(r = R\)) glisse sans frottement contre la paroi du moule, qui empêche tout déplacement radial. On néglige les forces de volume.

  1. Écrire les équations du problème et les conditions aux limites.
  2. On cherche une solution sous la forme \(\underline{u} = u(z)\,\underline{e}_z\).
  3. Calculer \(\underline{\underline{\varepsilon}}\) et \(\underline{\underline{\sigma}}\) ; en déduire l’équation vérifiée par \(u\).
  4. Déterminer complètement \(\underline{u}\) et \(\underline{\underline{\sigma}}\).
  5. Calculer la pression \(q\) exercée par la paroi du moule sur l’échantillon.
  6. Exprimer \(K\) en fonction de \(E\) et \(\nu\). Que se passe-t-il pour un matériau quasi incompressible ? En déduire comment mesurer \(K\).

1. Équations du problème : \[ \left\{ \begin{aligned} &\operatorname{div}\underline{\underline{\sigma}}= \underline{0} && \text{dans } \Omega\\ &\underline{\underline{\sigma}}= 2\mu\,\underline{\underline{\varepsilon}}+ \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}})\,\underline{\underline{\mathbf{1}}}\\ &\underline{\underline{\varepsilon}}= \tfrac{1}{2}\left(\underline{\underline{\nabla}}\underline{u} + {}^{t}\underline{\underline{\nabla}}\underline{u}\right) \end{aligned} \right. \] Conditions aux limites : \[ \begin{aligned} &\underline{u}(r,\theta,0) = \underline{0} && \text{sur } \partial\Omega_{\text{inf}},\\ &\underline{T}(r,\theta,h) = -p\,\underline{e}_z && \text{sur } \partial\Omega_{\text{sup}},\\ &\underline{u}(R,\theta,z)\cdot\underline{e}_r = 0,\quad \underline{T}(R,\theta,z)\cdot\underline{e}_\theta = 0,\quad \underline{T}(R,\theta,z)\cdot\underline{e}_z = 0 && \text{sur } \partial\Omega_{\text{lat}}. \end{aligned} \]

2. \(\underline{u} = u(z)\,\underline{e}_z\).

3. \[ \underline{\underline{\varepsilon}}= \frac{1}{2}\left(\underline{\underline{\nabla}}\underline{u} + {}^{t}\underline{\underline{\nabla}}\underline{u}\right) = \begin{bmatrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & u_{z,z} \end{bmatrix}, \qquad \underline{\underline{\sigma}}= u_{z,z}\begin{pmatrix} \lambda & 0 & 0\\ 0 & \lambda & 0\\ 0 & 0 & \lambda + 2\mu \end{pmatrix}. \] \(\operatorname{div}\underline{\underline{\sigma}}= \underline{0} \Rightarrow u_{z,zz} = 0\).

4. Donc \(u_z = a z + b\) avec \((a,b)\in\mathbb{R}^2\). \(u(z=0) = 0 \Rightarrow b = 0\), d’où \(u_z = a z\) et \[ \underline{\underline{\sigma}}= a\begin{pmatrix} \lambda & 0 & 0\\ 0 & \lambda & 0\\ 0 & 0 & \lambda + 2\mu \end{pmatrix}. \] Sur \(\partial\Omega_{\text{sup}}\), \(\underline{\underline{\sigma}}\,\underline{e}_z = -p\,\underline{e}_z \Rightarrow a(\lambda + 2\mu) = -p \Rightarrow a = -\dfrac{p}{\lambda + 2\mu}\). Soit \[ \underline{\underline{\sigma}}= \begin{pmatrix} -\dfrac{\lambda p}{\lambda + 2\mu} & 0 & 0\\ 0 & -\dfrac{\lambda p}{\lambda + 2\mu} & 0\\ 0 & 0 & -p \end{pmatrix}, \qquad \boxed{\underline{u} = -\frac{p}{\lambda + 2\mu}\,z\,\underline{e}_z .} \]

5. \(\underline{\underline{\sigma}}(R,\theta,z)\,\underline{e}_r = -\dfrac{\lambda p}{\lambda + 2\mu}\,\underline{e}_r = -q\,\underline{e}_r\) (définition de \(q\) comme une pression), d’où \[ q = \frac{\lambda\,p}{\lambda + 2\mu}. \]

6. Avec \(\lambda = \dfrac{E\nu}{(1+\nu)(1-2\nu)}\) et \(\mu = \dfrac{E}{2(1+\nu)}\) : \[ K = \lambda + \frac{2}{3}\mu = \frac{E\nu}{(1+\nu)(1-2\nu)} + \frac{2}{3}\,\frac{E}{2(1+\nu)} = \frac{3E\nu + E(1-2\nu)}{3(1+\nu)(1-2\nu)} = \frac{E(1+\nu)}{3(1+\nu)(1-2\nu)} = \frac{E}{3(1-2\nu)} . \] Donc \(K \to \infty \iff \nu \to 1/2\). Dans ce cas (matériau quasi incompressible), \(\lambda \simeq K \gg \mu\) et \[ \underline{\underline{\varepsilon}}= \begin{pmatrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & -\dfrac{p}{\lambda + 2\mu} \end{pmatrix} \simeq \begin{pmatrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & -\dfrac{p}{\lambda} \end{pmatrix}, \qquad -\frac{p}{\lambda} \simeq -\frac{p}{K}\ \ \text{car } K = \lambda + \tfrac{2}{3}\mu . \] D’où \(K \simeq -\dfrac{p}{\varepsilon_{zz}}\) avec \(p = F/S\) et \(\varepsilon_{zz} = \Delta h / h\) (le déplacement \(u\) est linéaire en \(z\), de pente \(a\), et vaut \(\Delta h\) en \(z = h\)). Soit \[ \boxed{K \simeq \frac{F}{S}\,\frac{h}{|\Delta h|}.} \]

6 Thermoélasticité

6.1 Déformation thermique

On considère un solide initialement à la température \(T_0\), porté à la température \(T = T_0 + \Delta T\) :

  • \(\Delta T > 0\) : dilatation thermique ;
  • \(\Delta T < 0\) : contraction thermique.

Quand un solide est soumis à une variation de température \(\Delta T\), il se dilate ou se contracte suivant le signe de \(\Delta T\). Les déformations thermiques sont directement proportionnelles à \(\Delta T\), avec un coefficient de proportionnalité \(\alpha\) (coefficient de dilatation thermique), ici supposé isotrope : \[ \boxed{\underline{\underline{\varepsilon}}^{\text{th}}(\underline{M}) = \alpha\,\Delta T(\underline{M})\,\underline{\underline{\mathbf{1}}}.} \tag{15}\]

6.2 Partition des déformations

Si rien n’empêche cette dilatation, la variation de température n’entraîne aucune contrainte. Les déformations thermiques s’ajoutent aux déformations élastiques : \[ \underline{\underline{\varepsilon}}^{\text{total}}(\underline{M}) = \underline{\underline{\varepsilon}}^{\text{élas}}(\underline{M}) + \underline{\underline{\varepsilon}}^{\text{th}}(\underline{M}) = \underline{\underline{\underline{\underline{S}}}}: \underline{\underline{\sigma}}(\underline{M}) + \underline{\underline{\varepsilon}}^{\text{th}}(\underline{M}) = \underbrace{\frac{1+\nu}{E}\,\underline{\underline{\sigma}}- \frac{\nu}{E}\,\operatorname{tr}(\underline{\underline{\sigma}})\,\underline{\underline{\mathbf{1}}}}_{\underline{\underline{\varepsilon}}^{\text{élas}}} + \underbrace{\alpha\,\Delta T\,\underline{\underline{\mathbf{1}}}}_{\underline{\underline{\varepsilon}}^{\text{th}}} . \]

Seule la partie élastique \(\underline{\underline{\varepsilon}}^{e} = \underline{\underline{\varepsilon}}^{\text{total}} - \underline{\underline{\varepsilon}}^{\text{th}}\) génère des contraintes (si \(\underline{\underline{\varepsilon}}^{\text{tot}} = \underline{\underline{\varepsilon}}^{\text{th}}\), alors \(\underline{\underline{\varepsilon}}^{e} = \underline{\underline{0}}\) et \(\underline{\underline{\sigma}}= \underline{\underline{0}}\)).

6.3 Loi de comportement thermoélastique

\[ \begin{aligned} \underline{\underline{\sigma}}&= 2\mu\,\underline{\underline{\varepsilon}}^{e} + \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}}^{e})\,\underline{\underline{\mathbf{1}}}\\ &= 2\mu\left(\underline{\underline{\varepsilon}}^{\text{total}} - \underline{\underline{\varepsilon}}^{\text{th}}\right) + \lambda\,\operatorname{tr}\!\left(\underline{\underline{\varepsilon}}^{\text{total}} - \underline{\underline{\varepsilon}}^{\text{th}}\right)\underline{\underline{\mathbf{1}}}\\ &= 2\mu\,\underline{\underline{\varepsilon}}^{\text{tot}} + \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}}^{\text{tot}})\,\underline{\underline{\mathbf{1}}} - \underbrace{\left(2\mu\,\underline{\underline{\varepsilon}}^{\text{th}} + \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}}^{\text{th}})\,\underline{\underline{\mathbf{1}}}\right)}_{2\mu\alpha\Delta T\,\underline{\underline{\mathbf{1}}}\,+\, 3\lambda\alpha\Delta T\,\underline{\underline{\mathbf{1}}}\;=\; \alpha\Delta T\,(2\mu + 3\lambda)\,\underline{\underline{\mathbf{1}}}} \end{aligned} \]

Avec \(K = \lambda + \tfrac{2}{3}\mu\), on a \(\alpha\Delta T\,(2\mu + 3\lambda) = 3\alpha\,\Delta T\,K\), d’où \[ \boxed{\underline{\underline{\sigma}}= 2\mu\,\underline{\underline{\varepsilon}}^{\text{tot}} + \lambda\,\operatorname{tr}(\underline{\underline{\varepsilon}}^{\text{tot}})\,\underline{\underline{\mathbf{1}}}- 3K\alpha\,\Delta T\,\underline{\underline{\mathbf{1}}}.} \tag{16}\]

6.4 Exercice : cylindre bridé chauffé

Mise en gardeÉnoncé

Un cylindre d’axe \(\underline{e}_z\), de rayon \(R\) et de longueur \(L\), en matériau thermoélastique isotrope \((E, \nu, \alpha)\), est placé entre deux appuis rigides plans sans frottement en \(z = 0\) et \(z = L\). Sa surface latérale est libre. On le soumet à une variation de température uniforme \(\Delta T\).

  1. Écrire les conditions aux limites.
  2. Montrer qu’un champ de contrainte de la forme \(\underline{\underline{\sigma}}= \sigma_{zz}\,\underline{e}_z\otimes\underline{e}_z\) est admissible.
  3. Calculer le tenseur des déformations.

1. Sur \(\partial\Omega_{z=0}\) : \[ \underline{u}(r,\theta,0)\cdot\underline{e}_z = 0, \qquad \underline{T}\cdot\underline{e}_\theta = 0, \quad \underline{T}\cdot\underline{e}_r = 0 \qquad \big(\underline{T} = \underline{\underline{\sigma}}(r,\theta,0)\,(-\underline{e}_z)\big). \] Sur \(\partial\Omega_{z=L}\) : \[ \underline{u}(r,\theta,L)\cdot\underline{e}_z = 0, \qquad \underline{T}\cdot\underline{e}_\theta = 0, \quad \underline{T}\cdot\underline{e}_r = 0 \qquad \big(\underline{T} = \underline{\underline{\sigma}}(r,\theta,L)\,\underline{e}_z\big). \] Sur \(\partial\Omega_{\text{lat}}\) : \(\underline{T} = \underline{\underline{\sigma}}(R,\theta,z)\,\underline{e}_r = \underline{0}\).

2. Avec \(\underline{\underline{\sigma}}= \sigma_{zz}\,\underline{e}_z\otimes\underline{e}_z\) (et \(\sigma_{zz}\) uniforme), on a bien \(\operatorname{div}\underline{\underline{\sigma}}= \underline{0}\) ; cette forme de champ de contrainte est donc admissible car elle permet également de vérifier les conditions aux limites (vecteur contrainte nul sur la surface latérale, purement axial sur les faces d’appui).

3. \[ \underline{\underline{\varepsilon}}= \underline{\underline{\varepsilon}}^{e} + \underline{\underline{\varepsilon}}^{\text{th}} = \frac{1+\nu}{E}\,\underline{\underline{\sigma}}- \frac{\nu}{E}\,\operatorname{tr}(\underline{\underline{\sigma}})\,\underline{\underline{\mathbf{1}}}+ \alpha\,\Delta T\,\underline{\underline{\mathbf{1}}}, \] d’où \[ \underline{\underline{\varepsilon}}= \begin{pmatrix} -\dfrac{\nu}{E}\,\sigma_{zz} + \alpha\Delta T & 0 & 0\\ 0 & -\dfrac{\nu}{E}\,\sigma_{zz} + \alpha\Delta T & 0\\ 0 & 0 & \dfrac{\sigma_{zz}}{E} + \alpha\Delta T \end{pmatrix}. \]