Progress in the implementation of the adjoint of

  • Slides: 13
Download presentation
Progress in the implementation of the adjoint of the Ocean model NEMO by using

Progress in the implementation of the adjoint of the Ocean model NEMO by using the YAO software M. Berrada, C. Deltel, M. Crépon, F. Badran, S. Thiria Work supported by the SHOM (Hydrographic and Oceanographic Department of the French Navy) under SINOBAD project University of Paris VI LOCEAN Laboratory 9 th European AD Workshop INRIA Sophia-Antipolis, 26 -27, November 2009

The Ocean model NEMO (Nucleus for European Modeling of the Ocean) is a platform

The Ocean model NEMO (Nucleus for European Modeling of the Ocean) is a platform for numerical modeling of ocean NEMO Ocean Model Ocean Circulation OPA Model of sea ice LIM Marine Biogeochemistry LOBSTER, PISCES

GYRE configuration Idealized configuration of the physical part of NEMO The domain is a

GYRE configuration Idealized configuration of the physical part of NEMO The domain is a limited area in the North of the Atlantic ocean (Gulf stream region) The horizontal dimension 32 x 22 and 31 vertical levels GYRE area localisation

A validation experiment with twin data The ocean trajectory depends on the initial state

A validation experiment with twin data The ocean trajectory depends on the initial state Accurate initial ocean environment (V 0 , ssh 0 , T 0 , S 0) V=(u, v) velocity ssh the sea surface height T Temperature S salinity Variational assimilation (YAO software) x=T 0 : Control vector y=M(x)=ssh at t=T : Observations (twin data) Cost function J(x)=||y-yobs||2

YAO Semi- automatic generator of the adjoint code Based on a modular graph structure

YAO Semi- automatic generator of the adjoint code Based on a modular graph structure The modular graph is a data flow diagram which describes the underlying physical model It consists of a set of modules, where the input of each one is provided by the output of its predecessors

YAO: Modular Graph Modular graph in a point of the grid M 2 d

YAO: Modular Graph Modular graph in a point of the grid M 2 d x 21 M’ 2 d y 21 d x 22 M 1 d x 11 M 3 d x 31 d y 11 d x 32 d x 33 d y 12 Backward Forward model 1. Defined the modular graph structure of the model 2. Coding of the local functions fq 3. Coding of the Jacobian F d y 31 d y 32

YAO: Modular Graph M 1 Modular graph of the space discretization M 2 M

YAO: Modular Graph M 1 Modular graph of the space discretization M 2 M 1 M 2 M 3 M 3 M 1 M 2 Modular graph in a point of the grid M 1 x x M 3 M 1 x M 2 t 1 M 3 M 1 M 2 M 3 M 1 M 3 t 2 M 3 M 1 Time evolution of the modular graph of the space M 1 M 2 M 2 M 3 M 1 M 2 M 1 M 3 t 0 M 1 M 2 M 3 x M 3 M 1 M 2 M 3 t 3

Accomplished work 1. 2. Defined the modular graph structure of the GYRE model under

Accomplished work 1. 2. Defined the modular graph structure of the GYRE model under YAO M 1 Coded the forward model d y 11 d x 11 d y 12 3. Implementation of the Jacobian of each module which is needed for the backpropagation (used for the computation of the cost function gradient )

Accomplished work Comparison: GYRE-YAO vs GYRE-Fortran (accuracy 10 -11) Comparison of the ssh at

Accomplished work Comparison: GYRE-YAO vs GYRE-Fortran (accuracy 10 -11) Comparison of the ssh at t=100 (1 time step =2 h)

Linear tangent test 1 st order test α(k+1)=α(k)/2 : α (1): 2. 500000 e-02

Linear tangent test 1 st order test α(k+1)=α(k)/2 : α (1): 2. 500000 e-02 : α (2): 1. 250000 e-02 : α (3): 6. 250000 e-03 : α (4): 3. 125000 e-03 : α (5): 1. 562500 e-03 : α (6): 7. 812500 e-04 : α (7): 3. 906250 e-04 : α (8): 1. 953125 e-04 : α (9): 9. 765625 e-05 : α (10): 4. 882813 e-05 : α (11): 2. 441406 e-05 : α (12): 1. 220703 e-05 : α (13): 6. 103516 e-06 : α (14): 3. 051758 e-06 : α (15): 1. 525879 e-06 2 nd order test 1 st order test : : : : -1 -> -1 -> -1 -> -1 -> 7. 914089 e+00 1. 015254 e+01 3. 269313 e+00 4. 561872 e+01 8. 877574 e+01 1. 205476 e+01 1. 799721 e+02 6. 400455 e+01 3. 628549 e+03 7. 207983 e+03 9. 999715 e-01 9. 999856 e-01 9. 999939 e-01 9. 999962 e-01 9. 999983 e-01 2 nd order test -K-> -K-> -K-> -K-> 3. 121720 e+02 8. 051761 e+02 5. 011360 e+02 1. 460673 e+04 5. 683726 e+04 1. 542101 e+04 4. 606209 e+05 3. 278745 e+05 3. 715594 e+07 1. 476187 e+08 2. 649493 e+01 2. 674571 e+01 2. 245280 e+01 2. 876924 e+01 2. 558008 e+01

Adjoint test

Adjoint test

Conclusion Flexibility: Modifying the model at any time is straightforward due to modular graph

Conclusion Flexibility: Modifying the model at any time is straightforward due to modular graph structure One can consider a more complex function as a module for the YAO graph and uses Tapenade (or other) to get the local adjoint Encouraging results of the adjoint tests

Thank you!

Thank you!