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: TangentTest
25 .. _section_ref_algorithm_TangentTest:
27 Algorithme de vérification "*TangentTest*"
28 ------------------------------------------
33 Cet algorithme permet de vérifier la qualité de l'opérateur tangent, en
34 calculant un résidu dont les propriétés théoriques sont connues.
36 On observe le résidu suivant, provenant du rapport d'incréments utilisant
37 l'opérateur linéaire tangent :
39 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) ||}{|| \alpha * TangentF_x * \mathbf{dx} ||}
41 qui doit rester stable en :math:`1+O(\alpha)` jusqu'à ce que l'on atteigne la
44 Lorsque :math:`|R-1|/\alpha` est inférieur ou égal à une valeur stable lorsque
45 :math:`\alpha` varie, le tangent est valide, jusqu'à ce que l'on atteigne la
48 Si :math:`|R-1|/\alpha` est très faible, le code de calcul :math:`F` est
49 vraisemblablement linéaire ou quasi-linéaire (ce que l'on peut vérifier par
50 l':ref:`section_ref_algorithm_LinearityTest`), et le tangent est valide jusqu'à
51 ce que l'on atteigne la précision du calcul.
53 On prend :math:`\mathbf{dx}_0=Normal(0,\mathbf{x})` et
54 :math:`\mathbf{dx}=\alpha*\mathbf{dx}_0`. :math:`F` est le code de calcul.
56 Commandes requises et optionnelles
57 ++++++++++++++++++++++++++++++++++
59 .. index:: single: AlgorithmParameters
60 .. index:: single: CheckingPoint
61 .. index:: single: ObservationOperator
62 .. index:: single: AmplitudeOfInitialDirection
63 .. index:: single: EpsilonMinimumExponent
64 .. index:: single: InitialDirection
65 .. index:: single: SetSeed
67 Les commandes requises générales, disponibles dans l'interface en édition, sont
71 *Commande obligatoire*. Elle définit le vecteur utilisé comme l'état autour
72 duquel réaliser le test requis, noté :math:`\mathbf{x}` et similaire à
73 l'ébauche :math:`\mathbf{x}^b`. Sa valeur est définie comme un objet de type
77 *Commande obligatoire*. Elle indique l'opérateur d'observation, notée
78 précédemment :math:`H`, qui transforme les paramètres d'entrée
79 :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
80 observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
81 type "*Function*". Différentes formes fonctionnelles peuvent être
82 utilisées, comme décrit dans la section
83 :ref:`section_ref_operator_requirements`. Si un contrôle :math:`U` est
84 inclus dans le modèle d'observation, l'opérateur doit être appliqué à une
87 Les commandes optionnelles générales, disponibles dans l'interface en édition,
88 sont indiquées dans la :ref:`section_ref_checking_keywords`. De plus, les
89 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les options
90 particulières, décrites ci-après, de l'algorithme. On se reportera à la
91 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
94 Les options de l'algorithme sont les suivantes:
96 AmplitudeOfInitialDirection
97 Cette clé indique la mise à l'échelle de la perturbation initiale construite
98 comme un vecteur utilisé pour la dérivée directionnelle autour du point
99 nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas
102 Exemple : ``{"AmplitudeOfInitialDirection":0.5}``
104 EpsilonMinimumExponent
105 Cette clé indique la valeur de l'exposant minimal du coefficient en
106 puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur
107 de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et
108 -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la
109 formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8.
111 Exemple : ``{"EpsilonMinimumExponent":-12}``
114 Cette clé indique la direction vectorielle utilisée pour la dérivée
115 directionnelle autour du point nominal de vérification. Cela doit être un
116 vecteur. Si elle n'est pas spécifiée, la direction par défaut est une
117 perturbation par défaut autour de zéro de la même taille vectorielle que le
118 point de vérification.
120 Exemple : ``{"InitialDirection":[0.1,0.1,100.,3}``
123 Cette clé permet de donner un nombre entier pour fixer la graine du
124 générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est
125 par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle
126 utilise ainsi l'initialisation par défaut de l'ordinateur.
128 Exemple : ``{"SetSeed":1000}``
133 Références vers d'autres sections :
134 - :ref:`section_ref_algorithm_FunctionTest`
135 - :ref:`section_ref_algorithm_AdjointTest`
136 - :ref:`section_ref_algorithm_GradientTest`