From: Eric Fayolle Date: Fri, 16 Sep 2022 15:43:47 +0000 (+0200) Subject: Changement du nom du paramètre script de lancement dans le modèle. X-Git-Tag: merge_uncertainty_odysee_1210~9 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=fffe44d81b30234c10f77c3b2135da163aa3b0f6;p=tools%2Feficas.git Changement du nom du paramètre script de lancement dans le modèle. 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. --- diff --git a/ReacteurNumerique/cata_UQ.py b/ReacteurNumerique/cata_UQ.py index c95d469e..2f945789 100644 --- a/ReacteurNumerique/cata_UQ.py +++ b/ReacteurNumerique/cata_UQ.py @@ -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"', diff --git a/ReacteurNumerique/ib_test.sh b/ReacteurNumerique/ib_test.sh index 950ef080..5208c087 100755 --- a/ReacteurNumerique/ib_test.sh +++ b/ReacteurNumerique/ib_test.sh @@ -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 .comm" >&2 + exit 1 + ;; +esac +exit 0 diff --git a/generator/generator_UQ.py b/generator/generator_UQ.py index 2829708e..2827a780 100644 --- a/generator/generator_UQ.py +++ b/generator/generator_UQ.py @@ -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) diff --git a/generator/textePersalys.py b/generator/textePersalys.py index d77e5ef4..ad453140 100644 --- a/generator/textePersalys.py +++ b/generator/textePersalys.py @@ -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())