Salome HOME
Documentation improvements and post analysis
[modules/adao.git] / doc / fr / ref_algorithm_3DVAR.rst
index 4a858977c520a345daded587094f744bd98189b2..faf5b493b2255d340d762745be747b09048297ec 100644 (file)
@@ -1,5 +1,5 @@
 ..
-   Copyright (C) 2008-2020 EDF R&D
+   Copyright (C) 2008-2021 EDF R&D
 
    This file is part of SALOME ADAO module.
 
@@ -22,6 +22,7 @@
    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
 
 .. index:: single: 3DVAR
+.. index:: single: 3D-Var
 .. _section_ref_algorithm_3DVAR:
 
 Algorithme de calcul "*3DVAR*"
@@ -36,8 +37,27 @@ statique:
 
 .. math:: J(\mathbf{x})=(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+(\mathbf{y}^o-H(\mathbf{x}))^T.\mathbf{R}^{-1}.(\mathbf{y}^o-H(\mathbf{x}))
 
-qui est usuellement désignée comme la fonctionnelle "*3D-VAR*" (voir par exemple
-[Talagrand97]_).
+qui est usuellement désignée comme la fonctionnelle "*3D-Var*" (voir par
+exemple [Talagrand97]_). Les dénominations "*3D-Var*", "*3D-VAR*" et "*3DVAR*"
+sont équivalentes.
+
+Il existe diverses variantes de cet algorithme. On propose ici les formulations
+stables et robustes suivantes :
+
+.. index::
+    pair: Variant ; 3DVAR
+    pair: Variant ; 3DVAR-VAN
+    pair: Variant ; 3DVAR-Incr
+    pair: Variant ; 3DVAR-PSAS
+
+- "3DVAR" (3D Variational analysis, voir [Lorenc86]_, [LeDimet86]_, [Talagrand97]_), algorithme classique d'origine, très robuste, opérant dans l'espace du modèle,
+- "3DVAR-VAN" (3D Variational Analysis with No inversion of B, voir [Lorenc88]_), algorithme similaire, opérant dans l'espace du modèle, mais permettant d'éviter l'inversion de la matrice de covariance B,
+- "3DVAR-Incr" (Incremental 3DVAR, voir [Courtier94]_), algorithme plus économique que les précédents, mais impliquant une approximation des opérateurs non-linéaires,
+- "3DVAR-PSAS" (Physical-space Statistical Analysis Scheme for 3DVAR, voir [Courtier97]_, [Cohn98]_), algorithme parfois plus économique car opérant dans l'espace des observations, mais impliquant une approximation des opérateurs non-linéaires.
+
+On recommande fortement d'utiliser le "3DVAR" d'origine. Les algorithmes
+"3DVAR" et "3DVAR-Incr" (et pas les autres) permettent la modification du point
+initial de leur minimisation, mais ce n'est pas recommandé.
 
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo02.rst
@@ -61,21 +81,11 @@ qui est usuellement désignée comme la fonctionnelle "*3D-VAR*" (voir par exemp
 
 .. include:: snippets/GradientNormTolerance.rst
 
-.. include:: snippets/MaximumNumberOfSteps.rst
-
-Minimizer
-  .. index:: single: Minimizer
+.. include:: snippets/InitializationPoint.rst
 
-  Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par
-  défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non
-  linéaire sous contraintes, voir [Byrd95]_, [Morales11]_ et [Zhu97]_), "TNC"
-  (minimisation non linéaire sous contraintes), "CG" (minimisation non
-  linéaire sans contraintes), "BFGS" (minimisation non linéaire sans
-  contraintes), "NCG" (minimisation de type gradient conjugué de Newton). Il
-  est fortement conseillé de conserver la valeur par défaut.
+.. include:: snippets/MaximumNumberOfSteps.rst
 
-  Exemple :
-  ``{"Minimizer":"LBFGSB"}``
+.. include:: snippets/Minimizer_xDVAR.rst
 
 .. include:: snippets/NumberOfSamplesForQuantiles.rst
 
@@ -87,15 +97,18 @@ Minimizer
 
 .. include:: snippets/SimulationForQuantiles.rst
 
+.. include:: snippets/StateBoundsForQuantilesWithNone.rst
+
 StoreSupplementaryCalculations
   .. index:: single: StoreSupplementaryCalculations
 
-  Cette liste indique les noms des variables supplémentaires qui peuvent être
-  disponibles à la fin de l'algorithme, si elles sont initialement demandées par
-  l'utilisateur. Cela implique potentiellement des calculs ou du stockage
-  coûteux. La valeur par défaut est une liste vide, aucune de ces variables
-  n'étant calculée et stockée par défaut sauf les variables inconditionnelles.
-  Les noms possibles sont dans la liste suivante : [
+  *Liste de noms*. Cette liste indique les noms des variables supplémentaires
+  qui peuvent être disponibles au cours du déroulement ou à la fin de
+  l'algorithme, si elles sont initialement demandées par l'utilisateur. Cela
+  implique potentiellement des calculs ou du stockage coûteux. La valeur par
+  défaut est une liste vide, aucune de ces variables n'étant calculée et
+  stockée par défaut sauf les variables inconditionnelles. Les noms possibles
+  sont dans la liste suivante : [
   "Analysis",
   "APosterioriCorrelations",
   "APosterioriCovariance",
@@ -108,8 +121,10 @@ StoreSupplementaryCalculations
   "CostFunctionJbAtCurrentOptimum",
   "CostFunctionJo",
   "CostFunctionJoAtCurrentOptimum",
+  "CurrentIterationNumber",
   "CurrentOptimum",
   "CurrentState",
+  "ForecastState",
   "IndexOfOptimum",
   "Innovation",
   "InnovationAtCurrentState",
@@ -119,6 +134,7 @@ StoreSupplementaryCalculations
   "MahalanobisConsistency",
   "OMA",
   "OMB",
+  "SampledStateForQuantiles",
   "SigmaObs2",
   "SimulatedObservationAtBackground",
   "SimulatedObservationAtCurrentOptimum",
@@ -130,6 +146,8 @@ StoreSupplementaryCalculations
   Exemple :
   ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
 
+.. include:: snippets/Variant_3DVAR.rst
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo04.rst
 
@@ -168,10 +186,14 @@ StoreSupplementaryCalculations
 
 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
 
+.. include:: snippets/CurrentIterationNumber.rst
+
 .. include:: snippets/CurrentOptimum.rst
 
 .. include:: snippets/CurrentState.rst
 
+.. include:: snippets/ForecastState.rst
+
 .. include:: snippets/IndexOfOptimum.rst
 
 .. include:: snippets/Innovation.rst
@@ -190,6 +212,8 @@ StoreSupplementaryCalculations
 
 .. include:: snippets/OMB.rst
 
+.. include:: snippets/SampledStateForQuantiles.rst
+
 .. include:: snippets/SigmaObs2.rst
 
 .. include:: snippets/SimulatedObservationAtBackground.rst
@@ -202,6 +226,17 @@ StoreSupplementaryCalculations
 
 .. include:: snippets/SimulationQuantiles.rst
 
+.. ------------------------------------ ..
+.. include:: snippets/Header2Algo09.rst
+
+.. include:: scripts/simple_3DVAR.rst
+
+.. literalinclude:: scripts/simple_3DVAR.py
+
+.. include:: snippets/Header2Algo10.rst
+
+.. literalinclude:: scripts/simple_3DVAR.res
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo06.rst
 
@@ -213,6 +248,11 @@ StoreSupplementaryCalculations
 .. include:: snippets/Header2Algo07.rst
 
 - [Byrd95]_
+- [Cohn98]_
+- [Courtier94]_
+- [LeDimet86]_
+- [Lorenc86]_
+- [Lorenc88]_
 - [Morales11]_
 - [Talagrand97]_
 - [Zhu97]_