2 Copyright (C) 2008-2024 EDF R&D
4 This file is part of SALOME ADAO module.
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.
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.
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
20 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
24 .. index:: single: ObservationSimulationComparisonTest
25 .. _section_ref_algorithm_ObservationSimulationComparisonTest:
27 Checking algorithm "*ObservationSimulationComparisonTest*"
28 ----------------------------------------------------------
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
33 This verification algorithm allows to analyze in a simple way the stability of
34 the difference between measures and an operator :math:`F` during its execution.
35 The operator is any operator, so it can be the observation operator
36 :math:`\mathcal{H}` as well as the evolution operator :math:`\mathcal{D}`, as
37 long as it is provided in each case according to the
38 :ref:`section_ref_operator_requirements`. The operator :math:`F` is considered
39 as depending on a vector variable :math:`\mathbf{x}` and returning another
40 vector variable :math:`\mathbf{y}`.
42 The algorithm verifies that the difference is stable, that the operator is
43 working correctly and that its call is compatible with its usage in ADAO
44 algorithms. In practice, it allows to call one or several times the operator,
45 activating or not the "debug" mode during execution. It is very similar in its
46 current behavior to a :ref:`section_ref_algorithm_FunctionTest` but it tests
47 the stability of the measurement-calculation difference.
49 Statistics on :math:`\mathbf{x}` input and :math:`\mathbf{y}` output vectors,
50 and potentially on the classical data assimilation error function :math:`J`,
51 are given for each execution of operator, and an another global statistic is
52 given at the end. The precision of printed outputs can be controlled to
53 facilitate automatic tests of operator. It may also be useful to check the
54 entries themselves beforehand with the intended test
55 :ref:`section_ref_algorithm_InputValuesTest`.
57 .. ------------------------------------ ..
58 .. include:: snippets/Header2Algo12.rst
60 .. include:: snippets/FeaturePropDerivativeFree.rst
62 .. ------------------------------------ ..
63 .. include:: snippets/Header2Algo02.rst
65 .. include:: snippets/CheckingPoint.rst
67 .. include:: snippets/BackgroundError.rst
69 .. include:: snippets/Observation.rst
71 .. include:: snippets/ObservationError.rst
73 .. include:: snippets/ObservationOperator.rst
75 .. ------------------------------------ ..
76 .. include:: snippets/Header2Algo03Chck.rst
78 .. include:: snippets/NumberOfPrintedDigits.rst
80 .. include:: snippets/NumberOfRepetition.rst
82 .. include:: snippets/SetDebug.rst
84 .. include:: snippets/ShowElementarySummary.rst
86 StoreSupplementaryCalculations
87 .. index:: single: StoreSupplementaryCalculations
89 *List of names*. This list indicates the names of the supplementary
90 variables, that can be available during or at the end of the algorithm, if
91 they are initially required by the user. Their availability involves,
92 potentially, costly calculations or memory consumptions. The default is then
93 a void list, none of these variables being calculated and stored by default
94 (excepted the unconditional variables). The possible names are in the
95 following list (the detailed description of each named variable is given in
96 the following part of this specific algorithmic documentation, in the
97 sub-section "*Information and variables available at the end of the
104 "InnovationAtCurrentState",
106 "SimulatedObservationAtCurrentState",
110 ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
112 .. ------------------------------------ ..
113 .. include:: snippets/Header2Algo04.rst
115 .. include:: snippets/NoUnconditionalOutput.rst
117 .. ------------------------------------ ..
118 .. include:: snippets/Header2Algo05.rst
120 .. include:: snippets/CostFunctionJ.rst
122 .. include:: snippets/CostFunctionJb.rst
124 .. include:: snippets/CostFunctionJo.rst
126 .. include:: snippets/CurrentState.rst
128 .. include:: snippets/Innovation.rst
130 .. include:: snippets/InnovationAtCurrentState.rst
132 .. include:: snippets/OMB.rst
134 .. include:: snippets/SimulatedObservationAtCurrentState.rst
136 .. ------------------------------------ ..
137 .. _section_ref_algorithm_ObservationSimulationComparisonTest_examples:
139 .. include:: snippets/Header2Algo09.rst
142 .. include:: scripts/simple_ObservationSimulationComparisonTest1.rst
144 .. literalinclude:: scripts/simple_ObservationSimulationComparisonTest1.py
146 .. include:: snippets/Header2Algo10.rst
148 .. literalinclude:: scripts/simple_ObservationSimulationComparisonTest1.res
151 .. ------------------------------------ ..
152 .. include:: snippets/Header2Algo06.rst
154 - :ref:`section_ref_algorithm_FunctionTest`