13
LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES UNITE MIXTE DE RECHERCHE 7159 CNRS / IRD / UNIVERSITE PIERRE & MARIE CURIE / MNHN INSTITUT PIERRE-SIMON LAPLACE Sylvie THIRIA, Fouad BADRAN, Charles SORROR YAO : Une méthodologie YAO : Une méthodologie logiciel pour logiciel pour l’implémentation de modèles l’implémentation de modèles numériques numériques (schéma direct, adjoint et assimilation variationnelle)

LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

  • Upload
    bayle

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES UNITE MIXTE DE RECHERCHE 7159 CNRS / IRD / UNIVERSITE PIERRE & MARIE CURIE / MNHN INSTITUT PIERRE-SIMON LAPLACE. YAO : Une méthodologie logiciel pour l’implémentation de modèles numériques - PowerPoint PPT Presentation

Citation preview

Page 1: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT :EXPERIMENTATION ET APPROCHES NUMERIQUES

UNITE MIXTE DE RECHERCHE 7159CNRS / IRD / UNIVERSITE PIERRE & MARIE CURIE / MNHN

INSTITUT PIERRE-SIMON LAPLACE

Sylvie THIRIA, Fouad BADRAN, Charles SORROR

YAO : Une méthodologie logiciel pour YAO : Une méthodologie logiciel pour l’implémentation de modèles numériquesl’implémentation de modèles numériques

(schéma direct, adjoint et assimilation variationnelle)

Page 2: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

k j

x1

x2

x3

y1

y2

y1

y2

y1

x1

x2

x3

k F2 j

F3 y1

y2

U

x1

x2

x3

F1(i-2)

F1(i+2)

x1

x2

x3

Pour le calcul du Modèle DirectParamètres Initialisation t-1 t … Coût

k F4 j

k F1 j

UTILISATION DU GRAPHE MODULAIRE

Page 3: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

k j

2

1

1

2

1

1

1

2

x1

x2

x3

1

y1

y2

jfj/x1

j y1

jfj/x2

j

y2

jfj/x3

j

y1

x1

x2

x3

fonction objective

y°1

y°2

y°3

k F2 j

F3 y1

y2

U

x1

x2

x3

F1(i-2)

F1(i+2)

1

x1

x2

x3

Pour le calcul de l’AdjointParamètres Initialisation t-1 t … Coûtà ajuster

U = U –u1

(1 =J/U)

j=k k = jfj/xk k=J/xksuccesseurs j

k F4 j

k F1 j

UTILISATION DU GRAPHE MODULAIRE :Graphe modulaire ADJOINT

Page 4: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

k j

2

1

1

2

1

1

1

2

x1

x2

x3

1

y1

y2

kf1

/xk

k y1

kf2

/xk

k

y2

y1

x1

x2

x3

y°1

y°2

y°3

k F2 j

F3 y1

y2

U

x1

x2

x3

F1(i-2)

F1(i+2)

1

x1

x2

x3

Pour le calcul du Tangent Linéaire Paramètres Initialisation t-1 t … Coûtà ajuster

k=j j = kfj/xk prédécesseur k

k F4 j

k F1 j

UTILISATION DU GRAPHE MODULAIRE :

fonction objective

: petite perturbation

Graphe modulaire TANGENT

Page 5: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

BA

CK

WA

RD

H1

FO

RW

AR

D H

1

F O R W A R D

B A C K W A R D

I N I T

J(Xo) = (Xo - Xb)T B-1 (Xo - Xb) + i (H(Mi(Xo)) - Y°i)T R-1 (H(Mi(Xo)) - Y°i)

temps 0 1 2 … n

SCHEMA d’UN MODELEF

OR

WA

RD

R

BA

CK

WA

RD

H2

FO

RW

AR

D H

2

D

BC

A

D

BC

A

Point d’observation

X XXX

X : Points d’intervention

Page 6: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

B A C K W A R D

F O R W A R D

FO

RW

AR

D H

1

BA

CK

WA

RD

H1

I N I T

FO

RW

AR

D R

B A C K W A R D

F O R W A R D

FO

RW

AR

D H

3

BA

CK

WA

RD

H3

BA

CK

WA

RD

H2 F

OR

WA

RD

H2

J(Xo) = (Xo - Xb)T B-1 (Xo - Xb) + i (H(Mi(Xo)) - Y°i)T R-1 (H(Mi(Xo)) - Y°i)SCHEMA 2 TRAJECTOIRES

UnUn

schémaschéma

multimulti

spatio spatio

temporeltemporel

Page 7: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

ORGANISATION d’UNE APPLICATION YAOORGANISATION d’UNE APPLICATION YAO

sources des modules

code standard de Yao

- fonctions - Interpréteur - …

flot d’instructions (std. ou spécif) Exécutable de l’application

résultats

description du modèle

générateur

sources générés

ORGANISATION d’UNE APPLICATION YAOORGANISATION d’UNE APPLICATION YAO

Intervention de l’utilisateur Partie automatique

Page 8: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

Modèle Modèle 2D2D Shallow Water Shallow Water (Modèle d’écoulement linéaire d’un fluide non visqueux en eau peu profonde)

uvfx

hg

t

u..'.

vufy

hg

t

v..'.

y

v

x

uH

t

h.

2111*

11*

11*

1*

1*

11*

2* .

4

'2 tijtjitjitijtijtijtjiijttij uvvvv

fhh

x

gtuu

21*

11*

11*

111*

11*

1*

2* .

4

'2 tjiijttijtjitjitijijttijijt vuuuu

fhh

y

gtvv

y

vv

x

uuHthh

tjitjitjitji

tjitji1

*11

*11

*1

*

2* 2

 

| 1 | h* 2|4|1|3|5

| 1 | v* (Vdyn)4| 5 |6 |2 |1 |3|7

| 1 | u* 4 | 2| 1|3| 5|6|7

v u

h

u*v*

v*i+1,j+1

v*i+1

v*j+1

h*i+1h*h*j-1

u*i-1,j-1

u*j-1

u*i-1

n

n-1

| 1 | h3 | 2 | 1xt (=n)

x*t+1

x0

x*1x*0

(maille i,j) | 1 | u3 | 2 | 1

ut = u*t + (ut-1 – 2u*

t + u*t+1)

vt = v*t + (vt-1 – 2v*

t + v*t+1)

ht = h*t + (ht-1 – 2h*

t + h*t+1)

| 1 | v3 | 2 | 1

Filtre d’Asselin pour l’élimination des oscillations temporelles propre aux schémas du type leap-frog :

Modèle 2D Shallow WaterModèle 2D Shallow Water

discrétisation spatiale (grille C d’Arakawa) et temporelle (leap frog):

u et v : composantes vitesse horizontaleh  : hauteur de la surface de la mer par rapport à son niveau moyen Hf  : force de Coriolisg’ : gravité réduite : coefficient de dissipation linéairet : temps

Page 9: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

Fichier de description il contient la description des caractéristiques du modèle qui s’effectue à l’aide de ‘directives’ :

defval SZX 100defval SZY 100

hat_name shald

#option O_GRADTEST

traj Toce M 1 400

space Soce M SZX SZY Toce

modul Hfas space Soce input 3 output 1 tempo cout target

modul Ufas space Soce input 3 output 1 tempomodul Vfas space Soce input 3 output 1 tempomodul Hdyn space Soce input 5 output 1 tempomodul Udyn space Soce input 7 output 1 tempomodul Vdyn space Soce input 7 output 1 tempo

Permet de définir des valeurs réutilisables par la suite

Nom du (ou des) sources ‘chapeaux’ à inclure qui contiennent les données et fonctions globales

Les options permettent de limiter la production de code aux éléments nécessaires

Déclaration d’une trajectoire pour laquelle on doit indiquer la borne inf du temps pour lequel une variable est nécessaire au calcul du module courant (ce qui correspond à la phase d’initialisation), et le nombre de pas de temps d’évolution du modèle

La directive modul permet de déclarer un module et d’en indiquer les attributs à l’aide de ‘ mots clés ’ : space : rattachement d’un module à son espace.  input et output pour définir les nombres d’entrées et de sorties des modules. tempo sert à mémoriser les états calculés sur tous les pas de temps nécessaires aux calculs des dérivées et au référencement dans le passé. target si les états du modules doivent être controlés. cout lorsque le module participe à la fonction objective.

Donne la dimension et la taille d‘un espace ainsi que sa trajectoire associée

Page 10: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

ctin Udyn 1 from Ufas 1 i j t-1ctin Udyn 2..3 from Hdyn 1 i%+1 j t-1ctin Udyn 4..7 from Vdyn 1 i%+1 j%+1 t-1

ctin Hdyn 1 from Hfas 1 i j t-1ctin Hdyn 2..3 from Udyn 1 i%-1 j t-1ctin Hdyn 4..5 from Vdyn 1 i j%+1 t-1

ctin Hfas 1 from Hfas 1 i j t-1ctin Hfas 2..3 from Hdyn 1 i j t%-1…

order modinspace Soce order YA1 YA2 Vdyn Hdyn Udyn Vfas Hfas Ufas forderforder

order spaceintraj Toce Soceforder

insert_fct [arg] xgauss

Indique à la fois l’ordre de parcourt d’un espace et l’ordre d’exécution des modules. Les axes dénotés par YAi sont fixés dans l’ordre où ils sont mentionnés. YBi permet de les parcourir à l’envers. En chaque maille parcourue, les fonctions des modules seront instanciées dans l’ordre indiqué.

Grâce à cette directive, Yao peut être enrichi par de nouvelles commandes spécifiques à l’application

Pour chaque trajectoire, on doit indiquer l’ordre de calcul des espaces

ctin sert à établir les connections du graphe. Elle permet donc d’alimenter les entrées d’un module pour un point (ijt) courant avec les sorties des modules précédemment calculés sur un point de coordonnée quelconque.Par exemple, la 1ère déclaration signifie que au point ij courant, la 1ère entrée du module Vdyn proviendra du module Vfas de même point mais au temps précédent (t-1).La syntaxe élaborée permet de limiter le nombre de déclaration en définissant des intervalles (c’est le rôle du ‘%’ ou du ‘#’) dont il sera fait le produit cartésien.Il existe aussi la directive ctinm qui permet de faire un produit ‘médiant’

Fichier de description (suite)

Page 11: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

: Ce sont les unités de programmation des fonctions du modèle. 

/********** module classe Udyn.h ************/

//methode forward -----------------------------forward (YREAL xX, YREAL hA, YREAL hB, YREAL ySO, YREAL yNO, YREAL ySE, YREAL yNE ){ YS1 = xX + (2*YDeltaTemps) * ( (-grav / YDeltaYA1) * (hB - hA) + (f_cor / 4) * (ySO + yNO + ySE + yNE)

- (dissip * xX) );}

// methode backward -----------------------backward (YREAL xX, YREAL hA, YREAL hB, YREAL ySO, YREAL yNO, YREAL ySE, YREAL yNE ){ YJ1I1 = 1 - (2*YDeltaTemps) * dissip; YJ1I2 = grav * ((2*YDeltaTemps) / YDeltaYA1); YJ1I3 = - grav * ((2*YDeltaTemps) / YDeltaYA1); YJ1I4 = ((2*YDeltaTemps) / 4) * f_cor; YJ1I5 = ((2*YDeltaTemps) / 4) * f_cor; YJ1I6 = ((2*YDeltaTemps) / 4) * f_cor; YJ1I7 = ((2*YDeltaTemps) / 4) * f_cor;}

C’est cette fonction qui sera appelée en passe avant lors du parcourt du graphe (schéma direct)

Par contre, pour le problème inverse, Yao utilisera la fonction backward qui code le linéaire tangent (dérivée).Les entrées sont également passées en paramètre.

Ces macros servent à coder le jacobien:YJiIn correspond à la dérivée de la ième sortie par rapport nième entrée.

Yao prévoit un ensemble de macros pour faciliter la programmation.Ici, YS1 référence la 1ère sortie du module

Les entrées du module sont passées en paramètre selon l’ordre indiqué par la directive ctin.

Les Modules

Page 12: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

Fichier d’instructions

Le Fichier d’instructions

Initialisation du modèle

Lancement des tests de validité

Effectuer le chargement des observations (ou préparer une expérience jumelle)

Introduire des termes d’ébauche

Préparer et Déclancher une expérience d’assimilation

Sauvegarder les résultats

n.b.: i) Une application peut aussi être exécutée en mode interactif …....ii) L’utilisateur peut créer ses propres instructions

Page 13: LABORATOIRE D'OCEANOGRAPHIE ET DU CLIMAT : EXPERIMENTATION ET APPROCHES NUMERIQUES

Cadre de développement : lisibilité compréhension maintenance

Quelques Aspects de l’approche YAO

Génération : Yao fait une partie du travail et en particulier la propagation automatique des gradients locaux de la fonction de coût au travers du graphe de modules.

Logistique : Fonctions génériques pré-programmées : run de simulation et d’assimilation

interfaçage des minimiseurs m1qn3 et m2qn1 (INRIA) fonctions de validation fonction de coût (ébauche, opérateurs d’obs et de cov) …

Gains :

rapidité maniabilité