From: Liana RAMIANDRISOA Date: Wed, 4 May 2022 14:28:29 +0000 (+0200) Subject: Découpage manuel en "séquence de calculs" à discuter X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=8555e2eb4f4f64336bf84e9ad1175a2e2b3e8fa2;p=tools%2Feficas.git Découpage manuel en "séquence de calculs" à discuter --- diff --git a/ReacteurNumerique_UQ/CasJouet_cath_OT.py b/ReacteurNumerique_UQ/CasJouet_cath_OT.py index 398928c2..d92bc01e 100644 --- a/ReacteurNumerique_UQ/CasJouet_cath_OT.py +++ b/ReacteurNumerique_UQ/CasJouet_cath_OT.py @@ -1,6 +1,7 @@ #module load openturns/1.14.0 (à charger avant) import sys, os import openturns as ot +import numpy as np #import matplotlib.pyplot as plt sys.path.insert(0, 'cathWrap2') @@ -39,6 +40,7 @@ if __name__ == '__main__': #Définition du vecteur d'entrée à partir des arguments en ligne de commande #P = 13 200 000 Pa & T = 300°C (rappel) + # #E = [float(sys.argv[1]),float(sys.argv[2])] #Evaluation avec openturns @@ -79,19 +81,30 @@ if __name__ == '__main__': fct_ot_def = ot.MemoizeFunction(fct_ot_def)#facultatif, pour consultation historique random_S = ot.CompositeRandomVector(fct_ot_def,random_loi_E) - #Obtention d'une sortie échantillonnée - ech_S = random_S.getSample(2) - mc_1_S = ech_S.computeMean() - mc_2_S = ech_S.computeStandardDeviation() - - #Obtention d'une sortie de type Taylor/Cumul quadratique + #1-Obtention d'une sortie de type Taylor/Cumul quadratique taylor_S = ot.TaylorExpansionMoments(random_S) taylor_1_S = taylor_S.getMeanFirstOrder() taylor_2_S = taylor_S.getCovariance() - + print("Taylor (cumul quadratique) : ") + print("moyenne = ", taylor_1_S) + print("variance = ", taylor_2_S) + + #2-Obtention d'une sortie de type Monte-Carlo + # entrées échantillonnées (préparant la distribution sur les entrées) + nb_noeuds_mc = 3 + taille_size_mc = 11 + array_S_mc = np.array([[0]]) + for i in range(nb_noeuds_mc): + experiment = ot.MonteCarloExperiment(loi_E,taille_size_mc) + sample_E = experiment.generate() + sample_S_mc = fct_ot_def(sample_E) + array_S_mc = np.concatenate((array_S_mc,np.array(sample_S_mc)), axis = 0) + ech_S_mc = ot.Sample(array_S_mc[1::]) + print("Monte-Carlo : ") + print("moyenne Monte-Carlo = ",ech_S_mc.computeMean()) + print("variance Monte-Carlo = ",ech_S_mc.computeVariance()) + #Obtention d'une sortie dépassement de seuil avec Monte-Carlo #non retenue dans les fonctionnalités prioritaires - #print("tirages aléatoires de S = ", ech_S) - print("moyenne = ",mc_1_S," ou", taylor_1_S) - print("variance = ",mc_2_S," ou", taylor_2_S) +