Salome HOME
a4adb23bd9c30da43f57d06c74e46823ed9400ad
[modules/adao.git] / doc / fr / ref_algorithm_MeasurementsOptimalPositioningTask.rst
1 ..
2    Copyright (C) 2008-2024 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'hypercubes, explicites ou échantillonnés selon des
84 distributions courantes, ou à l'aide d'un échantillonnage par hypercube latin
85 (LHS) ou par séquence de Sobol. Les calculs sont optimisés selon les ressources
86 informatiques disponibles et les options demandées par l'utilisateur. On pourra
87 se reporter aux :ref:`section_ref_sampling_requirements` pour une illustration
88 de l'échantillonnage. Attention à la taille de l'hypercube (et donc au nombre
89 de calculs) qu'il est possible d'atteindre, elle peut rapidement devenir
90 importante. La mémoire requise est ensuite le produit de la taille d'un état
91 individuel :math:`\mathbf{y}` par la taille de l'hypercube.
92
93   .. _mop_determination:
94   .. image:: images/mop_determination.png
95     :align: center
96     :width: 95%
97   .. centered::
98     **Schéma général d'utilisation de l'algorithme**
99
100 Il est possible d'exclure a priori des positions potentielles pour le
101 positionnement des mesures, en utilisant le variant "*lcEIM*" ou "*lcDEIM*"
102 d'analyse pour une recherche de positionnement contraint.
103
104 .. ------------------------------------ ..
105 .. include:: snippets/Header2Algo12.rst
106
107 .. include:: snippets/FeaturePropDerivativeFree.rst
108
109 .. include:: snippets/FeaturePropParallelAlgorithm.rst
110
111 .. ------------------------------------ ..
112 .. include:: snippets/Header2Algo02.rst
113
114 *Aucune*
115
116 .. ------------------------------------ ..
117 .. include:: snippets/Header2Algo03Task.rst
118
119 .. include:: snippets/EnsembleOfSnapshots.rst
120
121 .. include:: snippets/ExcludeLocations.rst
122
123 .. include:: snippets/ErrorNorm.rst
124
125 .. include:: snippets/ErrorNormTolerance.rst
126
127 .. include:: snippets/MaximumNumberOfLocations.rst
128
129 .. include:: snippets/NameOfLocations.rst
130
131 .. include:: snippets/ReduceMemoryUse.rst
132
133 .. include:: snippets/SampleAsExplicitHyperCube.rst
134
135 .. include:: snippets/SampleAsIndependantRandomVariables.rst
136
137 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
138
139 .. include:: snippets/SampleAsMinMaxSobolSequence.rst
140
141 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
142
143 .. include:: snippets/SampleAsnUplet.rst
144
145 .. include:: snippets/SetDebug.rst
146
147 .. include:: snippets/SetSeed.rst
148
149 StoreSupplementaryCalculations
150   .. index:: single: StoreSupplementaryCalculations
151
152   *Liste de noms*. Cette liste indique les noms des variables supplémentaires,
153   qui peuvent être disponibles au cours du déroulement ou à la fin de
154   l'algorithme, si elles sont initialement demandées par l'utilisateur. Leur
155   disponibilité implique, potentiellement, des calculs ou du stockage coûteux.
156   La valeur par défaut est donc une liste vide, aucune de ces variables n'étant
157   calculée et stockée par défaut (sauf les variables inconditionnelles). Les
158   noms possibles pour les variables supplémentaires sont dans la liste suivante
159   (la description détaillée de chaque variable nommée est donnée dans la suite
160   de cette documentation par algorithme spécifique, dans la sous-partie
161   "*Informations et variables disponibles à la fin de l'algorithme*") : [
162   "EnsembleOfSimulations",
163   "EnsembleOfStates",
164   "ExcludedPoints",
165   "OptimalPoints",
166   "ReducedBasis",
167   "ReducedBasisMus",
168   "Residus",
169   "SingularValues",
170   ].
171
172   Exemple :
173   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
174
175 .. include:: snippets/Variant_MOP.rst
176
177 .. ------------------------------------ ..
178 .. include:: snippets/Header2Algo04.rst
179
180 .. include:: snippets/OptimalPoints.rst
181
182 .. ------------------------------------ ..
183 .. include:: snippets/Header2Algo05.rst
184
185 .. include:: snippets/EnsembleOfSimulations.rst
186
187 .. include:: snippets/EnsembleOfStates.rst
188
189 .. include:: snippets/ExcludedPoints.rst
190
191 .. include:: snippets/OptimalPoints.rst
192
193 .. include:: snippets/ReducedBasis.rst
194
195 .. include:: snippets/ReducedBasisMus.rst
196
197 .. include:: snippets/Residus.rst
198
199 .. include:: snippets/SingularValues.rst
200
201 .. ------------------------------------ ..
202 .. _section_ref_algorithm_MeasurementsOptimalPositioningTask_examples:
203
204 .. include:: snippets/Header2Algo09.rst
205
206 .. --------- ..
207 .. include:: scripts/simple_MeasurementsOptimalPositioningTask1.rst
208
209 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.py
210
211 .. include:: snippets/Header2Algo10.rst
212
213 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.res
214     :language: none
215
216 .. --------- ..
217 .. include:: scripts/simple_MeasurementsOptimalPositioningTask2.rst
218
219 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.py
220
221 .. include:: snippets/Header2Algo10.rst
222
223 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.res
224     :language: none
225
226 .. --------- ..
227 .. include:: scripts/simple_MeasurementsOptimalPositioningTask3.rst
228
229 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask3.py
230
231 .. include:: snippets/Header2Algo10.rst
232
233 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask3.res
234     :language: none
235
236 .. include:: snippets/Header2Algo11.rst
237
238 .. _simple_MeasurementsOptimalPositioningTask31:
239 .. image:: scripts/simple_MeasurementsOptimalPositioningTask31.png
240   :align: center
241   :width: 60%
242
243 .. _simple_MeasurementsOptimalPositioningTask32:
244 .. image:: scripts/simple_MeasurementsOptimalPositioningTask32.png
245   :align: center
246   :width: 60%
247
248 .. _simple_MeasurementsOptimalPositioningTask33:
249 .. image:: scripts/simple_MeasurementsOptimalPositioningTask33.png
250   :align: center
251   :width: 60%
252
253 .. ------------------------------------ ..
254 .. include:: snippets/Header2Algo06.rst
255
256 - :ref:`section_ref_algorithm_FunctionTest`
257 - :ref:`section_ref_algorithm_ParallelFunctionTest`
258 - :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`
259
260 .. ------------------------------------ ..
261 .. include:: snippets/Header2Algo07.rst
262
263 - [Barrault04]_
264 - [Chaturantabut10]_
265 - [Gong18]_
266 - [Quarteroni16]_