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