]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Changement du nom du paramètre script de lancement dans le modèle.
authorEric Fayolle <eric.fayolle@edf.fr>
Fri, 16 Sep 2022 15:43:47 +0000 (17:43 +0200)
committerEric Fayolle <eric.fayolle@edf.fr>
Fri, 16 Sep 2022 16:17:12 +0000 (18:17 +0200)
Prise en compte dans le script_UQ.py généré.
Modification ib_test.sh pour prendre en compte le nom du .comm passé en paramètre.

ReacteurNumerique/cata_UQ.py
ReacteurNumerique/ib_test.sh
generator/generator_UQ.py
generator/textePersalys.py

index c95d469e93d809231716037740ca43bbaa515d48..2f9457894efae396acf78c668d60287e35dd1c48 100644 (file)
@@ -1523,7 +1523,7 @@ def creeOperExpressionIncertitude(monDicoVarDeter, monDicoVarSortie,scriptPosttr
                     WorkDirectory = SIMP ( statut = 'o', typ='TXM' , defaut='/tmp/C65845_workingdir_uncertainty'), #TODO: Login + NonExistent
 #                    ResultDirectory = SIMP ( statut = 'o', typ='Repertoire' , defaut='/tmp/idefix_rn_job'), #TODO: JobName
                     ResultDirectory = SIMP ( statut = 'o', typ='TXM' , defaut='/tmp/idefix_rn_job'), #TODO: JobName
-                    ScriptDeLancement=SIMP( statut="o",  typ=("FichierNoAbs", "All Files ()"), defaut=scriptDeLancement,
+                    UncertaintyScript=SIMP( statut="o",  typ=("FichierNoAbs", "All Files ()"), defaut=scriptDeLancement,
                        fr="Nom du fichier script de lancement",  ang="script File to launch",),
                 ),
                 bloc_OT_cluster = BLOC (condition = 'ExecutionMode == "cluster"',
index 950ef080497e9027003076d22057a973963927b7..5208c087bb8b40674bb80dcd33b2f58ed3178937 100755 (executable)
@@ -1,21 +1,30 @@
 #!/bin/bash
 
-# echo "Le répertoire courant est : "$PWD
-#A modifier si réutilisation des résultats d'un tirage précédent
-for i in ./{*.csv,*.med}; do rm -f "$i" ; done
-. /home/C65845/VIMMP/Banc_integration.newer_odysee/environment/bin/activate 
-/home/C65845/VIMMP/Banc_integration.newer_odysee/environment/bin/ib-run -- $PWD/control_rod_ejection_small_core_thyc_cocagne_UQ.comm $PWD/_ibworkdir
-for i in $PWD/_ibworkdir/{*.csv,*.med}; do ln -sf "$i" "`basename "$i"`"; done
-deactivate
+myabort() { echo $* >&2 ; exit 1;}
 
-# echo "Le répertoire courant contient : "$PWD
-# ls -l
+case "$1" in
+    ?*.comm)
+        echo "Lancement..."
 
-
-#control_rod_ejection_small_core_thyc_cocagne.comm
-#ls *.comm
-#cp "/home/C65845/VIMMP/eficas.pleiade.RN/ReacteurNumerique/Fuel temperature@Thermalhydraulics@MAX.csv" .
-#cp "/home/C65845/VIMMP/eficas.pleiade.RN/ReacteurNumerique/Neutronic power@Neutronics@SUM.csv" .
-#mpiexec -n 2 /home/C65845/VIMMP/Banc_integration.newer_odysee/environment/bin/ib-run -- /home/C65845/VIMMP/Banc_integration.newer_odysee/integration_bench/tests/control_rod_ejection_small_core_thyc_cocagne.comm /home/C65845/VIMMP/Banc_integration.newer_odysee/integration_bench/tests/control_rod_ejection_small_core_thyc_cocagne_spn_test_eric.2
+        for i in ./{*.csv,*.med}; do rm -f "$i" ; done
+        # activate du banc repose sur module qui est paramétré sous scibian pour bash
+        . /home/C65845/VIMMP/Banc_integration.newer_odysee/environment/bin/activate
+        #ib-run -- $PWD/control_rod_ejection_small_core_thyc_cocagne_UQ.comm $PWD/_ibworkdir
+        ib-run -- $PWD/$1 $PWD/_ibworkdir 
+        if test $? != 0; 
+        then 
+          myabort "A problem occurs while executing ib-run -- ${PWD}/${1} ${PWD}/_ibworkdir";
+        else 
+          echo "Execution réussie";
+        fi
+        for i in $PWD/_ibworkdir/{*.csv,*.med}; do ln -sf "$i" "`basename "$i"`"; done
+        deactivate
+        ;;
+    *)
+        echo "Usage: $0 <filename>.comm" >&2
+        exit 1
+        ;;
+esac
+exit 0
 
 
index 2829708e4da5b44da10208f77b8fec9e5e9ede87..2827a780096fbfdfb2400b3b936e50b194076988 100644 (file)
@@ -95,8 +95,10 @@ class UQGenerator(PythonGenerator):
             self.fichierSansSuffixe=os.path.basename(fichier[:-5])
             if self.fichierSansSuffixe.endswith('_UQ'):
                 self.fichierSansSuffixe = self.fichierSansSuffixe[:-3]
+            # self.fichierComm est reconstruit pour éviter les _UQ_UQ...
+            self.fichierComm   = self.fichierSansSuffixe+'.comm'
             self.fichierUQComm = self.fichierSansSuffixe+'_UQ.comm'
-            self.fichierUQBalise = self.fichierSansSuffixe+'_UQBalise.comm'
+            self.fichierBalise = self.fichierSansSuffixe+'_Balise.comm'
             self.fichierUQExe    = self.fichierSansSuffixe+'_UQ.py'
             self.fichierUQModule = os.path.basename(self.fichierUQExe)[:-3]
             return (1, '')
@@ -118,10 +120,10 @@ class UQGenerator(PythonGenerator):
 
     def writeUQ(self,fichier):
         # il manque le checksum
-        fichierUQBalise = os.path.join(self.cheminFichierComm,self.fichierUQBalise)
+        fichierBalise = os.path.join(self.cheminFichierComm,self.fichierBalise)
         fichierUQExe = os.path.join(self.cheminFichierComm,self.fichierUQExe)
         try :
-            with open(fichierUQBalise, "w") as fp:
+            with open(fichierBalise, "w") as fp:
                 fp.write(self.textUQ)
         except : return (0,'impossible de sauvegarder le _UQ.py')
         try :
@@ -253,7 +255,7 @@ class UQGenerator(PythonGenerator):
             self.Login = sectionExecution.getChildOrChildInBloc('Login').valeur
             self.WorkDirectory = sectionExecution.getChildOrChildInBloc('WorkDirectory').valeur
             self.ResultDirectory = sectionExecution.getChildOrChildInBloc('ResultDirectory').valeur
-            self.ScriptDeLancement = sectionExecution.getChildOrChildInBloc('ScriptDeLancement').valeur
+            self.UncertaintyScript = sectionExecution.getChildOrChildInBloc('UncertaintyScript').valeur
             NbOfProcs = sectionExecution.getChildOrChildInBloc('NbOfProcs')   # None si 'desktop', vérification à faire ds jobmanager
             MultiJobStudy=sectionExecution.getChildOrChildInBloc('MultiJobStudy')  # None si 'desktop'
             if (NbOfProcs != None):
@@ -322,13 +324,15 @@ class UQGenerator(PythonGenerator):
             chaineDesVariablesInput = self.chaineDesVariablesInput,
             chaineSelfDesVariablesInput = getStrSelfVarList(self.nomsDesVariablesInput),
             chaineInitDesVariablesInput = getStrInitList(self.nomsDesVariablesInput),
-            commFileUQBalise = self.fichierUQBalise,
-            commFileUQComm = self.fichierUQComm,
+            commFileBalise = self.fichierBalise,
+            commFile = self.fichierComm,
             nproc = self.NbOfProcs, #En local le nombre de procs est inutile
                                                    #sauf si lancement mpi externe au script applicatif
                                                    # auquel cas != NbOfTasks du jobmanager car
                                                    # on ne compte pas les threads 
-            replaceDataList = getStrReplaceVarList(self.nomsDesVariablesInput)
+            replaceDataList = getStrReplaceVarList(self.nomsDesVariablesInput),
+            uncertaintyScript = os.path.basename(self.UncertaintyScript),
+            uncertaintyScriptParameters = self.fichierComm
         )
 
 
@@ -403,9 +407,9 @@ class UQGenerator(PythonGenerator):
         inFiles.append(os.path.join(generatorDir,'incertainty_tools.py'))
         pyFile = self.fichierUQExe
         inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
-        pyFile = self.fichierUQBalise
+        pyFile = self.fichierBalise
         inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
-        scriptFile = os.path.abspath(self.ScriptDeLancement )
+        scriptFile = os.path.abspath(self.UncertaintyScript )
         inFiles.append(scriptFile)
         postFile = os.path.abspath(self.ScriptPosttraitement )
         inFiles.append(postFile)
index d77e5ef42f1b33d8c2b86749865d36893f3c1254..ad4531407f0e0e173fe680efd99150d79abe515f 100644 (file)
@@ -80,16 +80,16 @@ class Study:
            os.mkdir(self.workdir)
 
         #section spécifique au code de calcul
-        comm_file_uq_balise = '{commFileUQBalise}'
+        comm_file_balise = '{commFileBalise}'
 
         self.nproc = {nproc} # La présence de cette variable dépend 
                                           # du mode de lancement MPI
                                           # S'il est géré par le script appelé à partir du MDD, il est inutile de le stocker 
-        self.comm_file_uq_balise = os.path.join(self.workdir, comm_file_uq_balise)
-        shutil.copy(comm_file_uq_balise, self.comm_file_uq_balise)
+        self.comm_file_balise = os.path.join(self.workdir, comm_file_balise)
+        shutil.copy(comm_file_balise, self.comm_file_balise)
 
-        self.comm_file_uq_comm = os.path.join(self.workdir, '{commFileUQComm}')
-        replace_data(self.comm_file_uq_balise, {{ {replaceDataList}  }} , self.comm_file_uq_comm)
+        self.comm_file = os.path.join(self.workdir, '{commFile}')
+        replace_data(self.comm_file_balise, {{ {replaceDataList}  }} , self.comm_file)
         #TODO: Lancer la validation du fichier généré avant tout lancement : Le banc le fait
 
         pass
@@ -109,7 +109,8 @@ class Study:
     def run_case(self):
         #os.chdir(self.workdir)
         # Si lancement mpi externe à ib_test.sh il faut utiliser self.nproc : mpiexec -n self.nproc ib_test.sh
-        o,e,c = self.do_sh(command="ib_test.sh", execdir=self.workdir)
+        #o,e,c = self.do_sh(command="ib_test.sh", execdir=self.workdir)
+        o,e,c = self.do_sh(command="{uncertaintyScript} {uncertaintyScriptParameters}", execdir=self.workdir)
         if o != None : print(o.decode())
         if e != None : print(e.decode())