TangenteX.com

Les solitons

Ondes et physique linéaire

Le concept d'onde est familier aux élèves du lycée et des classes préparatoires. Du moins, leur semble-t-il familier... Car une onde, solution d'une équation de propagation comme l'équation de D'Alembert, présente quelques caractéristiques sur lesquelles on ne revient peut-être pas suffisamment. Une onde, telle qu'elle est modélisée mathématiquement, ne possède ni extension spatiale, ni extension temporelle : elle se propage indéfiniment, ce qui est physiquement assez ennuyeux. Pire, elle transporte une énergie infinie, ce qui est encore plus ennuyeux. Dans une page consacrée aux paquets d'ondes, j'ai abordé ces problèmes.

Les équations de propagation, D'Alembert ou Schrödinger, les équations de Maxwell ou celles de la physique quantique, sont des filles de la physique linéaire. Elles ont été établies en laissant de coté tous les aspects tenus pour négligeables, qui auraient pu introduire une non-linéarité, un sinus ou un terme quadratique par exemple. Sauf lorsque c'était impossible : les équations de Navier-Stokes sont non linéaires et elles furent (sont toujours d'ailleurs) problématiques à cause de cela.

J'ai déjà abordé la non-linéarité dans plusieurs pages de TangenteX, par exemple dans l'étude des oscillateurs, et découvert une nouvelle branche de la physique née de cette non-linéarité : le chaos.

Il existe des objets physiques dont la physique est non linéaire, mais qui ne sont pas chaotiques. Ces objets sont observables dans la nature : ce sont les solitons. La première observation d'une drôle d'onde sur un canal, onde qui se propage à vitesse constante, sans se déformer et qui possède une extension spatiale finie, fut rapportée par John Scott Russel en 1834. Puis d'autres formes de ces ondes exotiques furent observées dans d'autres domaines de la physique, en particulier en astrophysique et en physique du solide. L'étude théorique de ces objets donna lieu à la construction de deux grandes familles de solitons : les solitons non-topologiques, ceux de l'hydrodynamique pour simplifier, et les solitons topologiques, ceux de la physique du solide, toujours pour simplifier. Les premiers sont décrits par l'équation de Korteweg-de Vries (KdV) et les seconds par l'équation de sine-Gordon (SG).

Dans cette page, j'aborderai les solitions topologiques et l'équation de sine-Gordon. L'équation KdV et les solitons non-topologiques feront l'objet d'une autre page.

Qu'est-ce qu'un soliton

Un soliton est une onde particulière, d'amplitude constante et de faible extension spatiale, qui naît et se propage sur des distances qui peuvent être grandes dans un milieu dispersif.

Le terme "soliton", du à Zabusky et Kruskal en 1965, vient de la contraction des mots "onde solitaire", puisqu'il s'agit d'une onde qui se propage seule et sans déformation, aux effets dissipatifs près. Le suffixe "on" rappelle que l'on peut assimiler le soliton à une particule, comme un électron ou un proton : il possède une extension spatiale restreinte, il transporte une énergie finie et possède un analogue d'une masse. Nous verrons cela plus loin.

Solitons et physique numérique

La première expérience numérique dite FPUT, en 1953, fut la simulation d'un soliton. Elle est due à Fermi, Pasta, Ulam et Tsingou, sur un calculateur MANIAC au laboratoire de Los Alamos. Vous trouverez une description détaillée de cette simulation et la biographie de ces trois scientifiques respectivement physicien, informaticien et mathématicien (la programmeur a droit à une note en bas de page) dans le livre "Physique des solitons" de Michel Peyrard et Thierry Dauxois au §3, ouvrage dont je vous recommande vivement la lecture.

Cette expérience simulait le comportement d'un système formé de 64 pendules pesants, fortement couplés entre eux par un ressort de torsion. L'expérience consistait à injecter un peu d'énergie dans le système, comme lorsqu'on tourne la manivelle pour donner une impulsion dans l'expérience "en vrai", puis de vérifier la répartition de l'énergie sur le système. Les expérimentateurs s'attendaient à ce que l'énergie se répartisse à peu près uniformément sur le système, mais ils constatèrent tout autre chose. L'énergie s'est localisée spatialement sous la forme d'un soliton, une onde de distribution spatiale confinée (nous sommes en mars 2020, en plein confinement Covid-19 en France !), qui se propage sans dissipation sur le système.

La simulation FPUT était basée sur une équation discrète qu'ils exprimaient ainsi :

\( \ddot{u_n} - c^2\left(u_{n+1} - 2u_n + u_{n-1}\right) + \sin u_n = 0 \)

Dans cette équation, la fonction \( u_n(t) \) représente la variation de l'angle avec la verticale du pendule n en fonction du temps. c est un paramètre dont nous verrons la signification plus loin. Cette équation, sous sa forme continue, deviendra l'équation de sine-Gordon.

Etablir l'équation de sine-Gordon

Pour introduire l'équation de sine-Gordon, je me suis inspiré du problème posé au concours d'entrée à l'X en 2015 (section MP). Ce problème traitait de l'étude de deux pendules couplés puis de la propagation d'une onde sur une chaîne de pendules couplés pour aboutir à l'approximation des milieux continus et à l'introduction de la notion de soliton. En cela, il reproduisait l'expérience FPUT, curieusement sans la citer.

Le modèle des deux pendules couplés

Considérons le dispositif physique illustré ci-dessous, formé de deux pendules couplés par un câble de torsion. Les deux pendules sont identiques, de longueur l et de masse m. La distance qui les séparent entre eux et entre le point O est notée a. Les pendules peuvent osciller dans le plan \( ( \overrightarrow{e_y}, \overrightarrow{e_z}) \), selon l'axe  \( \overrightarrow{e_x} \). Les angles formés par chaque pendule avec la verticale sont notés respectivement \( \theta_1 \) et \( \theta_2 \). Je note C la constante de torsion du câble.

Au repos, \( \theta_1 \) = \( \theta_2 \) = 0 et le câble ne subit aucune torsion.

Deux pendules de torsion couplés

Je vais établir les équations différentielles de ce système physique, en négligeant tout phénomène dissipatif, dans le référentiel considéré comme galiléen.

Les pendules sont soumis à l'accélération de la pesanteur \(\overrightarrow{g} \) et le couple de rappel créé par la torsion du câble, qui est différent selon le pendule considéré.

Le pendule de gauche subit deux couples : celui dû à l'accélération de la pesanteur, égal à \( -mgl \sin(\theta_1) \) et aux couples de torsion égaux à \( -C \theta_1 \) à gauche et \( -C(\theta_1 - \theta_2) \) à droite. Si j'appelle L le moment cinétique du pendule, j'ai d'une part, selon le théorème du moment cinétique :

\( \dfrac{dL}{dt} = -mgl \sin(\theta_1) - C \theta_1 - C(\theta_1 - \theta_2) \)

et, par définition du moment cinétique du pendule :

\( L =  ml^2 \dfrac{d \theta_1}{dt} \)

Et donc :

\( ml^2 \dfrac{d^2 \theta_1}{dt^2} = -mgl \sin(\theta_1) - C \theta_1 - C(\theta_1 - \theta_2) \)

J'applique le même raisonnement au pendule de droite, ce qui me donne l'équation :

\( ml^2 \dfrac{d^2 \theta_2}{dt^2} = -mgl \sin(\theta_2) - C \theta_2 - C(\theta_2 - \theta_1) \)

Ce qui me donne finalement un système d'équations différentielles couplées :

\( \dfrac{d^2 \theta_1}{dt^2} + \omega_0^2\sin(\theta_1) - \omega_C^2(2\theta_1 - \theta_2) = 0  \)

et

\( \dfrac{d^2 \theta_2}{dt^2} + \omega_0^2 \sin(\theta_2) - \omega_C^2(2\theta_2 - \theta_1) = 0  \)

avec \( \omega_0 = \sqrt{\dfrac{g}{l}} \) et \( \omega_C = \sqrt{\dfrac{C}{ml^2}} \)

\( \omega_0 \) mesure la pulsation d'oscillation de chaque pendule, en l'absence de couplage, alors que \( \omega_C \) mesure la pulsation de chaque pendule en l'absence de pesanteur, sous la seule influence du couplage avec le pendule voisin.

J'ai conservé l'expression non linéaire des équations, car cela me servira plus loin.

L'extension à une chaîne de pendules couplés

Nous pouvons maintenant, sur le même principe, étendre notre modèle à une chaîne de N pendules identiques couplés par le câble de torsion, chacun espacé d'une distance a, comme figuré ci-dessous :

N pendules de torsion couplés

Si je considère un pendule j hors extrémité, celui-ci subit le couple de torsion généré par la partie à sa gauche du câble de torsion, égal à  \( -C(\theta_j - \theta_{j-1}) \) et aussi le couple de torsion généré par la partie à sa droite , égal à \( -C(\theta_j - \theta_{j+1}) \). En ajoutant, comme ci-dessus, le moment de l'attraction de la pesanteur \( -mgl \sin(\theta_j) \), j'obtiens le moment résultant \( -mgl \sin(\theta_j) -C(\theta_j - \theta_{j-1}) - C(\theta_j - \theta_{j+1}) \).

En suivant la même procédure que ci-dessus, j'obtiens l'équation :

\( ml^2\dfrac{d^2 \theta_j}{dt^2} = -mgl \sin(\theta_j) - C(\theta_j - \theta_{j-1}) - C(\theta_j - \theta_{j+1}) \) pour 1 < j < N   

ou encore, en factorisant, et en utilisant les constantes définies ci-dessus :

\( \dfrac{d^2 \theta_j}{dt^2} - \omega_C^2(\theta_{j+1} - 2\theta_{j}  + \theta_{j-1}) = - \omega_0^2\sin(\theta_j) \)

Par convention, je pose \( \theta_0 = \theta_{N+1} = 0 \) comme conditions aux limites de l'équation.

Passage au modèle continu - L'équation de sine-Gordon

Le principe est d'augmenter le nombre de pendules en réduisant la distance a entre les pendules pour faire tendre a vers 0. En d'autres termes, passer d'un espace discret à un espace continu. Nous supposerons que la longueur d'onde de l'onde qui parcourt notre chaîne de pendules est très supérieure à la distance a. Dans ce cas, nous pouvons retenir l'hypothèse du passage au milieu continu. La variable discrète \( \theta_j(t) \) devient donc une variable continue x, telle que \( \theta(x = ja, t) \). Physiquement, l'approximation du milieu continu implique que le couplage entre les pendules soit suffisamment fort que la variation de \( \theta \) entre deux pendules voisins soit infinitésimale. En d'autres termes, il faut que le couple de torsion imposé par le câble soit très supérieur au couple de rappel dû à la pesanteur.

Comment transformer notre équation discrète obtenue ci-dessus en équation différentielle ? En d'autres termes, comment traiter le terme \( \theta_{j+1} - 2\theta_{j}  + \theta_{j-1} \) ?

La technique classique dans ces cas est d'utiliser le développement limité d'une fonction, ici celui de la fonction \( \theta(x = ja, t) \). Dans notre cas, en faisant un développement d'ordre 2 :

\( \theta_{j+1}(t) = \theta(ja,t) + a\dfrac{\partial \theta (ja,t)}{\partial x} + \dfrac{a^2}{2} \dfrac{\partial^2\theta (ja,t)}{\partial x^2} \)

\( \theta_{j-1}(t) = \theta(ja,t) - a\dfrac{\partial \theta (ja,t)}{\partial x} + \dfrac{a^2}{2} \dfrac{\partial^2\theta (ja,t)}{\partial x^2} \)

ce qui nous permet d'écrire :

\( \theta_{j+1} - 2\theta_{j}  + \theta_{j-1} \approx a^2 \dfrac{\partial^2\theta (ja,t)}{\partial x^2} \).

Notre équation devient donc, en remplaçant le terme \( \theta_{j+1} - 2\theta_{j}  + \theta_{j-1} \) par son développement limité à l'ordre 2 (j'ai simplifié l'écriture) :

\( \dfrac{d^2 \theta}{dt^2} - c_0^2  \dfrac{\partial^2\theta}{\partial x^2} + \omega_0^2\sin\theta = 0 \)     (1)

avec \( c_0 = a \omega_C \), la vitesse de phase.

C'est l'équation de sine-Gordon !

L'équation de sine-Gordon modélise la propagation d'une onde sur une chaîne de pendules fortement couplés. Elle ne prend pas en compte la dissipation d'énergie par les frottements inhérents à tout système physique.

C'est une équation non-linéaire, de par la présence du terme en sinus dans le membre de gauche. L'équation de sine-Gordon est totalement intégrable et possède des solutions analytiques, que nous aborderons dans la suite de cette page.

Reprenons l'équation de sine-Gordon (1) et ré-arrangeons les termes, pour obtenir finalement :

\( \dfrac{\partial^2\theta}{\partial x^2} - \dfrac{1}{c_0^2} \dfrac{d^2 \theta}{dt^2} = \left(\dfrac{\omega_0}{c_0}\right)^2 \sin\theta \)

J'imagine que dans le membre de gauche de l'égalité vous reconnaissez la forme célèbre de l'équation de D'Alembert ! Ainsi, l'équation de sine-Gordon n'est autre que l'équation de propagation des ondes à laquelle nous avons ajouté un terme d'excitation non-linéaire. L'existence des solitons tient justement à ce terme non linéaire !

Un peu d'histoire à propos de cette équation

L'équation de sine-Gordon doit son nom à sa proximité de forme avec une autre équation, l'équation de Klein-Gordon, dont la forme générale est \( \dfrac{d^2 \Psi}{dt^2} - c_0^2  \dfrac{\partial^2\Psi}{\partial x^2} + \omega_0^2\Psi = 0 \).

L'équation de Klein-Gordon, très courante en physique quantique, fut exprimée pour la première fois par E.Schrödinger lorsqu'il tenta de rendre sa célèbre équation compatible avec la relativité restreinte.

Comme vous le remarquez, la différence de forme entre les deux équations tient dans la présence du sinus dans le troisième terme du membre de gauche de l'équation, d'où le nom de sine-Gordon.

Les solutions analytiques de l'équation de sine-Gordon

Cas de l'approximation linéaire

Considérons l'approximation linéaire de l'équation de sine-Gordon, c'est à dire lorsque \( \theta \ll 2\pi \), soit :

\( \dfrac{d^2 \theta}{dt^2} - c_0^2  \dfrac{\partial^2\theta}{\partial x^2} + \omega_0^2 \theta = 0 \)

Cette équation admet des solutions de la forme :

\( \displaystyle \theta = \theta_0 e^{i(kx - \omega t)} + constante \)

où k est le vecteur d'onde et \( \omega \) la pulsation de l'onde. Ces deux variables sont liées par la relation de dispersion \( \omega^2 = \omega_0^2 + c_0^2k^2  \).

La pulsation \( \omega \) n'est pas proportionnelle au vecteur d'onde k : nous sommes en présence d'ondes dispersives.

A vrai dire, dans l'étude des solitons, l'analyse de la forme linéaire de l'équation ne présente pas beaucoup d'intérêt. Car c'est la présence du terme non linéaire sinus qui fait toute la richesse de l'équation de sine-Gordon.

Solutions analytiques de l'équation non linéaire de sine-Gordon

Nous sommes dans l'approximation des milieux continus, c'est à dire que je considère que la longueur l de la chaîne est infinie.

Je cherche une famille de solutions progressives, telle que \( \theta (x,t) = F(x - vt) = F(z) \) en posant \( z = x - vt \). Je vous fais grâce du calcul, pas si compliqué, pour vous donner la solution :

\( \displaystyle F(z) = 4 \arctan \left( \exp \left(  \pm \dfrac{\omega_0}{c_0} \dfrac{z - z_0}{\sqrt{1 - \dfrac{v^2}{c_0^2}}}\right)  \right) \)     (2)

On appelle "soliton" les solutions calculées avec le signe + dans l'équation ci-dessus et "antisoliton" les solutions calculées avec le signe -. Les anglophones utilisent les termes "kink" et "antikink" pour désigner respectivement les solitons et les antisolitons.

z0 désigne la position initiale de l'onde à l'instant t = 0, on choisit naturellement x0 = 0, en milieu de la chaîne et donc z0 = 0. La variable v désigne la vitesse de propagation du soliton, son signe détermine le sens de propagation du soliton. Le signe \( \pm \) dans l'équation fixe le sens de rotation des pendules.

Le script SineGordonAna.py trace pour nous les solutions "kink" ou "soliton", en rouge, et " antikink" ou "antisoliton", en bleu :

Le passage d'un soliton provoque la rotation de 2\(\pi\) d'un pendule. Notons que l'état du pendule a été modifié par le passage du soliton, en particulier son énergie. On parle alors de soliton "topologique", en disant que la "charge topologique" du soliton a été modifiée. C'est vrai pour les solitons mécaniques ou optiques décrits par l'équation de sine-Gordon. Il existe des solitons non topologiques, dont le passage ne modifie pas l'état du milieu dans lequel ils évoluent. C'est par exemple le cas des solitons hydrodynamiques, décrits par l'équation KdV, que nous aborderons dans une autre page.

L'écriture de l'équation (2) peut être simplifiée en faisant apparaître la grandeur D, telle que \( D = \dfrac{c_0}{\omega_0} \sqrt{1 - \dfrac{v^2}{c_0^2}} \), et l'on obtient :

\( \displaystyle F(z) = 4 \arctan \left( \exp \left(\pm  \dfrac{z - z_0}{D}  \right) \right) \)       (3)

D mesure l'extension spatiale du soliton. A ce propos, notons que la largueur d'un soliton au repos, lors v = 0, est égale à \( \dfrac{c_0}{\omega_0} \) ou encore, en reprenant les notations originales \( \dfrac{c_0}{\omega_0} = a \sqrt{\dfrac{C}{mgl}} \).

Dans l'équation (3), vous reconnaissez sans doute un terme qui vous est familier : le facteur de Lorentz. Dans la solution de l'équation de sine-Gordon, nous retrouvons l'invariance de Lorentz par rapport à un changement de repère galiléen, et aussi la notion de vitesse limite car la vitesse de propagation v doit être inférieure à c0. L'extension spatiale D, sa "largeur" dépend de la vitesse du soliton. Plus le soliton va vite et plus sa largeur diminue, et tend vers 0 lorsque v tend vers c0. Cet effet se constate expérimentalement sur une chaîne de pendules suffisamment longue (ou sur son analogue électrique), ce qui constitue en quelque sorte une expérience de relativité restreinte !

On montre que l'énergie mécanique totale de la chaîne de pendules, sous l'approximation des milieux continus, est égale à \( \displaystyle E = \dfrac{E_0}{\sqrt{1 - \dfrac{v^2}{c_0^2}}}\), avec \( E_0 = 8 ml^2\omega_0 c_0 \). Là aussi, nous retrouvons le facteur de Lorentz. Et si nous poussons l'analogie, on peut considérer que c'est l'expression de l'énergie d'une "particule" de masse \( m_0 = 8ml^2 \dfrac{\omega_0}{ c_0} \). Cette analogie est d'autant plus justifiée que notre soliton possède une extension spatiale finie, égale à D comme nous l'avons vu ci-dessus.

Ainsi, sous l'approximation des milieux continus, nous pouvons considérer que notre solition se comporte comme une particule relativiste. Or je vous rappelle que nous travaillons sur une équation d'onde ! Une onde "spéciale" qui se comporte comme une particule, cela ne vous rappelle rien ?

Résoudre numériquement l'équation de sine-Gordon

Nous avons noté plus haut la proximité mathématique entre l'équation de sine-Gordon et l'équation de propagation des ondes de d'Alembert. Je vais donc profiter de cette proximité pour utiliser la même méthode de résolution numérique que celle que j'ai utilisé pour l'équation de D'Alembert.

Il faut un peu de calcul de développement limité pour approximer les dérivées partielles \( \dfrac{\partial^2\theta}{\partial x^2} \) et \( \dfrac{d^2 \theta}{dt^2} \), mais rien de bien compliqué. J'applique la méthode donnée dans la page consécrée aux différences finies. Puis je transforme l'équation discrète en équation matricielle, comme je l'ai fait pour D'Alembert.

Le script SineGordonNum.py permet la résolution numérique de sine-Gordon, et produit une animation de la propagation d'un soliton sur le milieu continu. Voyons quelques points importants du script.

La matrice diagonale est construite :

# contruction de la matrice diagonale du système avec les conditions aux limites
A = (1. - Alpha)*diag(ones(Nx)) + \
    (Alpha/2.)*roll(diag(ones(Nx)),1,axis=1) + \
    (Alpha/2.0)*roll(diag(ones(Nx)),-1,axis=1)
# définition des conditions aux limites
A[0,Nx-1]=0.0
A[Nx-1,0]=0.0
A[0,1]=Alpha
A[Nx-1,Nx-2]=Alpha

ou Alpha est le nombre de Courant :

Alpha = (dt/dx)**2

Les conditions de bord sont :

# définition des conditions de bord
U[:,0] = Uzero(X,v)
U[:,1] = dt*dUzero(X,v) + dot(A,U[:,0]) - dt**2*sin(dUzero(X,v))/2.

et finalement la résolution de l'équation est obtenue par :

for t in range (1,Nt):
    U[:,t+1] = -U[:,t-1] + dot(2*A,U[:,t]) - dt**2*sin(U[:,t])

L'affichage du résultat animé est tout à fait classique. Je vous invite à lancer la simulation pour observer l'animation.

L'évolution d'un soliton

Le script SineGordonEvol.py permet de tracer l'évolution d'un soliton :

La figure représente la propagation de la rotation de 2\(\pi\) le long de la chaîne en fonction du temps. L'axe des amplitudes est normalisé.

Dans ce script, j'utilise la solution exact du soliton. J'aurais pu de la même manière utiliser la solution numérique de l'équation.

Les scripts Python

Les scripts Python de cette page sont téléchargeables dans la bibliothèque de codes de TangenteX.

Contenu et design par Dominique Lefebvre - www.tangenteX.com mars 2020    Licence Creative Commons    Contact :