# Houle trochoïdale

En dynamique des fluides, la houle trochoïdale est une solution exacte des équations d'Euler. Découverte en 1802 par le baron von Gerstner, elle décrit les ondes de gravité de forme périodique qui se propagent à la surface d'un fluide incompressible de profondeur infinie, en régime permanent. La surface libre de l'écoulement est une cycloïde (ou trochoïde, pour reprendre le terme de Gerstner).
C’est un exemple classique d'écoulement tourbillonnaire, et d'utilisation des coordonnées lagrangiennes. Le tourbillon est l’enveloppe des trajectoires des particules de fluide, qui ici sont des cercles dont le rayon varie avec la profondeur. Cette hypothèse n’est pas conforme aux observations expérimentales qui se manifestent par la dérive de Stokes. D’autre part, la vitesse de phase est, dans ce modèle, indépendante de l’amplitude de la houle, anomalie qui a motivé l'étude théorique d'ondes non-linéaires ensuite (telles l’onde de Stokes et l’onde cnoïdale). Pour ces raisons (et nonobstant le fait que ce modèle simple ne peut être adapté à un écoulement en profondeur finie), la houle trochoïdale ne présente plus aujourd’hui qu'un intérêt théorique et didactique.
Elle est cependant encore utilisée en infographie pour le rendu réaliste de vagues. Le champ est étendu à deux dimensions, en utilisant fréquemment un algorithme de transformée de Fourier rapide pour l’animation (temps réel).

## Hypothèses et description

On recherche un écoulement permanent et périodique dans l’espace, et l’on utilise une description lagrangienne. On suppose$^,$ :
* l'écoulement se fait selon des rouleaux cylindriques d'axe horizontal, ce qui élimine une dimension d'espace (déformations planes) ;
* au repos, les éléments homologues du liquide occupent des droites horizontales à la profondeur $y$ ;
* toutes les particules du liquide orbitent autour de cercles de centre fixe et de rayon $r(y)$ avec une pulsation uniforme ;
* Le rayon $r(y)$ est une fonction décroissante ;
* Le déphasage entre deux particules dont les centres de rotation sont alignés horizontalement, est proportionnel à la distance horizontale entre ces centres.

### Description mathématique

Le mouvement des particules fluides de la surface est alors$^,$$^,$
    ${\begin{aligned}X(a,b,t)&=a+{\frac {\mathrm {e} ^{kb}}{k}}\sin \left(k(a+ct)\right),\\Y(a,b,t)&=b-{\frac {\mathrm {e} ^{kb}}{k}}\cos \left(k(a+ct)\right),\end{aligned}}$
où $x=X(a,b,t)$ et $y=Y(a,b,t)$ sont les positions des particules fluides dans le plan $(x,y)$ à l’instant $t$, où $x$ est la coordonnée horizontale et $y$ la coordonnée verticale (comptée positivement vers le haut, dans la direction opposée à la gravité). Les coordonnées lagrangiennes $(a,b)$ repèrent les particules de fluide, $(x,y)=(a,b)$ désignent les centres des orbites circulaires décrites par les particules de fluide avec une célérité constante $c\,\exp(kb).$ En outre$k=2\pi /\lambda$ est le nombre d'onde (et $\lambda$ la longueur d'onde), tandis que $c$ est la vitesse de phase de l’onde dans la direction $x$. La vitesse de phase satisfait une relation de dispersion :
    $c^{2}={\frac {g}{k}},$
qui ne dépend pas du creux $H$, et cette vitesse de phase $c$ est la même que celle de l'onde d'Airy en eau profonde.

### Creux et crête

La surface libre étant naturellement une isobare, il suffit pour la déterminer de poser $b=b_{s}$, où $b_{s}$ est une constante (non-positive). Les vagues les plus hautes correspondent à $b_{s}=0$ : leur crête est une ligne de rebroussement. Tandis que l’onde de Stokes (irrotationnelle) d'ordre le plus élevé présente un angle de crête de 120°, celui de la houle trochoïdale est nul.
Le creux de la houle trochoïdale est $H=(2/k)\exp(kb_{s})$. C'est une onde spatialement périodique selon $x$, de longueur d'onde $\lambda ;$ et aussi périodique dans le temps, de période $T=\lambda /c={\sqrt {2\pi \lambda /g}}.$
Le tourbillon $\varpi$ de la houle trochoïdale est :
    $\varpi (a,b,t)=-{\frac {2\,k\,c\,\mathrm {e} ^{2kb}}{1-\mathrm {e} ^{2kb}}},$
Il dépend de la profondeur (lagrangienne) $b$ et l'on voit qu’il diminue rapidement.

## Application à l'infographie

Il est aisé d'étendre les équations ci-dessus à un modèle 2D en surface (donc 3D) pour l'animation des mers et lacs en infographie car la solution classique de Gerstner satisfait exactement les équations non-linéaires de l'écoulement d'un fluide parfait sous la surface libre ; cependant, l'extension 2D ne satisfera pas, elle, ces équations exactement (quoiqu'elle le fasse approximativement, pour peu que la description lagrangienne linéarisée utilise un potentiel de vitesse). On peut facilement animer une surface aquatique agitée par le vent très efficacement grâce à la transformation de Fourier rapide (FFT). Le rendu est d'autant plus convaincant que la déformation de la surface libre présente des irrégularités (de par la description lagrangienne de l'écoulement): des crêtes effilées et des creux aplatis.
La description mathématique de la surface libre de la houle trochoïdale se fait ainsi: les coordonnées horizontales étant notées $x$ et $z$, et la coordonnée verticale, $y$, la surface libre moyenne est $y=0$ où $y$ est comptée positivement vers le haut, dans la direction opposée à la gravité d'intensité $g$. La surface libre est décrite par une équation paramétrique de paramètres $\alpha$, $\beta ,$ et du temps $t$ qui sont fonction des coordonnées des points de la surface moyenne : $(x,y,z)=(\alpha ,0,\beta )$ autour desquels les particules de fluide de surface tourbillonnent. L'équation paramétrique de la surface libre est $x=\xi (\alpha ,\beta ,t),$ $y=\zeta (\alpha ,\beta ,t)$ et $z=\eta (\alpha ,\beta ,t)$ avec :
    ${\begin{aligned}\xi &=\alpha -\sum _{m=1}^{M}{\frac {k_{x,m}}{k_{m}}}\,{\frac {a_{m}}{\tanh \left(k_{m}\,h\right)}}\,\sin \left(\theta _{m}\right),\\\eta &=\beta -\sum _{m=1}^{M}{\frac {k_{z,m}}{k_{m}}}\,{\frac {a_{m}}{\tanh \left(k_{m}\,h\right)}}\,\sin \left(\theta _{m}\right),\\\zeta &=\sum _{m=1}^{M}a_{m}\,\cos \left(\theta _{m}\right)\quad {\text{et}}\\\theta _{m}&=k_{x,m}\,\alpha +k_{z,m}\,\beta -\omega _{m}\,t-\phi _{m},\end{aligned}}$
où $\tanh$ est la fonction tangente hyperbolique, $M$ le nombre de composantes d'onde considéré, $a_{m}$ l’amplitude des composantes ${m=1\dots M}$ et $\phi _{m}$ leurs phases. D'autre part ${k_{m}=\scriptstyle {\sqrt {(k_{x,m}^{2}+k_{z,m}^{2})}}}$ est le nombre d'onde et $\omega _{m}$ la pulsation. Ces deux dernières, $k_{m}$ et $\omega _{m},$ ne sont pas indépendants du fait de la relation de dispersion :
    $\omega _{m}^{2}=g\,k_{m}\,\tanh \left(k_{m}\,h\right),$
où $h$ est la profondeur moyenne de l'écoulement. En eau profonde ($h\to \infty$) la tangente hyperbolique tend vers un : ${\tanh(k_{m}\,h)\to 1}$. Les composantes $k_{x,m}$ et $k_{z,m}$ du vecteur d'onde horizontal ${\boldsymbol {k}}_{m}$ déterminent la direction de propagation de la composante $m.$
Le choix des différents paramètres $a_{m},k_{x,m},k_{z,m}$ et $\phi _{m}$ pour ${m=1,\dots ,{M},}$ et de la profondeur moyenne $h$ détermine la forme de la surface libre. Un choix raisonné permettra une actualisation rapide par FFT. Le plus souvent, on sélectionne les nombres d'onde sur un treillis régulier dans l'espace $(k_{x},k_{z})$. De là, les amplitudes $a_{m}$ et les phases $\phi _{m}$ sont arbitraires mais leur spectre de variance-densité définit un certain état de la mer. Enfin, grâce à l'algorithme de FFT, on peut simuler la surface de la mer comme un continuum périodique dans l'espace et dans le temps, en utilisant un algorithme de facétisation ; la périodicité temporelles est simulée par un léger décalage des fréquences $\omega _{m}$ donné par $\omega _{m}=m\,\Delta \omega$ pour ${m=1,\dots ,{M}.}$
Pour le rendu, on a aussi souvent besoin du vecteur normal ${\boldsymbol {n}}$ sur un treillis de points pour l'éclairement des facettes. On l'obtient grâce au produit vectoriel ($\times$) ce qui donne :
    ${\boldsymbol {n}}={\frac {\partial {\boldsymbol {s}}}{\partial \alpha }}\times {\frac {\partial {\boldsymbol {s}}}{\partial \beta }}\quad {\text{avec}}\quad {\boldsymbol {s}}(\alpha ,\beta ,t)={\begin{pmatrix}\xi (\alpha ,\beta ,t)\\\zeta (\alpha ,\beta ,t)\\\eta (\alpha ,\beta ,t)\end{pmatrix}}.$
Le vecteur normal unité est alors ${\boldsymbol {e}}_{n}={\boldsymbol {n}}/\|{\boldsymbol {n}}\|,$ où $\|{\boldsymbol {n}}\|$ est la norme euclidienne de ${\boldsymbol {n}}.$