New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
WorkingGroups/TAM/ReferenceManual/testing/adjoint – NEMO
wiki:WorkingGroups/TAM/ReferenceManual/testing/adjoint

Version 5 (modified by vigilant, 14 years ago) (diff)

--

Last edited Timestamp?

Adjoint test

Principle

The adjoint test checks that the adjoint is the adjoint of the tangent using the adjoint definition. By definition, given a linear operator A going from a space E to a spece F, and scalar products <.,.>_E, and <.,.>_F in these respective spcaces, the adjoint of A is the linear operator A_ad such that for any vectors (x,y) in the suitable spaces,

<Ax,y>_F = <x,A_ad y>_E

In practice, we apply the comparison to perturbations state vectors dx and dy. We have then to compare:

<Adx,dy>_F = <dx,A_ad dy>_E

Requierements

To run the some adjoint test we need the following features:

  • a direct trajectory (computed with NEMO)
  • additionnal namelist (for instance namtst to setup adjoint test parameter (off or on)

Initialization

discuss about:

  • tangent and adjoint variables initalization
  • ramdom noise generation (repeatability)

Unitary Test

We call unitary test' some test involving only one subroutine (or at least a limited set of subroutines). It is performed on a single pertubation state vector dX. There is no time evolution. When needed several configuration are tested (for instance n_cla=0/1, nn_fwb=1/2...)

discuss about:

  • _tan and _adj initialization (means "why we should do _tan(nit000) vs. _adj(nitend)" for instance

Global Test

MPP test

discuss about:

  • handling of domain/domain border for MPP test

Test Pass Criteria

Results

  • Cluster / OSX
  • Sequential / MPP
  • ORCA2 / GYRE
  • other