2 Copyright (C) 2008-2023 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: MeasurementsOptimalPositioningTask
25 .. index:: single: Optimal positioning of measurements
26 .. index:: single: Measurement locations
27 .. index:: single: Measurements (Optimal positioning)
28 .. index:: single: Ensemble of simulations
29 .. index:: single: Ensemble of 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:
36 Task algorithm "*MeasurementsOptimalPositioningTask*"
37 -----------------------------------------------------
39 .. ------------------------------------ ..
40 .. include:: snippets/Header2Algo00.rst
42 .. ------------------------------------ ..
43 .. include:: snippets/Header2Algo01.rst
45 This algorithm provides optimal positioning of measurements of an
46 :math:`\mathbf{y}` physical field, in order to get the best possible
47 interpolation. These optimal measurement positions are determined in an
48 iterative greedy way, from a pre-existing set of state vectors
49 :math:`\mathbf{y}` (usually called "snapshots*" in reduced basis methodology)
50 or obtained by simulating the physical field(s) of interest during the course
51 of the algorithm. Each of these state vectors is usually (but not necessarily)
52 the result :math:`\mathbf{y}` of a simulation using the operator :math:`H` that
53 returns the complete field(s) for a given set of parameters :math:`\mathbf{x}`,
54 or of an explicit observation of the complete field(s) :math:`\mathbf{y}`.
56 To determine the optimum positioning of measurements, an Empirical
57 Interpolation Method (EIM [Barrault04]_) or Discrete Empirical Interpolation
58 Method (DEIM [Chaturantabut10]_) is used, which establishes a reduced model of
59 type Reduced Order Model (ROM), with (variant "*lcEIM*" or "*lcDEIM*") or
60 without (variant "*EIM*" or "*DEIM*") positioning constraints. For performance,
61 we recommend using the variant "*lcEIM*" or "*EIM*" when the dimension of the
62 full fields space is large.
64 There are two ways to use this algorithm:
66 #. In its simplest use, if the set of physical state :math:`\mathbf{y}` vectors
67 is pre-existing, it is only necessary to provide it as an ordered collection
68 by the algorithm option "*EnsembleOfSnapshots*". This is the default
69 situation, for example, if the set of states has been generated by an
70 :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`.
71 #. If the set of physical state :math:`\mathbf{y}` vectors is to be obtained by
72 explicit simulations during the course of the algorithm, then one must
73 provide both the simulation operator of the complete field, here identified
74 with the observation operator :math:`H` of the complete field, and the
75 design of experiment of the space of parametric states :math:`\mathbf{x}`.
77 If the design of experiments is supplied, the sampling of the states
78 :math:`\mathbf{x}` can be given as in the
79 :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`, explicitly or
80 under form of hypercubes, explicit or sampled according to classic
81 distributions, or using Latin hypercube sampling (LHS). The computations are
82 optimized according to the computer resources available and the options
83 requested by the user. Beware of the size of the hypercube (and then to the
84 number of computations) that can be reached, it can grow quickly to be quite
87 .. _mop_determination:
88 .. image:: images/mop_determination.png
92 **General scheme for using the algorithm**
94 It is possible to exclude a priori potential positions for measurement
95 positioning, using the analysis variant "*lcEIM*" or "*lcDEIM*" for a
96 constrained positioning search.
98 .. ------------------------------------ ..
99 .. include:: snippets/Header2Algo02.rst
103 .. ------------------------------------ ..
104 .. include:: snippets/Header2Algo03Task.rst
106 .. include:: snippets/EnsembleOfSnapshots.rst
108 .. include:: snippets/ExcludeLocations.rst
110 .. include:: snippets/ErrorNorm.rst
112 .. include:: snippets/ErrorNormTolerance.rst
114 .. include:: snippets/MaximumNumberOfLocations.rst
116 .. include:: snippets/NameOfLocations.rst
118 .. include:: snippets/SampleAsExplicitHyperCube.rst
120 .. include:: snippets/SampleAsIndependantRandomVariables.rst
122 .. include:: snippets/SampleAsMinMaxLatinHyperCube.rst
124 .. include:: snippets/SampleAsMinMaxStepHyperCube.rst
126 .. include:: snippets/SampleAsnUplet.rst
128 .. include:: snippets/SetDebug.rst
130 .. include:: snippets/SetSeed.rst
132 StoreSupplementaryCalculations
133 .. index:: single: StoreSupplementaryCalculations
135 *List of names*. This list indicates the names of the supplementary
136 variables, that can be available during or at the end of the algorithm, if
137 they are initially required by the user. Their availability involves,
138 potentially, costly calculations or memory consumptions. The default is then
139 a void list, none of these variables being calculated and stored by default
140 (excepted the unconditional variables). The possible names are in the
141 following list (the detailed description of each named variable is given in
142 the following part of this specific algorithmic documentation, in the
143 sub-section "*Information and variables available at the end of the
145 "EnsembleOfSimulations",
155 ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
157 .. include:: snippets/Variant_MOP.rst
159 .. ------------------------------------ ..
160 .. include:: snippets/Header2Algo04.rst
162 .. include:: snippets/OptimalPoints.rst
164 .. ------------------------------------ ..
165 .. include:: snippets/Header2Algo05.rst
167 .. include:: snippets/EnsembleOfSimulations.rst
169 .. include:: snippets/EnsembleOfStates.rst
171 .. include:: snippets/ExcludedPoints.rst
173 .. include:: snippets/OptimalPoints.rst
175 .. include:: snippets/ReducedBasis.rst
177 .. include:: snippets/Residus.rst
179 .. include:: snippets/SingularValues.rst
181 .. ------------------------------------ ..
182 .. _section_ref_algorithm_MeasurementsOptimalPositioningTask_examples:
184 .. include:: snippets/Header2Algo09.rst
187 .. include:: scripts/simple_MeasurementsOptimalPositioningTask1.rst
189 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.py
191 .. include:: snippets/Header2Algo10.rst
193 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask1.res
197 .. include:: scripts/simple_MeasurementsOptimalPositioningTask2.rst
199 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.py
201 .. include:: snippets/Header2Algo10.rst
203 .. literalinclude:: scripts/simple_MeasurementsOptimalPositioningTask2.res
206 .. ------------------------------------ ..
207 .. include:: snippets/Header2Algo06.rst
209 - :ref:`section_ref_algorithm_FunctionTest`
210 - :ref:`section_ref_algorithm_ParallelFunctionTest`
211 - :ref:`section_ref_algorithm_EnsembleOfSimulationGenerationTask`
213 .. ------------------------------------ ..
214 .. include:: snippets/Header2Algo07.rst