Accueil Modélisation Filtre temporel pour améliorer la stabilité du modèle


Filtre temporel pour améliorer la stabilité du modèle


L’intégration numérique d’un modèle pose de nombreux problèmes de calcul. La discrétisation temporelle est une des principales sources d’oscillations indésirables des champs, qui peut provoquer une instabilité du modèle ou dégrader la qualité de la simulation, notamment lors de longues intégrations. Nous allons en illustrer les effets, et montrer comment on peut éliminer ces effets avec un filtre temporel éprouvé.

Le filtre de Robert-Asselin

Le filtrage utilisé est souvent appelé filtre d’Asselin ou filtre de Robert, du nom des deux personnes qu’il l’ont étudié, mais il est plus correct de l’appeler filtre de Robert-Asselin. Son principe est le suivant.

Lors d’une intégration, on calcule les variables à des instants t régulièrement espacés de dt. En différences centrales, aussi appelé saute-mouton, connaissant les variables à t-1 et t, on procède ainsi :

X(t+1) = X(t-1) + 2*dt*dX(t)

X(t) représente la variable à un instant t, et dX(t) sa dérivée à l’instant t.

Le filtre temporel consiste à remplacer X(t) par une version filtrée X_(t) du champ, obtenue par une relation de récurrence après chaque pas de temps de la manière suivante :

X_(t) = X(t) + epsilon*[X(t-1) - 2X(t) + X(t+1)]

La valeur de epsilon est supposée comprise entre 0 et 1, qui permet de faire varier l’effet du filtre.

Le protocole de test

Pour cet article, nous utiliserons notre modèle barocline maison. Il comporte 8 couches en coordonnées verticale sigma, fonctionne en adiabatique cad sans aucune paramétrisation physique (pas de rayonnement solaire, de condensation etc). Ce modèle s’appelle PIFO (Projet Informatique à Formules Ouvertes). La grille utilisée sera en projection Mercator, sur un domaine limité allant de l’Atlantique nord à l’Europe de l’est, à une résolution horizontale de 1°. La simulation utilise l’initialisation du modèle GFS du 06/12/2018 à 12h, que l’on fera tourner pour 48h.

Nous testerons tout d’abord sans aucun filtre, puis avec un filtre léger (epsilon=0.005) et enfin avec un filtre plus poussé (epsilon=0.428). On enregistrera en divers points l’évolution du géopotentiel de la couche médiane (s~=0.5) qui représente approximativement la couche 500hPa. On observera également l’impact sur divers champs sur des cartes météo

Résultats sur le géopotentiel

Une instabilité est apparue vers 42-43h lors du test sans le filtre, la simulation ne peut donc pas aller au bout pour ce scénario. En revanche, le filtre remplit d’ores et déjà son effet même pour une petite valeur d’epsilon, puisque les deux autres scénarios ont pu aboutir.

Test du filtre d'Asselin sur la surface s=0.5, point N°1 du domaine
Test du filtre d’Asselin sur la surface s=0.5, point N°1 du domaine.
Test du filtre d'Asselin sur la surface s=0.5, point N°2 du domaine
Test du filtre d’Asselin sur la surface s=0.5, point N°2 du domaine

Les deux courbes ci-dessus représentent l’évolution du géopotentiel de la couche sigma=0.5, sur une durée de 10h environ. On a superposé les trois scénarios. On constate assez peu de différences entre une version sans filtre (courbe bleue) et un filtre léger (courbe rouge). Sur ces deux versions, on constate des oscillations rapides, ce sont les solutions parasites d’assez grande amplitude, dites solutions de calcul, que l’on souhaite éliminer. Elles sont dûes au découplage des pas de temps pairs et impairs, un peu comme pour les calculs en grille A que nous avions fait pour le barotrope. Le filtre d’Asselin est donc le pendant temporel du filtre de Schumann qui agit lui sur le plan spatial.

La courbe jaune tiretée, correspondant au filtre le plus fort, ne comporte pas de telles oscillations. On voit bien que l’évolution est beaucoup plus régulière, sans toutefois s’écarter de la courbe réelle. L’amplitude peut parfois être un peu réduite, et la phase se décaler légèrement, sans impacter de manière notable la simulation. Ces effets sont étudiés de façon très rigoureuses dans les sources en fin d’article.

Ces petites oscillations de haute fréquence peuvent dynamiter la simulation. En effet, elles provoquent localement de petites augmentations de divergence ou de tourbillon, qui à leur tour vont créer des valeurs de vent localement très importantes. La conservation du tourbillon fait qu’en moyenne les champs sont peu déformés, mais cela génère du bruit localement. A la longue, l’ajustement à ces valeurs localement bruitées va provoquer des oscillations qui s’auto-amplifient jusqu’à créer des infinis. On comprend pourquoi on souhaite les éliminer.

Impact sur la simulation

Regardons maintenant l’impact sur la simulation. Nous comparons les trois cartes à t=39h (de gauche à droite : pas de filtre, epsilon=0.005, epsilon=0.928). On remarque finalement assez peu de différences sur les champs météo, comme on peut le constater sur les trois cartes : le filtre ne dégrade donc pas l’évolution physique.

Regardons maintenant l’impact à t=48h, pour les deux scénarios qui ont pu aboutir. On cartographie le champ de divergence du vent à 500hPa.

Divergence du vent à 500hPa, t=48h, epsilon=0.005
Divergence du vent à 500hPa, t=48h, epsilon=0.005
Divergence du vent à 500hPa, t=48h, epsilon=0.428
Divergence du vent à 500hPa, t=48h, epsilon=0.428

L’effet n’est pas aussi spectaculaire que souhaité, mais on constate quand même des améliorations, notamment près du bord nord de la carte où l’amplitude et la fréquence de variation a beaucoup diminué. On peut constater cet effet de manière plus subtile dans la zone centrale de la carte, où certains contours de haute fréquence ont également diminué.

Bien qu’il ait été beaucoup réduit à 48h, on voit qu’il subsiste malgré tout un bruitage important dans le modèle. Cela s’explique par la donnée d’initialisation, interpolée linéairement depuis la grille GFS, ce qui peut être source d’aliasing important dans les dérivées. De plus, il faudrait adapter l’analyse au modèle, afin de filtrer certains ajustements de plus haute fréquence. Des améliorations sont donc nécessaires à ces deux niveaux, nous aurons l’occasion d’en reparler.

Conclusion

Le filtre de Robert-Asselin permet bel et bien d’améliorer la stabilité des calculs du modèle en éliminant des solutions parasites. Son implémentation est de plus très simple et peu coûteuse en temps de calcul. Bien qu’étudié dans les années 60-70, son efficacité est telle qu’il est encore utilisé de nos jours dans les modèles opérationnels tels que ECMWF.

Sources

[1] The integration of a low order spectral form of the primitive meteorological equations. Andre J. Robert, 1966.

[2] Frequency filter for time integrations. Richard Asselin, 1972.

[3] Les bases de la prévision numérique du temps. Jean Coiffier, 2009.