]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Découpage manuel en "séquence de calculs" à discuter
authorLiana RAMIANDRISOA <liana.ramiandrisoa@edf.fr>
Wed, 4 May 2022 14:28:29 +0000 (16:28 +0200)
committerLiana RAMIANDRISOA <liana.ramiandrisoa@edf.fr>
Wed, 4 May 2022 14:28:29 +0000 (16:28 +0200)
ReacteurNumerique_UQ/CasJouet_cath_OT.py

index 398928c2beeb1fbcdf9a0e200a612daa0f0770ed..d92bc01eb39ef485047b2d11059c168e0546a8e4 100644 (file)
@@ -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)
+