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.
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"',
#!/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
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, '')
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 :
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):
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
)
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)
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
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())