import numpy
from daCore import BasicObjects
-from daAlgorithms.Atoms import ecweim
+from daAlgorithms.Atoms import ecweim, eosg
# ==============================================================================
class ElementaryAlgorithm(BasicObjects.Algorithm):
name = "ExcludeLocations",
default = [],
typecast = tuple,
- message = "Liste des positions exclues selon la numérotation interne d'un snapshot",
- minval = -1,
+ message = "Liste des indices ou noms de positions exclues selon l'ordre interne d'un snapshot",
+ )
+ self.defineRequiredParameter(
+ name = "NameOfLocations",
+ default = [],
+ typecast = tuple,
+ message = "Liste des noms de positions selon l'ordre interne d'un snapshot",
)
self.defineRequiredParameter(
name = "ErrorNorm",
message = "Valeur limite inférieure du critère d'optimalité forçant l'arrêt",
minval = 0.,
)
+ self.defineRequiredParameter(
+ name = "SampleAsnUplet",
+ default = [],
+ typecast = tuple,
+ message = "Points de calcul définis par une liste de n-uplet",
+ )
+ self.defineRequiredParameter(
+ name = "SampleAsExplicitHyperCube",
+ default = [],
+ typecast = tuple,
+ message = "Points de calcul définis par un hyper-cube dont on donne la liste des échantillonnages de chaque variable comme une liste",
+ )
+ self.defineRequiredParameter(
+ name = "SampleAsMinMaxStepHyperCube",
+ default = [],
+ typecast = tuple,
+ message = "Points de calcul définis par un hyper-cube dont on donne la liste des échantillonnages de chaque variable par un triplet [min,max,step]",
+ )
+ self.defineRequiredParameter(
+ name = "SampleAsIndependantRandomVariables",
+ default = [],
+ typecast = tuple,
+ message = "Points de calcul définis par un hyper-cube dont les points sur chaque axe proviennent de l'échantillonnage indépendant de la variable selon la spécification ['distribution',[parametres],nombre]",
+ )
+ self.defineRequiredParameter(
+ name = "SetDebug",
+ default = False,
+ typecast = bool,
+ message = "Activation du mode debug lors de l'exécution",
+ )
self.defineRequiredParameter(
name = "StoreSupplementaryCalculations",
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
listval = [
- "EnsembleOfSnapshots",
+ "EnsembleOfSimulations",
+ "EnsembleOfStates",
+ "ExcludedPoints",
"OptimalPoints",
"ReducedBasis",
"Residus",
]
)
+ self.defineRequiredParameter(
+ name = "SetSeed",
+ typecast = numpy.random.seed,
+ message = "Graine fixée pour le générateur aléatoire",
+ )
self.requireInputArguments(
mandatory= (),
optional = ("Xb", "HO"),
)
self.setAttributes(tags=(
"Reduction",
+ "Checking",
))
def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None):
#--------------------------
if self._parameters["Variant"] == "PositioningBylcEIM":
if len(self._parameters["EnsembleOfSnapshots"]) > 0:
- if self._toStore("EnsembleOfSnapshots"):
- self.StoredVariables["EnsembleOfSnapshots"].store( self._parameters["EnsembleOfSnapshots"] )
- ecweim.EIM_offline(self)
+ if self._toStore("EnsembleOfSimulations"):
+ self.StoredVariables["EnsembleOfSimulations"].store( self._parameters["EnsembleOfSnapshots"] )
+ ecweim.EIM_offline(self, self._parameters["EnsembleOfSnapshots"])
+ elif isinstance(HO, dict):
+ ecweim.EIM_offline(self, eosg.eosg(self, Xb, HO))
else:
- raise ValueError("Snapshots have to be given in order to launch the positionning analysis")
+ raise ValueError("Snapshots or Operator have to be given in order to launch the analysis")
#
elif self._parameters["Variant"] == "PositioningByEIM":
if len(self._parameters["EnsembleOfSnapshots"]) > 0:
- if self._toStore("EnsembleOfSnapshots"):
- self.StoredVariables["EnsembleOfSnapshots"].store( self._parameters["EnsembleOfSnapshots"] )
- ecweim.EIM_offline(self)
+ if self._toStore("EnsembleOfSimulations"):
+ self.StoredVariables["EnsembleOfSimulations"].store( self._parameters["EnsembleOfSnapshots"] )
+ ecweim.EIM_offline(self, self._parameters["EnsembleOfSnapshots"])
+ elif isinstance(HO, dict):
+ ecweim.EIM_offline(self, eosg.eosg(self, Xb, HO))
else:
- raise ValueError("Snapshots have to be given in order to launch the positionning analysis")
+ raise ValueError("Snapshots or Operator have to be given in order to launch the analysis")
#
#--------------------------
else: