2 Copyright (C) 2008-2015 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 -------------------------------------------
33 Cet algorithme permet de vérifier que l'opérateur d'observation fonctionne
34 correctement et que son appel se déroule de manière compatible avec son usage
35 dans les algorithmes d'ADAO. De manière pratique, il permet d'appeler une ou
36 plusieurs fois l'opérateur, en activant ou non le mode "debug" lors de
39 Une statistique sur les vecteurs en entrée et en sortie de chaque exécution de
40 l'opérateur est indiquée, et une autre globale est fournie de manière
41 récapitulative à la fin de l'algorithme de vérification. La précision
42 d'affichage est contrôlable pour permettre l'automatisation des tests
45 Commandes requises et optionnelles
46 ++++++++++++++++++++++++++++++++++
48 .. index:: single: AlgorithmParameters
49 .. index:: single: CheckingPoint
50 .. index:: single: ObservationOperator
51 .. index:: single: NumberOfPrintedDigits
52 .. index:: single: NumberOfRepetition
53 .. index:: single: SetDebug
54 .. index:: single: StoreSupplementaryCalculations
56 Les commandes requises générales, disponibles dans l'interface en édition, sont
60 *Commande obligatoire*. Elle définit le vecteur utilisé comme l'état autour
61 duquel réaliser le test requis, noté :math:`\mathbf{x}` et similaire à
62 l'ébauche :math:`\mathbf{x}^b`. Sa valeur est définie comme un objet de type
66 *Commande obligatoire*. Elle indique l'opérateur d'observation, notée
67 précédemment :math:`H`, qui transforme les paramètres d'entrée
68 :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
69 observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
70 type "*Function*". Différentes formes fonctionnelles peuvent être
71 utilisées, comme décrit dans la section
72 :ref:`section_ref_operator_requirements`. Si un contrôle :math:`U` est
73 inclus dans le modèle d'observation, l'opérateur doit être appliqué à une
76 Les commandes optionnelles générales, disponibles dans l'interface en édition,
77 sont indiquées dans la :ref:`section_ref_checking_keywords`. De plus, les
78 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
79 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
80 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
83 Les options de l'algorithme sont les suivantes:
86 Cette clé indique le nombre de décimales de précision pour les affichages de
87 valeurs réelles. La valeur par défaut est 5, avec un minimum de 0.
89 Exemple : ``{"NumberOfPrintedDigits":5}``
92 Cette clé indique le nombre de fois où répéter l'évaluation de la fonction.
93 La valeur par défaut est 1.
95 Exemple : ``{"NumberOfRepetition":3}``
98 Cette clé requiert l'activation, ou pas, du mode de débogage durant
99 l'évaluation de la fonction. La valeur par défaut est "False", les choix
100 sont "True" ou "False".
102 Exemple : ``{"SetDebug":False}``
104 StoreSupplementaryCalculations
105 Cette liste indique les noms des variables supplémentaires qui peuvent être
106 disponibles à la fin de l'algorithme. Cela implique potentiellement des
107 calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
108 aucune de ces variables n'étant calculée et stockée par défaut. Les noms
109 possibles sont dans la liste suivante : ["CurrentState",
110 "SimulatedObservationAtCurrentState"].
112 Exemple : ``{"StoreSupplementaryCalculations":["CurrentState"]}``
114 Informations et variables disponibles à la fin de l'algorithme
115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
117 En sortie, après exécution de l'algorithme, on dispose d'informations et de
118 variables issues du calcul. La description des
119 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
120 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
121 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
122 l'écriture des procédures de post-processing, sont décrites dans
123 l':ref:`subsection_r_o_v_Inventaire`.
125 Les sorties conditionnelles de l'algorithme sont les suivantes:
128 *Liste de vecteurs*. Chaque élément est un vecteur d'état courant utilisé
129 au cours du déroulement de l'algorithme d'optimisation.
131 Exemple : ``Xs = ADD.get("CurrentState")[:]``
133 SimulatedObservationAtCurrentState
134 *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
135 partir de l'état courant, c'est-à-dire dans l'espace des observations.
137 Exemple : ``hxs = ADD.get("SimulatedObservationAtCurrentState")[-1]``
142 Références vers d'autres sections :
143 - :ref:`section_ref_algorithm_LinearityTest`