Salome HOME
Documentation update with features and review corrections
[modules/adao.git] / doc / en / ref_algorithm_Blue.rst
1 ..
2    Copyright (C) 2008-2024 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: Blue
25 .. _section_ref_algorithm_Blue:
26
27 Calculation algorithm "*Blue*"
28 ------------------------------
29
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
32
33 This algorithm realizes a BLUE (Best Linear Unbiased Estimator) type estimation
34 of the state of a system. It is a linear, unbiased and optimal estimation.
35 Technically, it is here an Aitken estimator. It performs the best linear
36 estimate of the state using the initial background state and the observations.
37 It is theoretically reserved for observation operator cases which are linear,
38 even if it sometimes works in "slightly" non-linear cases. One can verify the
39 linearity of the observation operator with the help of the
40 :ref:`section_ref_algorithm_LinearityTest`. This algorithm is always the
41 fastest of all the assimilation algorithms of ADAO.
42
43 This mono-objective optimization algorithm is naturally written for a single
44 estimate, without any dynamic or iterative notion (there is no need in this
45 case for an incremental evolution operator, nor for an evolution error
46 covariance). In ADAO, it can also be used on a succession of observations,
47 placing the estimate in a recursive framework partly similar to a
48 :ref:`section_ref_algorithm_KalmanFilter`. A standard estimate is made at each
49 observation step on the state predicted by the incremental evolution model,
50 knowing that the state error covariance remains the background covariance
51 initially provided by the user. To be explicit, unlike Kalman-type filters, the
52 state error covariance is not updated.
53
54 In case of non-linearity, even slightly marked, it will be easily preferred a
55 :ref:`section_ref_algorithm_ExtendedBlue` or a
56 :ref:`section_ref_algorithm_3DVAR`.
57
58 .. index:: single: Optimal Interpolation
59 .. index:: single: OI
60
61 Additional remark: an algebraic simplification of the BLUE leads to the
62 so-called optimal interpolation method, named "*Optimal Interpolation*" or
63 "*OI*". It is a very simple and inexpensive method, especially adapted to very
64 (very) large problems, but whose disadvantage is to provide a globally
65 sub-optimal and noisy analysis result, even inconsistent. The way to avoid
66 these disadvantages is to adapt very precisely the elements of the method to
67 each physical model, making the method not robust. For these reasons, this
68 method is not proposed nor recommended.
69
70 .. ------------------------------------ ..
71 .. include:: snippets/Header2Algo12.rst
72
73 .. include:: snippets/FeaturePropLocalOptimization.rst
74
75 .. include:: snippets/FeaturePropDerivativeNeeded.rst
76
77 .. include:: snippets/FeaturePropParallelDerivativesOnly.rst
78
79 .. ------------------------------------ ..
80 .. include:: snippets/Header2Algo02.rst
81
82 .. include:: snippets/Background.rst
83
84 .. include:: snippets/BackgroundError.rst
85
86 .. include:: snippets/Observation.rst
87
88 .. include:: snippets/ObservationError.rst
89
90 .. include:: snippets/ObservationOperator.rst
91
92 .. ------------------------------------ ..
93 .. include:: snippets/Header2Algo03AdOp.rst
94
95 .. include:: snippets/EstimationOf_Parameters.rst
96
97 .. include:: snippets/NumberOfSamplesForQuantiles.rst
98
99 .. include:: snippets/Quantiles.rst
100
101 .. include:: snippets/SetSeed.rst
102
103 .. include:: snippets/SimulationForQuantiles.rst
104
105 .. include:: snippets/StateBoundsForQuantilesWithNone.rst
106
107 StoreSupplementaryCalculations
108   .. index:: single: StoreSupplementaryCalculations
109
110   *List of names*. This list indicates the names of the supplementary
111   variables, that can be available during or at the end of the algorithm, if
112   they are initially required by the user. Their availability involves,
113   potentially, costly calculations or memory consumptions. The default is then
114   a void list, none of these variables being calculated and stored by default
115   (excepted the unconditional variables). The possible names are in the
116   following list (the detailed description of each named variable is given in
117   the following part of this specific algorithmic documentation, in the
118   sub-section "*Information and variables available at the end of the
119   algorithm*"): [
120   "Analysis",
121   "APosterioriCorrelations",
122   "APosterioriCovariance",
123   "APosterioriStandardDeviations",
124   "APosterioriVariances",
125   "BMA",
126   "CostFunctionJ",
127   "CostFunctionJAtCurrentOptimum",
128   "CostFunctionJb",
129   "CostFunctionJbAtCurrentOptimum",
130   "CostFunctionJo",
131   "CostFunctionJoAtCurrentOptimum",
132   "CurrentOptimum",
133   "CurrentState",
134   "CurrentStepNumber",
135   "ForecastState",
136   "Innovation",
137   "InnovationAtCurrentAnalysis",
138   "MahalanobisConsistency",
139   "OMA",
140   "OMB",
141   "SampledStateForQuantiles",
142   "SigmaBck2",
143   "SigmaObs2",
144   "SimulatedObservationAtBackground",
145   "SimulatedObservationAtCurrentOptimum",
146   "SimulatedObservationAtCurrentState",
147   "SimulatedObservationAtOptimum",
148   "SimulationQuantiles",
149   ].
150
151   Example :
152   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
153
154 .. ------------------------------------ ..
155 .. include:: snippets/Header2Algo04.rst
156
157 .. include:: snippets/Analysis.rst
158
159 .. ------------------------------------ ..
160 .. include:: snippets/Header2Algo05.rst
161
162 .. include:: snippets/Analysis.rst
163
164 .. include:: snippets/APosterioriCorrelations.rst
165
166 .. include:: snippets/APosterioriCovariance.rst
167
168 .. include:: snippets/APosterioriStandardDeviations.rst
169
170 .. include:: snippets/APosterioriVariances.rst
171
172 .. include:: snippets/BMA.rst
173
174 .. include:: snippets/CostFunctionJ.rst
175
176 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
177
178 .. include:: snippets/CostFunctionJb.rst
179
180 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
181
182 .. include:: snippets/CostFunctionJo.rst
183
184 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
185
186 .. include:: snippets/CurrentOptimum.rst
187
188 .. include:: snippets/CurrentState.rst
189
190 .. include:: snippets/CurrentStepNumber.rst
191
192 .. include:: snippets/ForecastState.rst
193
194 .. include:: snippets/Innovation.rst
195
196 .. include:: snippets/InnovationAtCurrentAnalysis.rst
197
198 .. include:: snippets/MahalanobisConsistency.rst
199
200 .. include:: snippets/OMA.rst
201
202 .. include:: snippets/OMB.rst
203
204 .. include:: snippets/SampledStateForQuantiles.rst
205
206 .. include:: snippets/SigmaBck2.rst
207
208 .. include:: snippets/SigmaObs2.rst
209
210 .. include:: snippets/SimulatedObservationAtBackground.rst
211
212 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
213
214 .. include:: snippets/SimulatedObservationAtCurrentState.rst
215
216 .. include:: snippets/SimulatedObservationAtOptimum.rst
217
218 .. include:: snippets/SimulationQuantiles.rst
219
220 .. ------------------------------------ ..
221 .. _section_ref_algorithm_Blue_examples:
222
223 .. include:: snippets/Header2Algo09.rst
224
225 .. include:: scripts/simple_Blue.rst
226
227 .. literalinclude:: scripts/simple_Blue.py
228
229 .. include:: snippets/Header2Algo10.rst
230
231 .. literalinclude:: scripts/simple_Blue.res
232
233 .. ------------------------------------ ..
234 .. include:: snippets/Header2Algo06.rst
235
236 - :ref:`section_ref_algorithm_ExtendedBlue`
237 - :ref:`section_ref_algorithm_3DVAR`
238 - :ref:`section_ref_algorithm_LinearityTest`
239
240 .. ------------------------------------ ..
241 .. include:: snippets/Header2Algo07.rst
242
243 - [Bouttier99]_