Salome HOME
Documentation update and method improvement
[modules/adao.git] / doc / fr / ref_algorithm_MeasurementsOptimalPositioningTask.rst
1 ..
2    Copyright (C) 2008-2023 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: MeasurementsOptimalPositioningTask
25 .. index:: single: Positionnement optimal de mesures
26 .. index:: single: Positions de mesures
27 .. index:: single: Mesures (Positionnement optimal)
28 .. index:: single: Ensemble de simulations
29 .. index:: single: Ensemble de snapshots
30 .. index:: single: Simulations (Ensemble)
31 .. index:: single: Snapshots (Ensemble)
32 .. index:: single: Reduced Order Model
33 .. index:: single: ROM
34 .. _section_ref_algorithm_MeasurementsOptimalPositioningTask:
35
36 Algorithme de tâche "*MeasurementsOptimalPositioningTask*"
37 ----------------------------------------------------------
38
39 .. ------------------------------------ ..
40 .. include:: snippets/Header2Algo00.rst
41
42 .. ------------------------------------ ..
43 .. include:: snippets/Header2Algo01.rst
44
45 Cet algorithme permet d'établir la position optimale de mesures d'un champ
46 physique :math:`\mathbf{y}`, pour en assurer l'interpolation la meilleure
47 possible. Ces positions optimales de mesure sont déterminées de manière
48 itérative, à partir d'un ensemble de vecteurs d'état :math:`\mathbf{y}`
49 pré-existants (usuellement appelés "*snapshots*" en méthodologie de bases
50 réduites) ou obtenus par une simulation de ce(s) champ(s) physiqu(e) d'intérêt
51 au cours de l'algorithme. Chacun de ces vecteurs d'état est habituellement
52 (mais pas obligatoirement) le résultat :math:`\mathbf{y}` d'une simulation à
53 l'aide de l'opérateur :math:`H` restituant le (ou les) champ(s) complet(s) pour
54 un jeu de paramètres donné :math:`\mathbf{x}`, ou d'une observation explicite
55 du (ou des) champ(s) complet(s) :math:`\mathbf{y}`.
56
57 Pour établir la position optimale de mesures, on utilise une méthode de type
58 Empirical Interpolation Method (EIM [Barrault04]_) ou Discrete Empirical
59 Interpolation Method (DEIM [Chaturantabut10]_), qui établit un modèle réduit de
60 type Reduced Order Model (ROM), avec contraintes (variante "*lcEIM*" ou
61 "*lcDEIM*") ou sans contraintes (variante "*EIM*" ou "*DEIM*") de
62 positionnement. Pour la performance, il est recommandé d'utiliser la variante
63 "*lcEIM*" ou "*EIM*" lorsque la dimension de l'espace des champs complets est
64 grande.
65
66 Il y a deux manières d'utiliser cet algorithme:
67
68 #. Dans son usage le plus simple, si l'ensemble des vecteurs d'état physique
69    :math:`\mathbf{y}` est pré-existant, il suffit de le fournir sous la forme
70    d'une collection ordonnée par l'option "*EnsembleOfSnapshots*" de
71    l'algorithme. C'est par exemple ce que l'on obtient par défaut si l'ensemble
72    des états a été généré par un
73    :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`.
74 #. Si l'ensemble des vecteurs d'état physique :math:`\mathbf{y}` doit être
75    obtenu par des simulations explicites au cours de l'algorithme, alors on
76    doit fournir à la fois l'opérateur de simulation du champ complet, ici
77    identifié à l'opérateur d'observation :math:`H` du champ complet, et le plan
78    d'expérience de l'espace des états :math:`\mathbf{x}` paramétriques.
79
80 Dans le cas où l'on fournit le plan d'expérience, l'échantillonnage des états
81 :math:`\mathbf{x}` peut être fourni comme pour un
82 :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`, explicitement
83 ou sous la forme d'hyper-cubes, explicites ou échantillonnés selon des
84 distributions courantes. Les calculs sont optimisés selon les ressources
85 informatiques disponibles et les options demandées par l'utilisateur. Attention
86 à la taille de l'hyper-cube (et donc au nombre de calculs) qu'il est possible
87 d'atteindre, elle peut rapidement devenir importante.
88
89   .. _mop_determination:
90   .. image:: images/mop_determination.png
91     :align: center
92     :width: 95%
93   .. centered::
94     **Schéma général d'utilisation de l'algorithme**
95
96 Il est possible d'exclure a priori des positions potentielles pour le
97 positionnement des mesures, en utilisant le variant "*lcEIM*" ou "*lcDEIM*"
98 d'analyse pour une recherche de positionnement contraint.
99
100 .. ------------------------------------ ..
101 .. include:: snippets/Header2Algo02.rst
102
103 *Aucune*
104
105 .. ------------------------------------ ..
106 .. include:: snippets/Header2Algo03Task.rst
107
108 .. include:: snippets/EnsembleOfSnapshots.rst
109
110 .. include:: snippets/ExcludeLocations.rst
111
112 .. include:: snippets/ErrorNorm.rst
113
114 .. include:: snippets/ErrorNormTolerance.rst
115
116 .. include:: snippets/MaximumNumberOfLocations.rst
117
118 .. include:: snippets/NameOfLocations.rst
119
120 .. include:: snippets/SampleAsExplicitHyperCube.rst
121
122 .. include:: snippets/SampleAsIndependantRandomVariables.rst
123
124 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
125
126 .. include:: snippets/SampleAsnUplet.rst
127
128 .. include:: snippets/SetDebug.rst
129
130 .. include:: snippets/SetSeed.rst
131
132 StoreSupplementaryCalculations
133   .. index:: single: StoreSupplementaryCalculations
134
135   *Liste de noms*. Cette liste indique les noms des variables supplémentaires,
136   qui peuvent être disponibles au cours du déroulement ou à la fin de
137   l'algorithme, si elles sont initialement demandées par l'utilisateur. Leur
138   disponibilité implique, potentiellement, des calculs ou du stockage coûteux.
139   La valeur par défaut est donc une liste vide, aucune de ces variables n'étant
140   calculée et stockée par défaut (sauf les variables inconditionnelles). Les
141   noms possibles pour les variables supplémentaires sont dans la liste suivante
142   (la description détaillée de chaque variable nommée est donnée dans la suite
143   de cette documentation par algorithme spécifique, dans la sous-partie
144   "*Informations et variables disponibles à la fin de l'algorithme*") : [
145   "EnsembleOfSimulations",
146   "EnsembleOfStates",
147   "ExcludedPoints",
148   "OptimalPoints",
149   "ReducedBasis",
150   "Residus",
151   "SingularValues",
152   ].
153
154   Exemple :
155   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
156
157 .. include:: snippets/Variant_MOP.rst
158
159 .. ------------------------------------ ..
160 .. include:: snippets/Header2Algo04.rst
161
162 .. include:: snippets/OptimalPoints.rst
163
164 .. ------------------------------------ ..
165 .. include:: snippets/Header2Algo05.rst
166
167 .. include:: snippets/EnsembleOfSimulations.rst
168
169 .. include:: snippets/EnsembleOfStates.rst
170
171 .. include:: snippets/ExcludedPoints.rst
172
173 .. include:: snippets/OptimalPoints.rst
174
175 .. include:: snippets/ReducedBasis.rst
176
177 .. include:: snippets/Residus.rst
178
179 .. include:: snippets/SingularValues.rst
180
181 .. ------------------------------------ ..
182 .. _section_ref_algorithm_MeasurementsOptimalPositioningTask_examples:
183
184 .. include:: snippets/Header2Algo09.rst
185
186 .. --------- ..
187 .. include:: scripts/simple_MeasurementsOptimalPositioningTask1.rst
188
189 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.py
190
191 .. include:: snippets/Header2Algo10.rst
192
193 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.res
194     :language: none
195
196 .. --------- ..
197 .. include:: scripts/simple_MeasurementsOptimalPositioningTask2.rst
198
199 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.py
200
201 .. include:: snippets/Header2Algo10.rst
202
203 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.res
204     :language: none
205
206 .. ------------------------------------ ..
207 .. include:: snippets/Header2Algo06.rst
208
209 - :ref:`section_ref_algorithm_FunctionTest`
210 - :ref:`section_ref_algorithm_ParallelFunctionTest`
211 - :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`
212
213 .. ------------------------------------ ..
214 .. include:: snippets/Header2Algo07.rst
215
216 - [Barrault04]_
217 - [Chaturantabut10]_
218 - [Gong18]_
219 - [Quarteroni16]_