gemseo-multi-fidelity 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gemseo_multi_fidelity/__init__.py +17 -0
- gemseo_multi_fidelity/core/MFMapperAdapter_input.json +22 -0
- gemseo_multi_fidelity/core/MFMapperAdapter_output.json +22 -0
- gemseo_multi_fidelity/core/MFMapperLinker_input.json +22 -0
- gemseo_multi_fidelity/core/MFMapperLinker_output.json +22 -0
- gemseo_multi_fidelity/core/MFScenarioAdapter_input.json +39 -0
- gemseo_multi_fidelity/core/MFScenarioAdapter_output.json +23 -0
- gemseo_multi_fidelity/core/__init__.py +16 -0
- gemseo_multi_fidelity/core/boxed_domain.py +242 -0
- gemseo_multi_fidelity/core/corr_function.py +411 -0
- gemseo_multi_fidelity/core/criticality.py +124 -0
- gemseo_multi_fidelity/core/ds_mapper.py +307 -0
- gemseo_multi_fidelity/core/errors.py +42 -0
- gemseo_multi_fidelity/core/eval_mapper.py +188 -0
- gemseo_multi_fidelity/core/id_mapper_adapter.py +61 -0
- gemseo_multi_fidelity/core/mapper_adapter.py +126 -0
- gemseo_multi_fidelity/core/mapper_linker.py +72 -0
- gemseo_multi_fidelity/core/mf_formulation.py +635 -0
- gemseo_multi_fidelity/core/mf_logger.py +216 -0
- gemseo_multi_fidelity/core/mf_opt_problem.py +480 -0
- gemseo_multi_fidelity/core/mf_scenario.py +205 -0
- gemseo_multi_fidelity/core/noise_criterion.py +94 -0
- gemseo_multi_fidelity/core/projpolytope.out +0 -0
- gemseo_multi_fidelity/core/scenario_adapter.py +568 -0
- gemseo_multi_fidelity/core/stop_criteria.py +201 -0
- gemseo_multi_fidelity/core/strict_chain.py +75 -0
- gemseo_multi_fidelity/core/utils_model_quality.py +74 -0
- gemseo_multi_fidelity/corrections/__init__.py +16 -0
- gemseo_multi_fidelity/corrections/add_corr_function.py +80 -0
- gemseo_multi_fidelity/corrections/correction_factory.py +65 -0
- gemseo_multi_fidelity/corrections/mul_corr_function.py +86 -0
- gemseo_multi_fidelity/drivers/__init__.py +16 -0
- gemseo_multi_fidelity/drivers/mf_algo_factory.py +38 -0
- gemseo_multi_fidelity/drivers/mf_driver_lib.py +462 -0
- gemseo_multi_fidelity/drivers/refinement.py +234 -0
- gemseo_multi_fidelity/drivers/settings/__init__.py +16 -0
- gemseo_multi_fidelity/drivers/settings/base_mf_driver_settings.py +59 -0
- gemseo_multi_fidelity/drivers/settings/mf_refine_settings.py +50 -0
- gemseo_multi_fidelity/formulations/__init__.py +16 -0
- gemseo_multi_fidelity/formulations/refinement.py +144 -0
- gemseo_multi_fidelity/mapping/__init__.py +16 -0
- gemseo_multi_fidelity/mapping/identity_mapper.py +74 -0
- gemseo_multi_fidelity/mapping/interp_mapper.py +422 -0
- gemseo_multi_fidelity/mapping/mapper_factory.py +70 -0
- gemseo_multi_fidelity/mapping/mapping_errors.py +46 -0
- gemseo_multi_fidelity/mapping/subset_mapper.py +122 -0
- gemseo_multi_fidelity/mf_rosenbrock/__init__.py +16 -0
- gemseo_multi_fidelity/mf_rosenbrock/delayed_disc.py +136 -0
- gemseo_multi_fidelity/mf_rosenbrock/refact_rosen_testcase.py +46 -0
- gemseo_multi_fidelity/mf_rosenbrock/rosen_mf_case.py +284 -0
- gemseo_multi_fidelity/mf_rosenbrock/rosen_mf_funcs.py +350 -0
- gemseo_multi_fidelity/models/__init__.py +16 -0
- gemseo_multi_fidelity/models/fake_updater.py +112 -0
- gemseo_multi_fidelity/models/model_updater.py +91 -0
- gemseo_multi_fidelity/models/rbf/__init__.py +16 -0
- gemseo_multi_fidelity/models/rbf/kernel_factory.py +66 -0
- gemseo_multi_fidelity/models/rbf/kernels/__init__.py +16 -0
- gemseo_multi_fidelity/models/rbf/kernels/gaussian.py +93 -0
- gemseo_multi_fidelity/models/rbf/kernels/matern_3_2.py +101 -0
- gemseo_multi_fidelity/models/rbf/kernels/matern_5_2.py +101 -0
- gemseo_multi_fidelity/models/rbf/kernels/rbf_kernel.py +172 -0
- gemseo_multi_fidelity/models/rbf/rbf_model.py +422 -0
- gemseo_multi_fidelity/models/sparse_rbf_updater.py +96 -0
- gemseo_multi_fidelity/models/taylor/__init__.py +16 -0
- gemseo_multi_fidelity/models/taylor/taylor.py +212 -0
- gemseo_multi_fidelity/models/taylor_updater.py +66 -0
- gemseo_multi_fidelity/models/updater_factory.py +62 -0
- gemseo_multi_fidelity/settings/__init__.py +16 -0
- gemseo_multi_fidelity/settings/drivers.py +22 -0
- gemseo_multi_fidelity/settings/formulations.py +16 -0
- gemseo_multi_fidelity-0.0.1.dist-info/METADATA +99 -0
- gemseo_multi_fidelity-0.0.1.dist-info/RECORD +76 -0
- gemseo_multi_fidelity-0.0.1.dist-info/WHEEL +5 -0
- gemseo_multi_fidelity-0.0.1.dist-info/entry_points.txt +2 -0
- gemseo_multi_fidelity-0.0.1.dist-info/licenses/LICENSE.txt +165 -0
- gemseo_multi_fidelity-0.0.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
# Copyright (c) 2018 AIRBUS OPERATIONS
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
# Contributors:
|
|
20
|
+
# INITIAL AUTHORS - API and implementation and/or documentation
|
|
21
|
+
# :author: Romain Olivanti
|
|
22
|
+
# OTHER AUTHORS - MACROSCOPIC CHANGES
|
|
23
|
+
"""Taylor Model."""
|
|
24
|
+
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
from typing import TYPE_CHECKING
|
|
28
|
+
|
|
29
|
+
from numpy import any as np_any
|
|
30
|
+
from numpy import array
|
|
31
|
+
from numpy import asarray
|
|
32
|
+
from numpy import atleast_1d
|
|
33
|
+
from numpy import atleast_2d
|
|
34
|
+
from numpy import einsum
|
|
35
|
+
from numpy import zeros
|
|
36
|
+
|
|
37
|
+
if TYPE_CHECKING:
|
|
38
|
+
from numpy.typing import NDArray
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class TaylorModel:
|
|
42
|
+
"""Taylor model class.
|
|
43
|
+
|
|
44
|
+
Simple truncated Taylor Series model up to degree 2 for multiple inputs-outputs.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
def __init__(self) -> None:
|
|
48
|
+
"""Constructor."""
|
|
49
|
+
self._n_out = None
|
|
50
|
+
self._dim = None
|
|
51
|
+
self._x_ref = None
|
|
52
|
+
self._coef_0 = None
|
|
53
|
+
self._coef_1 = None
|
|
54
|
+
self._coef_2 = None
|
|
55
|
+
|
|
56
|
+
@staticmethod
|
|
57
|
+
def safe_set(ref_id: int, arr: NDArray):
|
|
58
|
+
"""Trigger a copy.
|
|
59
|
+
|
|
60
|
+
Convenience method to trigger a copy if the id or arr is not different from the
|
|
61
|
+
reference id.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
ref_id: The reference id.
|
|
65
|
+
arr: The array to check.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
The array or a copy of the array.
|
|
69
|
+
"""
|
|
70
|
+
return arr.copy() if ref_id == id(arr) else arr
|
|
71
|
+
|
|
72
|
+
@staticmethod
|
|
73
|
+
def _to_3d(arg: NDArray) -> NDArray:
|
|
74
|
+
"""Convenience function as atleast_3d does not behave as required.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
arg: The input array.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
The 3D array.
|
|
81
|
+
"""
|
|
82
|
+
arg = asarray(arg)
|
|
83
|
+
len_arg = len(asarray(arg).shape)
|
|
84
|
+
if len_arg == 0:
|
|
85
|
+
return array([[[arg]]])
|
|
86
|
+
if len_arg == 1:
|
|
87
|
+
return array([[arg]])
|
|
88
|
+
if len_arg == 2:
|
|
89
|
+
return array([arg])
|
|
90
|
+
return arg
|
|
91
|
+
|
|
92
|
+
def _check_input(self, x_vect: NDArray) -> NDArray:
|
|
93
|
+
"""Check the input.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
x_vect: The input array.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
The checked 1D array.
|
|
100
|
+
"""
|
|
101
|
+
x_vect = atleast_1d(x_vect)
|
|
102
|
+
if x_vect.shape[0] != self._dim:
|
|
103
|
+
msg = (
|
|
104
|
+
"dim of x_vect not consistent with x_ref: "
|
|
105
|
+
"{x_vect.shape[0]:d} != {self._dim}"
|
|
106
|
+
)
|
|
107
|
+
raise ValueError(msg)
|
|
108
|
+
return x_vect
|
|
109
|
+
|
|
110
|
+
def update(
|
|
111
|
+
self,
|
|
112
|
+
x_ref: NDArray,
|
|
113
|
+
coef_0: NDArray,
|
|
114
|
+
coef_1: NDArray = None,
|
|
115
|
+
coef_2: NDArray = None,
|
|
116
|
+
) -> None:
|
|
117
|
+
"""Update the model. All inputs are copied.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
x_ref: The reference point.
|
|
121
|
+
coef_0: The degree 0 coefficient.
|
|
122
|
+
coef_1: The degree 1 coefficient.
|
|
123
|
+
coef_2: The degree 2 coefficient.
|
|
124
|
+
"""
|
|
125
|
+
self._x_ref = self.safe_set(id(x_ref), atleast_1d(x_ref).flatten())
|
|
126
|
+
self._coef_0 = self.safe_set(id(coef_0), atleast_1d(coef_0))
|
|
127
|
+
|
|
128
|
+
self._dim = len(self._x_ref)
|
|
129
|
+
self._n_out = len(self._coef_0)
|
|
130
|
+
if coef_1 is not None:
|
|
131
|
+
self._coef_1 = self.safe_set(id(coef_1), atleast_2d(coef_1))
|
|
132
|
+
if self._coef_1.shape != (self._n_out, self._dim):
|
|
133
|
+
msg = "coef_1 not consistent"
|
|
134
|
+
raise ValueError(msg)
|
|
135
|
+
if coef_2 is not None:
|
|
136
|
+
self._coef_2 = self.safe_set(id(coef_2), self._to_3d(coef_2))
|
|
137
|
+
if self._coef_2.shape != (self._n_out, self._dim, self._dim):
|
|
138
|
+
msg = "coef_2 not consistent"
|
|
139
|
+
raise ValueError(msg)
|
|
140
|
+
|
|
141
|
+
def __call__(self, x_vect: NDArray) -> float:
|
|
142
|
+
"""Compute the value of the truncated Taylor Series.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
x_vect: The input array.
|
|
146
|
+
|
|
147
|
+
Returns:
|
|
148
|
+
The value of the truncated Taylor Series.
|
|
149
|
+
"""
|
|
150
|
+
out = self._coef_0.copy()
|
|
151
|
+
diff_x = self._check_input(x_vect) - self._x_ref
|
|
152
|
+
if np_any(diff_x):
|
|
153
|
+
if self._coef_1 is not None:
|
|
154
|
+
out += self._coef_1.dot(diff_x)
|
|
155
|
+
if self._coef_2 is not None:
|
|
156
|
+
out += 0.5 * einsum("ijk,k,j->i", self._coef_2, diff_x, diff_x)
|
|
157
|
+
return out[0] if self._n_out == 1 else out
|
|
158
|
+
|
|
159
|
+
def jac(self, x_vect: NDArray) -> NDArray:
|
|
160
|
+
"""Compute the jacobian of the truncated Taylor Series.
|
|
161
|
+
|
|
162
|
+
Args:
|
|
163
|
+
x_vect: The input array.
|
|
164
|
+
|
|
165
|
+
Returns:
|
|
166
|
+
The jacobian.
|
|
167
|
+
"""
|
|
168
|
+
x_vect = self._check_input(x_vect)
|
|
169
|
+
if self._coef_1 is not None:
|
|
170
|
+
out = self._coef_1.copy()
|
|
171
|
+
else:
|
|
172
|
+
out = zeros((self._dim, len(x_vect)))
|
|
173
|
+
if self._coef_2 is not None:
|
|
174
|
+
diff_x = x_vect - self._x_ref
|
|
175
|
+
if np_any(diff_x):
|
|
176
|
+
out += self._coef_2.dot(diff_x)
|
|
177
|
+
return out[0] if self._n_out == 1 else out
|
|
178
|
+
|
|
179
|
+
def hess(self, x_vect: NDArray) -> NDArray:
|
|
180
|
+
"""Hessian of the truncated Taylor Series.
|
|
181
|
+
|
|
182
|
+
Args:
|
|
183
|
+
x_vect: The input array.
|
|
184
|
+
|
|
185
|
+
Returns:
|
|
186
|
+
The hessian.
|
|
187
|
+
"""
|
|
188
|
+
if self._coef_2 is not None:
|
|
189
|
+
out = self._coef_2.copy()
|
|
190
|
+
else:
|
|
191
|
+
dim_vect = len(self._check_input(x_vect))
|
|
192
|
+
out = zeros((self._dim, dim_vect, dim_vect))
|
|
193
|
+
return out[0] if self._n_out == 1 else out
|
|
194
|
+
|
|
195
|
+
def __str__(self) -> str:
|
|
196
|
+
"""String representation of the model.
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
The string representation.
|
|
200
|
+
"""
|
|
201
|
+
expr = "("
|
|
202
|
+
diff_x = f"(x - {self._x_ref})"
|
|
203
|
+
for i in range(self._n_out):
|
|
204
|
+
if i != 0:
|
|
205
|
+
expr += ", "
|
|
206
|
+
expr += f"{self._coef_0[i]}"
|
|
207
|
+
if self._coef_1 is not None:
|
|
208
|
+
expr += f" + {self._coef_1[i, :]} {diff_x}"
|
|
209
|
+
if self._coef_2 is not None:
|
|
210
|
+
expr += f" + 1/2 {diff_x} {self._coef_2[i, :, :]} {diff_x}"
|
|
211
|
+
expr += ")"
|
|
212
|
+
return expr
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
# Copyright (c) 2018 AIRBUS OPERATIONS
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
# Contributors:
|
|
20
|
+
# INITIAL AUTHORS - API and implementation and/or documentation
|
|
21
|
+
# :author: Romain Olivanti
|
|
22
|
+
# OTHER AUTHORS - MACROSCOPIC CHANGES
|
|
23
|
+
"""Taylor model updater."""
|
|
24
|
+
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
import contextlib
|
|
28
|
+
from typing import TYPE_CHECKING
|
|
29
|
+
|
|
30
|
+
from gemseo.core.mdo_functions.mdo_function import MDOFunction
|
|
31
|
+
|
|
32
|
+
from gemseo_multi_fidelity.models.model_updater import ModelUpdater
|
|
33
|
+
from gemseo_multi_fidelity.models.taylor.taylor import TaylorModel
|
|
34
|
+
|
|
35
|
+
if TYPE_CHECKING:
|
|
36
|
+
from numpy.typing import NDArray
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class TaylorUpdater(ModelUpdater):
|
|
40
|
+
"""Updater relying on a Taylor model."""
|
|
41
|
+
|
|
42
|
+
HANDLES_MULTI_UPDATE = False
|
|
43
|
+
|
|
44
|
+
def __init__(self, **kwargs) -> None:
|
|
45
|
+
"""Constructor.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
kwargs: keywords arguments.
|
|
49
|
+
"""
|
|
50
|
+
self._model = TaylorModel()
|
|
51
|
+
super().__init__()
|
|
52
|
+
|
|
53
|
+
def _set_function(self) -> None:
|
|
54
|
+
self.function = MDOFunction(
|
|
55
|
+
self._model, "Taylor", input_names=["x"], dim=1, jac=self._model.jac
|
|
56
|
+
)
|
|
57
|
+
with contextlib.suppress(AttributeError):
|
|
58
|
+
self.function.hess = self._model.hess
|
|
59
|
+
|
|
60
|
+
def _update(
|
|
61
|
+
self, vects: NDArray, vals: NDArray, grads: NDArray = None, hess: NDArray = None
|
|
62
|
+
) -> None:
|
|
63
|
+
coef_1 = grads[0] if grads is not None else None
|
|
64
|
+
coef_2 = hess[0] if hess is not None else None
|
|
65
|
+
self._model.update(vects[0], vals[0], coef_1=coef_1, coef_2=coef_2)
|
|
66
|
+
self.function.expr = str(self._model)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
# Copyright (c) 2018 AIRBUS OPERATIONS
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
# Contributors:
|
|
20
|
+
# INITIAL AUTHORS - API and implementation and/or documentation
|
|
21
|
+
# :author: Romain Olivanti
|
|
22
|
+
# OTHER AUTHORS - MACROSCOPIC CHANGES
|
|
23
|
+
"""Updater factory."""
|
|
24
|
+
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
from typing import TYPE_CHECKING
|
|
28
|
+
from typing import ClassVar
|
|
29
|
+
|
|
30
|
+
from gemseo_multi_fidelity.models.sparse_rbf_updater import SparseRBFUpdater
|
|
31
|
+
from gemseo_multi_fidelity.models.taylor_updater import TaylorUpdater
|
|
32
|
+
|
|
33
|
+
if TYPE_CHECKING:
|
|
34
|
+
from gemseo_multi_fidelity.models.model_updater import ModelUpdater
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class UpdaterFactory:
|
|
38
|
+
"""Factory to create a model updater from its name."""
|
|
39
|
+
|
|
40
|
+
TAYLOR = "taylor"
|
|
41
|
+
SPARSE_RBF = "sparse_rbf"
|
|
42
|
+
AVAILABLE_MODELS: ClassVar[list] = [TAYLOR, SPARSE_RBF]
|
|
43
|
+
"""The available models."""
|
|
44
|
+
|
|
45
|
+
def create(self, name: str, **kwargs) -> ModelUpdater:
|
|
46
|
+
"""Factory method to create a model updater.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
name: The name of the model updater.
|
|
50
|
+
kwargs: The keyword arguments to set the updater.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
The ``ModelUpdater`` object.
|
|
54
|
+
"""
|
|
55
|
+
if name == self.TAYLOR:
|
|
56
|
+
model = TaylorUpdater
|
|
57
|
+
elif name == self.SPARSE_RBF:
|
|
58
|
+
model = SparseRBFUpdater
|
|
59
|
+
else:
|
|
60
|
+
msg = f"{name} not in {self.AVAILABLE_MODELS}"
|
|
61
|
+
raise ValueError(msg)
|
|
62
|
+
return model(**kwargs)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
"""Settings."""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
"""Drivers settings."""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from gemseo_multi_fidelity.drivers.settings.mf_refine_settings import (
|
|
21
|
+
MFRefine_Settings, # noqa: E501 F401
|
|
22
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
2
|
+
#
|
|
3
|
+
# This program is free software; you can redistribute it and/or
|
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
5
|
+
# License version 3 as published by the Free Software Foundation.
|
|
6
|
+
#
|
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
10
|
+
# Lesser General Public License for more details.
|
|
11
|
+
#
|
|
12
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
13
|
+
# along with this program; if not, write to the Free Software Foundation,
|
|
14
|
+
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
|
|
16
|
+
"""Formulations settings."""
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gemseo-multi-fidelity
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: A plugin for multi-fidelity MDO
|
|
5
|
+
Author-email: GEMSEO Team <contact@gemseo.org>
|
|
6
|
+
License-Expression: LGPL-3.0
|
|
7
|
+
Project-URL: Homepage, https://gemseo.org
|
|
8
|
+
Project-URL: Source, https://gitlab.com/gemseo/dev/gemseo-multi-fidelity
|
|
9
|
+
Project-URL: Issues, https://gitlab.com/gemseo/dev/gemseo-multi-fidelity/-/issues
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Operating System :: MacOS
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Requires-Python: <3.14,>=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE.txt
|
|
23
|
+
Requires-Dist: gemseo[all]<7,>=6.1
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
|
|
26
|
+
<!--
|
|
27
|
+
Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com
|
|
28
|
+
|
|
29
|
+
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0
|
|
30
|
+
International License. To view a copy of this license, visit
|
|
31
|
+
http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative
|
|
32
|
+
Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
# gemseo-multi-fidelity
|
|
36
|
+
|
|
37
|
+
[](https://www.gnu.org/licenses/lgpl-3.0.en.html)
|
|
38
|
+
[](https://pypi.org/project/gemseo-multi-fidelity/)
|
|
39
|
+
[](https://pypi.org/project/gemseo-multi-fidelity/)
|
|
40
|
+
[](https://app.codecov.io/gl/gemseo:dev/gemseo-multi-fidelity)
|
|
41
|
+
|
|
42
|
+
## Overview
|
|
43
|
+
A preliminary version of the GEMSEO® plugin for Multi-fidelity MDO.
|
|
44
|
+
|
|
45
|
+
This plugin originates from works performed at Airbus, in the frame of Romain Olivanti's CIFRE PhD funded by Airbus:
|
|
46
|
+
|
|
47
|
+
- Olivanti, R., [Multi-fidelity aerodynamic shape optimization considering flexible adjoint at multiple operating conditions](https://theses.fr/2021ESAE0046). PhD thesis manuscript. ISAE, Toulouse. 2021.
|
|
48
|
+
- Olivanti, R., Gallard, F., Brézillon, J. and Gourdain, N., [Comparison of generic multi-fidelity approaches for bound-constrained nonlinear optimization applied to adjoint-based CFD applications](https://arc.aiaa.org/doi/10.2514/6.2019-3102). AIAA Aviation 2019 Forum. 2019.
|
|
49
|
+
|
|
50
|
+
It was later improved and ported by IRT Saint Exupéry, in the frame of the MDA/MDO project funded by
|
|
51
|
+
[Investments for the Future Programme](https://www.gouvernement.fr/le-programme-d-investissements-d-avenir) (French acronym: PIA)
|
|
52
|
+
and the European Union's Clean Aviation project [ODE4HERA](https://www.ode4hera.eu/).
|
|
53
|
+
|
|
54
|
+
The goal of Multi-fidelity is to speed up optimization processes using degraded levels of fidelity (_low_ fidelity), in addition to high-fidelity levels that are generally more accurate but as well more costly.
|
|
55
|
+
|
|
56
|
+
The plugin eases the creation of a main _Multi-fidelity scenario_, relying on several GEMSEO MDO scenarios based on different levels of fidelity.
|
|
57
|
+
|
|
58
|
+
This main scenario is executed as a usual GEMSEO scenario, however, during the process the driver is able to switch from a level of fidelity to another, based on criteria defined by the chosen Multi-fidelity formulation.
|
|
59
|
+
|
|
60
|
+
The level of fidelity associated with a scenario is defined from a variety of parameters (related to disciplines, MDO formulations, ...) that can be consulted in the following [list of opportunities](./user_guide/How_To_Create_Multiple_Scenario_Fidelity_Levels.md).
|
|
61
|
+
|
|
62
|
+
The Multi-fidelity scenario can be created and executed with simple commands, specifying pre-defined sub-scenarios and the formulation settings:
|
|
63
|
+
|
|
64
|
+
```py
|
|
65
|
+
mf_scenario = MFMDOScenario(scenarios, formulation_name="Refinement", name="mf_process")
|
|
66
|
+
mf_scenario.execute(algo_settings_model=MFRefine_Settings(n_levels=2))
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
Install the latest version with `pip install gemseo-multi-fidelity`.
|
|
72
|
+
|
|
73
|
+
See [pip](https://pip.pypa.io/en/stable/getting-started/) for more information.
|
|
74
|
+
|
|
75
|
+
## Bugs and questions
|
|
76
|
+
|
|
77
|
+
Please use the [gitlab issue tracker](https://gitlab.com/gemseo/dev/gemseo-multi-fidelity/-/issues)
|
|
78
|
+
to submit bugs or questions.
|
|
79
|
+
|
|
80
|
+
You can also contact the authors using our [Discourse channel](https://gemseo.discourse.group/).
|
|
81
|
+
|
|
82
|
+
## Contributing
|
|
83
|
+
|
|
84
|
+
See the [contributing section of GEMSEO](https://gemseo.readthedocs.io/en/stable/software/developing.html#dev).
|
|
85
|
+
|
|
86
|
+
## Contributors
|
|
87
|
+
|
|
88
|
+
- Romain Olivanti (Airbus)
|
|
89
|
+
- François Gallard (IRT Saint Exupéry)
|
|
90
|
+
- Yann David (IRT Saint Exupéry)
|
|
91
|
+
- Sylvain Béchet (IRT Saint Exupéry)
|
|
92
|
+
- Jean-Christophe Giret (IRT Saint Exupéry)
|
|
93
|
+
- Antoine Dechaume (IRT Saint Exupéry)
|
|
94
|
+
|
|
95
|
+
The funding comes from ANR FR2030 [Investments for the Future Programme](https://www.gouvernement.fr/le-programme-d-investissements-d-avenir),
|
|
96
|
+
in the frame of the MDA/MDO project, and European Union [Clean Aviation](https://www.clean-aviation.eu/) project [ODE4HERA](https://www.ode4hera.eu/), co-funded by the European Union under GA no. 101140510
|
|
97
|
+
|
|
98
|
+
The authors wish to acknowledge the PIA framework (SGPI, ANR) and the industrial members of the project Airbus,
|
|
99
|
+
Airbus Defence and Space, Capgemini, Cenaero, CERFACS, Expleo, Liebherr, for their support, financial funding and own knowledge.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
gemseo_multi_fidelity/__init__.py,sha256=tNlrD432F4H1MzmqoZanf6X51JKHDv31XJQrNc3A7zc,795
|
|
2
|
+
gemseo_multi_fidelity/core/MFMapperAdapter_input.json,sha256=JqTBJvRKEctafAXTJ9hNL3BvgbLa-tPVEOxx8iJCKl4,407
|
|
3
|
+
gemseo_multi_fidelity/core/MFMapperAdapter_output.json,sha256=E24EhXzhDRoW7TBAjCX9-hkuGjhdP_hb0gFddKunOjE,410
|
|
4
|
+
gemseo_multi_fidelity/core/MFMapperLinker_input.json,sha256=E24EhXzhDRoW7TBAjCX9-hkuGjhdP_hb0gFddKunOjE,410
|
|
5
|
+
gemseo_multi_fidelity/core/MFMapperLinker_output.json,sha256=JqTBJvRKEctafAXTJ9hNL3BvgbLa-tPVEOxx8iJCKl4,407
|
|
6
|
+
gemseo_multi_fidelity/core/MFScenarioAdapter_input.json,sha256=TPVPOpKMwveXA96kDRJdNtAKiKDrXDkRjvlEDsO_t8Q,776
|
|
7
|
+
gemseo_multi_fidelity/core/MFScenarioAdapter_output.json,sha256=dM1ikb-F0c3l8PMiRlOtmvopX8SqXs8DOraSiJMExfY,434
|
|
8
|
+
gemseo_multi_fidelity/core/__init__.py,sha256=XUh6j5hMIG3FQduTlauc8yAGZZcocHa58TDLi14SaHY,748
|
|
9
|
+
gemseo_multi_fidelity/core/boxed_domain.py,sha256=GSm9ZkvoJMWP4IItQD6uuGKYqt6vgL4NPFwdjHgWXcc,7371
|
|
10
|
+
gemseo_multi_fidelity/core/corr_function.py,sha256=rNDfmQW84l_Pct-fAOYz8fSj_jVX6bMc1xD5bS8-acQ,14656
|
|
11
|
+
gemseo_multi_fidelity/core/criticality.py,sha256=W-qYR2H_38PcnQhre4FJl7YP1cxMX4hud9n99hiqjyI,3494
|
|
12
|
+
gemseo_multi_fidelity/core/ds_mapper.py,sha256=4b4JXgTn2PJ3Pk_EKlLo9sOjxLtFPxudz_ue72g8cyY,10515
|
|
13
|
+
gemseo_multi_fidelity/core/errors.py,sha256=4C8mc3Rpf-1fT9EYYxKNsCzj_YlE_hl4UebpqxJjIPg,1357
|
|
14
|
+
gemseo_multi_fidelity/core/eval_mapper.py,sha256=FQqqKG6lXuBUif6Sf8AUEG0aMCl09Mj8Tjx2PL8DdW4,6348
|
|
15
|
+
gemseo_multi_fidelity/core/id_mapper_adapter.py,sha256=4GSGruhOyxtUiOxD_dzhZqUzzyWJVKQZtHPxeUgjc9E,2220
|
|
16
|
+
gemseo_multi_fidelity/core/mapper_adapter.py,sha256=AgkLWjmLKYdzqy4-yhZPdFpis2Zmw4tGaGenjPASSgY,4822
|
|
17
|
+
gemseo_multi_fidelity/core/mapper_linker.py,sha256=PC7xadsL0o5OzXQKjIsvw7Ik6a2O_nhsoas5G5mGgLU,2649
|
|
18
|
+
gemseo_multi_fidelity/core/mf_formulation.py,sha256=6R89EjykgN5LAxzvLSgjr4FDy48nz9n7kCBTieEIWOM,24733
|
|
19
|
+
gemseo_multi_fidelity/core/mf_logger.py,sha256=lLbezI9IOY9xnHagYbF4QiN23VmDOMY0UnWOGImiM0k,7083
|
|
20
|
+
gemseo_multi_fidelity/core/mf_opt_problem.py,sha256=b71tU1IVDAtWIvFFce6tqDO7gMeVNthE4e6qavZB2rM,17871
|
|
21
|
+
gemseo_multi_fidelity/core/mf_scenario.py,sha256=IXd_rWTwbZmtg7-jQJ7_SkRHNuYcSGvx5toZS8ch_FA,7677
|
|
22
|
+
gemseo_multi_fidelity/core/noise_criterion.py,sha256=qltxSu8ymINFVR3o5TNvZUUNS_JnpTbPoJyJOemPOJw,2976
|
|
23
|
+
gemseo_multi_fidelity/core/projpolytope.out,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
gemseo_multi_fidelity/core/scenario_adapter.py,sha256=z_-X1j78_gwYDvJ8jbx2KQDSlCJUCmWptTkL8kIOnL4,19481
|
|
25
|
+
gemseo_multi_fidelity/core/stop_criteria.py,sha256=anHRZObkhKipLfH7zXDz-VTLpiVpMkOFM0HN4vyo3Bo,5569
|
|
26
|
+
gemseo_multi_fidelity/core/strict_chain.py,sha256=IoJRIshfbw9Rf4SCiKhy0KZstku5MzrnKiJI4mMXpOk,2918
|
|
27
|
+
gemseo_multi_fidelity/core/utils_model_quality.py,sha256=umGA7DVPz-O3YxvY5QiA5PaGjo8A90ObYpYgJs0E-Gs,2594
|
|
28
|
+
gemseo_multi_fidelity/corrections/__init__.py,sha256=3SUal12zYm5NV1DJdm1zP6FVFx3NIdDPOIvS7zqRoqg,755
|
|
29
|
+
gemseo_multi_fidelity/corrections/add_corr_function.py,sha256=2ve65PUdR5mj-nPj2Z4Gw2LoR0lblChmU80ee1JN2ig,2566
|
|
30
|
+
gemseo_multi_fidelity/corrections/correction_factory.py,sha256=GiM9QeXEbd2sqncyjxPdaT1XwzXclvbYZqjLDdgQXiE,2290
|
|
31
|
+
gemseo_multi_fidelity/corrections/mul_corr_function.py,sha256=Om2MVVeXPTjZnL0M2CeoPRd0MDNs_jGnZILZ0rQaf70,2799
|
|
32
|
+
gemseo_multi_fidelity/drivers/__init__.py,sha256=hhffhvfsvFEGoOAdnJnlo_2nUunqQ5WsegevExqIEAU,751
|
|
33
|
+
gemseo_multi_fidelity/drivers/mf_algo_factory.py,sha256=0JBSGjzvctJv0ctiqzlr9a57ei5mn_cN1dTKReWifNo,1369
|
|
34
|
+
gemseo_multi_fidelity/drivers/mf_driver_lib.py,sha256=OjiAw0oCH8MaJHYbI0IkO9JkBWnHdhWP8EacTHj1nIg,16037
|
|
35
|
+
gemseo_multi_fidelity/drivers/refinement.py,sha256=PHNG_ZRBlQX1DHnhSP3FhnW49vWmXeXfrXwpG9k8P00,8341
|
|
36
|
+
gemseo_multi_fidelity/drivers/settings/__init__.py,sha256=VMLuTRfXVuFYR2ySRp5uHAcfVZoKekn8-8DqVe5WRh4,760
|
|
37
|
+
gemseo_multi_fidelity/drivers/settings/base_mf_driver_settings.py,sha256=fHFcp2qgoX8JJ0pm1xNxFiA9UjSlP6FZe8vdQZsYbrI,2152
|
|
38
|
+
gemseo_multi_fidelity/drivers/settings/mf_refine_settings.py,sha256=9ssQicPLt8D89LXRI2ByDur1aePdj2ZVFiKPJj7TocI,1895
|
|
39
|
+
gemseo_multi_fidelity/formulations/__init__.py,sha256=6fB1XPRUt8bTn6omOq80tmB8y0ldor4RJEKUvm6AyoM,756
|
|
40
|
+
gemseo_multi_fidelity/formulations/refinement.py,sha256=fToBw9eWouLGzy9pgj2tz2efMA2CZ3OdfpxbWg0rAOE,5174
|
|
41
|
+
gemseo_multi_fidelity/mapping/__init__.py,sha256=YtKLui1Ls-QeZw_rYLkrSkbj5w7zH1QP39pd-jTW5xo,751
|
|
42
|
+
gemseo_multi_fidelity/mapping/identity_mapper.py,sha256=a0sUP7BxbgUto5Va5E2gKZaJmrWimQ284wj-KLUpodw,2157
|
|
43
|
+
gemseo_multi_fidelity/mapping/interp_mapper.py,sha256=XFw7Z9eFM4xHkZwUA1lcLqXorK1hT9zQhf2wo4jWtjQ,15368
|
|
44
|
+
gemseo_multi_fidelity/mapping/mapper_factory.py,sha256=7C0d4WvnfgFttsWXmAyH31R_3R9M4P443ZRYlrvOWsU,2360
|
|
45
|
+
gemseo_multi_fidelity/mapping/mapping_errors.py,sha256=DR-hDDHMpVztWLGBy5kKY9A2g74_xZtZGhb7JSmLG5M,1468
|
|
46
|
+
gemseo_multi_fidelity/mapping/subset_mapper.py,sha256=NgTiNhERqU1AbjM-KUGgpxWefyVbOnzz2D5LH8vvf-Q,4143
|
|
47
|
+
gemseo_multi_fidelity/mf_rosenbrock/__init__.py,sha256=xqXUDeYCX0D4irq1GW4RwIh4k5nRShKqghv-1THV9M8,783
|
|
48
|
+
gemseo_multi_fidelity/mf_rosenbrock/delayed_disc.py,sha256=V2HQFGloSc6dbRTG0zFpQQvu3C7If4mfViQbv0G9e-Q,4520
|
|
49
|
+
gemseo_multi_fidelity/mf_rosenbrock/refact_rosen_testcase.py,sha256=NxzrPUxdYV43yK8EklxlWZQxsmpVWs4ShscIws99SL4,1681
|
|
50
|
+
gemseo_multi_fidelity/mf_rosenbrock/rosen_mf_case.py,sha256=Zw2ijEzY3V4RRBawRHdNQyfKsLxPDhq8zb0zC-Y7u6I,9685
|
|
51
|
+
gemseo_multi_fidelity/mf_rosenbrock/rosen_mf_funcs.py,sha256=7ctiHdhxmKGdXG9KMx-fDwLIFGH03FDp62Jaltutae0,10137
|
|
52
|
+
gemseo_multi_fidelity/models/__init__.py,sha256=qwwI4jMw_dBA55OaUSoe8-nJjsEDtf0Gmevy5Eek5O4,750
|
|
53
|
+
gemseo_multi_fidelity/models/fake_updater.py,sha256=kfI5smL1wpv1r4lxa5xY7Ki9gIkQhl8Ts4nATAwQGgs,3508
|
|
54
|
+
gemseo_multi_fidelity/models/model_updater.py,sha256=lpszwD13vp9cJ8Xtz9y5jKf9YFLMXn4aoFgTg8nLoW0,2956
|
|
55
|
+
gemseo_multi_fidelity/models/sparse_rbf_updater.py,sha256=xhaO9C-Imoe7hTHk0ScsOFU1QUAz2zUyfBh79AwP6N0,3155
|
|
56
|
+
gemseo_multi_fidelity/models/taylor_updater.py,sha256=A72T4y878gd03gDcSNGbS4UQoMbUR5zY2ga4ezpekcE,2243
|
|
57
|
+
gemseo_multi_fidelity/models/updater_factory.py,sha256=ZHOSHoP5b69EQyMMAE7_sKPt4j9Dyrdbk6RyqaQ2Z8g,2113
|
|
58
|
+
gemseo_multi_fidelity/models/rbf/__init__.py,sha256=5SVyPalVLngGg6wYT0aIIlivP6kAsHKcWGHh6cFAAA8,753
|
|
59
|
+
gemseo_multi_fidelity/models/rbf/kernel_factory.py,sha256=6VwvDsZAYdCX4hzAcDZveMAeBxcy3Cl8B1epeu0Sdhw,2350
|
|
60
|
+
gemseo_multi_fidelity/models/rbf/rbf_model.py,sha256=M1p65Lp2GHrXskQ3ZvdfzAts4Pv8QyDyxtG5M3QYQ4o,14360
|
|
61
|
+
gemseo_multi_fidelity/models/rbf/kernels/__init__.py,sha256=-eZ13ygWYoqaPehH6fCQmT9sXLmUijW8pDS18qJqetU,761
|
|
62
|
+
gemseo_multi_fidelity/models/rbf/kernels/gaussian.py,sha256=PiYUQzLN-amGWl7bhryvJ7PUD2dR2j_iKULXOMrUd20,2732
|
|
63
|
+
gemseo_multi_fidelity/models/rbf/kernels/matern_3_2.py,sha256=6i_-hSKj8wEoLWw7GdOwd4mMxmB8cdooqDeMfB5bGX4,2972
|
|
64
|
+
gemseo_multi_fidelity/models/rbf/kernels/matern_5_2.py,sha256=Ze2HxzDvNWRkVWQbuBjvotOPMee3ChsOWCavLRiavGE,3049
|
|
65
|
+
gemseo_multi_fidelity/models/rbf/kernels/rbf_kernel.py,sha256=PlZ87Oub1Diywy4p4fzXX04TnLKHeLO8mjKpYaaSGaY,4865
|
|
66
|
+
gemseo_multi_fidelity/models/taylor/__init__.py,sha256=mfcc1DQQ-oPCgKwEJ-vYfzle02U2RmOCeYQZl77WGnA,756
|
|
67
|
+
gemseo_multi_fidelity/models/taylor/taylor.py,sha256=ooABF8NBiB9k51Qc3Dq7EThrd9HlyOz4G0tEc5Wx4SU,6490
|
|
68
|
+
gemseo_multi_fidelity/settings/__init__.py,sha256=sPw16cvTcks8kaGFLLpptvSOZ1IppM3OWInjhHx2k0o,752
|
|
69
|
+
gemseo_multi_fidelity/settings/drivers.py,sha256=ee5TSyXlzyKNFfpsxDSJYmm1NGY6IyPmhBBVIfcTHDo,913
|
|
70
|
+
gemseo_multi_fidelity/settings/formulations.py,sha256=69Ztrrh9893k1NrYMXJLLjSJ-KEopXzglD13aXynO90,765
|
|
71
|
+
gemseo_multi_fidelity-0.0.1.dist-info/licenses/LICENSE.txt,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
|
|
72
|
+
gemseo_multi_fidelity-0.0.1.dist-info/METADATA,sha256=xQUBj1IC4o7JzrVRG5ynqUUNJ3jUbmli-5RncY8THAs,5482
|
|
73
|
+
gemseo_multi_fidelity-0.0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
74
|
+
gemseo_multi_fidelity-0.0.1.dist-info/entry_points.txt,sha256=Zlt8OWNRJxPl9GE3kSB9NQuA_o2WDT8jhOnVKyzX_hw,63
|
|
75
|
+
gemseo_multi_fidelity-0.0.1.dist-info/top_level.txt,sha256=3lf1tfqayaamjBIdrmON5_EUyISasTMnhgZkSUBLKg0,22
|
|
76
|
+
gemseo_multi_fidelity-0.0.1.dist-info/RECORD,,
|