Salome HOME
Documentation minor correction
[modules/adao.git] / doc / en / ref_algorithm_4DVAR.rst
1 ..
2    Copyright (C) 2008-2018 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. index:: single: 4DVAR
25 .. _section_ref_algorithm_4DVAR:
26
27 Calculation algorithm "*4DVAR*"
28 -------------------------------
29
30 .. warning::
31
32   in its present version, this algorithm is experimental, and so changes can be
33   required in forthcoming versions.
34
35 Description
36 +++++++++++
37
38 This algorithm realizes an estimation of the state of a dynamic system, by a
39 variational minimization method of the classical :math:`J` function in data
40 assimilation:
41
42 .. math:: J(\mathbf{x})=(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+\sum_{t\in T}(\mathbf{y^o}(t)-H(\mathbf{x},t))^T.\mathbf{R}^{-1}.(\mathbf{y^o}(t)-H(\mathbf{x},t))
43
44 which is usually designed as the "*4D-VAR*" function (see for example
45 [Talagrand97]_). It is well suited in cases of non-linear observation and
46 evolution operators, its application domain is similar to the one of Kalman
47 filters, specially the :ref:`section_ref_algorithm_ExtendedKalmanFilter` or the
48 :ref:`section_ref_algorithm_UnscentedKalmanFilter`.
49
50 Optional and required commands
51 ++++++++++++++++++++++++++++++
52
53
54 The general required commands, available in the editing user interface, are the
55 following:
56
57   .. include:: snippets/Background.rst
58
59   .. include:: snippets/BackgroundError.rst
60
61   .. include:: snippets/EvolutionError.rst
62
63   .. include:: snippets/EvolutionModel.rst
64
65   .. include:: snippets/Observation.rst
66
67   .. include:: snippets/ObservationError.rst
68
69   .. include:: snippets/ObservationOperator.rst
70
71 The general optional commands, available in the editing user interface, are
72 indicated in :ref:`section_ref_assimilation_keywords`. Moreover, the parameters
73 of the command "*AlgorithmParameters*" allows to choose the specific options,
74 described hereafter, of the algorithm. See
75 :ref:`section_ref_options_Algorithm_Parameters` for the good use of this
76 command.
77
78 The options of the algorithm are the following:
79
80   Minimizer
81     .. index:: single: Minimizer
82
83     This key allows to choose the optimization minimizer. The default choice is
84     "LBFGSB", and the possible ones are "LBFGSB" (nonlinear constrained
85     minimizer, see [Byrd95]_, [Morales11]_ and [Zhu97]_), "TNC" (nonlinear
86     constrained minimizer), "CG" (nonlinear unconstrained minimizer), "BFGS"
87     (nonlinear unconstrained minimizer), "NCG" (Newton CG minimizer). It is
88     strongly recommended to stay with the default.
89
90     Example :
91     ``{"Minimizer":"LBFGSB"}``
92
93   .. include:: snippets/BoundsWithNone.rst
94
95   .. include:: snippets/ConstrainedBy.rst
96
97   .. include:: snippets/MaximumNumberOfSteps.rst
98
99   .. include:: snippets/CostDecrementTolerance.rst
100
101   .. include:: snippets/EstimationOf.rst
102
103   .. include:: snippets/ProjectedGradientTolerance.rst
104
105   .. include:: snippets/GradientNormTolerance.rst
106
107   StoreSupplementaryCalculations
108     .. index:: single: StoreSupplementaryCalculations
109
110     This list indicates the names of the supplementary variables that can be
111     available at the end of the algorithm. It involves potentially costly
112     calculations or memory consumptions. The default is a void list, none of
113     these variables being calculated and stored by default. The possible names
114     are in the following list: ["BMA", "CostFunctionJ",
115     "CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
116     "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
117     "CurrentOptimum", "CurrentState", "IndexOfOptimum"].
118
119     Example : ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
120
121 Information and variables available at the end of the algorithm
122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
123
124 At the output, after executing the algorithm, there are variables and
125 information originating from the calculation. The description of
126 :ref:`section_ref_output_variables` show the way to obtain them by the method
127 named ``get`` of the variable "*ADD*" of the post-processing. The input
128 variables, available to the user at the output in order to facilitate the
129 writing of post-processing procedures, are described in the
130 :ref:`subsection_r_o_v_Inventaire`.
131
132 The unconditional outputs of the algorithm are the following:
133
134   .. include:: snippets/Analysis.rst
135
136   .. include:: snippets/CostFunctionJ.rst
137
138   .. include:: snippets/CostFunctionJb.rst
139
140   .. include:: snippets/CostFunctionJo.rst
141
142 The conditional outputs of the algorithm are the following:
143
144   .. include:: snippets/BMA.rst
145
146   .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
147
148   .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
149
150   .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
151
152   .. include:: snippets/CurrentOptimum.rst
153
154   .. include:: snippets/CurrentState.rst
155
156   .. include:: snippets/IndexOfOptimum.rst
157
158 See also
159 ++++++++
160
161 References to other sections:
162   - :ref:`section_ref_algorithm_3DVAR`
163   - :ref:`section_ref_algorithm_KalmanFilter`
164   - :ref:`section_ref_algorithm_ExtendedKalmanFilter`
165
166 Bibliographical references:
167   - [Byrd95]_
168   - [Morales11]_
169   - [Talagrand97]_
170   - [Zhu97]_