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: FunctionTest
25 .. _section_ref_algorithm_FunctionTest:
27 Algorithme de vérification "*FunctionTest*"
28 -------------------------------------------
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
33 Cet algorithme de vérification permet d'analyser de manière simple la stabilité
34 d'un opérateur :math:`F` lors de son exécution. L'opérateur est quelconque, et
35 il peut donc être celui d'observation :math:`\mathcal{H}` comme celui
36 d'évolution :math:`\mathcal{D}`, pourvu qu'il soit fourni dans chaque cas selon
37 les :ref:`section_ref_operator_requirements`. L'opérateur :math:`F` est
38 considéré comme dépendant d'une variable vectorielle :math:`\mathbf{x}` et
39 restituant une autre variable vectorielle :math:`\mathbf{y}`.
41 L'algorithme vérifie que l'opérateur fonctionne correctement et que son appel
42 se déroule de manière compatible avec son usage dans les algorithmes d'ADAO. De
43 manière pratique, il permet d'appeler une ou plusieurs fois l'opérateur, en
44 activant ou non le mode "debug" lors de l'exécution.
46 Une statistique sur les vecteurs :math:`\mathbf{x}` en entrée et
47 :math:`\mathbf{y}` en sortie est indiquée lors de chaque exécution de
48 l'opérateur, et une autre statistique globale est fournie de manière
49 récapitulative à la fin. La précision d'affichage est contrôlable pour
50 permettre l'automatisation des tests d'opérateur. Il peut être aussi utile de
51 vérifier préalablement les entrées elles-mêmes avec le test prévu
52 :ref:`section_ref_algorithm_InputValuesTest`.
54 .. ------------------------------------ ..
55 .. include:: snippets/Header2Algo12.rst
57 .. include:: snippets/FeaturePropDerivativeFree.rst
59 .. include:: snippets/FeaturePropParallelFree.rst
61 .. ------------------------------------ ..
62 .. include:: snippets/Header2Algo02.rst
64 .. include:: snippets/CheckingPoint.rst
66 .. include:: snippets/ObservationOperator.rst
68 .. ------------------------------------ ..
69 .. include:: snippets/Header2Algo03Chck.rst
71 .. include:: snippets/NumberOfPrintedDigits.rst
73 .. include:: snippets/NumberOfRepetition.rst
75 .. include:: snippets/SetDebug.rst
77 .. include:: snippets/ShowElementarySummary.rst
79 StoreSupplementaryCalculations
80 .. index:: single: StoreSupplementaryCalculations
82 *Liste de noms*. Cette liste indique les noms des variables supplémentaires,
83 qui peuvent être disponibles au cours du déroulement ou à la fin de
84 l'algorithme, si elles sont initialement demandées par l'utilisateur. Leur
85 disponibilité implique, potentiellement, des calculs ou du stockage coûteux.
86 La valeur par défaut est donc une liste vide, aucune de ces variables n'étant
87 calculée et stockée par défaut (sauf les variables inconditionnelles). Les
88 noms possibles pour les variables supplémentaires sont dans la liste suivante
89 (la description détaillée de chaque variable nommée est donnée dans la suite
90 de cette documentation par algorithme spécifique, dans la sous-partie
91 "*Informations et variables disponibles à la fin de l'algorithme*") : [
93 "SimulatedObservationAtCurrentState",
97 ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
99 .. ------------------------------------ ..
100 .. include:: snippets/Header2Algo04.rst
102 .. include:: snippets/NoUnconditionalOutput.rst
104 .. ------------------------------------ ..
105 .. include:: snippets/Header2Algo05.rst
107 .. include:: snippets/CurrentState.rst
109 .. include:: snippets/SimulatedObservationAtCurrentState.rst
111 .. ------------------------------------ ..
112 .. _section_ref_algorithm_FunctionTest_examples:
114 .. include:: snippets/Header2Algo09.rst
117 .. include:: scripts/simple_FunctionTest1.rst
119 .. literalinclude:: scripts/simple_FunctionTest1.py
121 .. include:: snippets/Header2Algo10.rst
123 .. literalinclude:: scripts/simple_FunctionTest1.res
127 .. include:: scripts/simple_FunctionTest2.rst
129 .. literalinclude:: scripts/simple_FunctionTest2.py
131 .. include:: snippets/Header2Algo10.rst
133 .. literalinclude:: scripts/simple_FunctionTest2.res
136 .. ------------------------------------ ..
137 .. include:: snippets/Header2Algo06.rst
139 - :ref:`section_ref_algorithm_InputValuesTest`
140 - :ref:`section_ref_algorithm_LinearityTest`
141 - :ref:`section_ref_algorithm_ControledFunctionTest`
142 - :ref:`section_ref_algorithm_ParallelFunctionTest`
143 - :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`
144 - :ref:`section_ref_algorithm_ObservationSimulationComparisonTest`