#!/bin/bash fail () { echo "-----> Errore di esecuzione." #read -n1 -r -p "Premi un tasto per USCIRE ..." key exit 1 } echo "< vai nella dir che contiene [caso_Def]" echo " name usa '$1'" if [ $1 ] then echo "> continuo con $1 <" export name=$1 else echo Manca argomento "$1" : Give me Job name read -p ">: " Job export name=$Job fi read -p ">: out directory : " dd export dirout=${dd} export diroutdata=${dirout}/data echo " >>> "${Job}" - "${dirout}" - "${diroutdata}" <<<" # "executables" are renamed and called from their directory export dirbin=/opt/DualSPHysics_v5/bin/linux #echo ${dirbin} export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${dirbin} #echo ${LD_LIBRARY_PATH} export gencase="${dirbin}/GenCase_linux64" #echo ${gencase} export dualsphysicscpu="${dirbin}/DualSPHysics5.0CPU_linux64" export dualsphysicsgpu="${dirbin}/DualSPHysics5.0_linux64" #echo ${dualsphysicscpu} - ${dualsphysicsgpu} export boundaryvtk="${dirbin}/BoundaryVTK_linux64" export partvtk="${dirbin}/PartVTK_linux64" export partvtkout="${dirbin}/PartVTKOut_linux64" export measuretool="${dirbin}/MeasureTool_linux64" export computeforces="${dirbin}/ComputeForces_linux64" export isosurface="${dirbin}/IsoSurface_linux64" export flowtool="${dirbin}/FlowTool_linux64" export floatinginfo="${dirbin}/FloatingInfo_linux64" echo -OK- export xml= ${name}_Def Opti=-1 if [ -e $xml ]; then #NO: while [ "$Opti" != 1 -a "$Opti" != 2 -a "$Opti" != 3 -a "$Opti" != 4 -a "$Opti" != 5 ] #NO: do echo -e "La directory "${dirout}" esiste. Va in automatico a fare le opzioni : [1]- Gencase only (delete "${dirout}"). [2]- Calcola. [3]- Restart. " read -n1 -r -p "continua? >: " kkk #NO: done Opti=1 else Opti=0 fi echo "--- Opti="${Opti} if [ $Opti -eq 1 ]; then # "dirout" to store results is removed if it already exists if [ -e ${dirout} ]; then rm -r ${dirout}; fi # CODES are executed according the selected parameters of execution in this testcase ${gencase} ${name}_Def ${dirout}/${name} -save:all fi echo 0.1 > ${dirout}/TERMINATE #esegue solo 10 step Opti=2 if [ $Opti -eq 2 ]; then ${dualsphysicscpu} ${dirout}/${name} ${dirout} -dirdataout data -svres -cellmode:half if [ $? -ne 0 ] ; then fail; fi Opti=3 fi if [ $Opti -eq 3 ]; then echo 0.2 > ${dirout}/TERMINATE #esegue altri 10 step last=10 # non legge:read -p " ultimo step calcolato: " last next=-1 # senza nr. di ripartenza (next) echo ${dualsphysicscpu} ${dirout}/${name} ${dirout} -dirdataout data_restart -svres -cellmode:half -partbegin:${last} ${diroutdata} # non legge:read -p " continua ... " key ${dualsphysicscpu} ${dirout}/${name} ${dirout} -dirdataout data_restart -svres -cellmode:half -partbegin:${last} ${diroutdata} if [ $? -ne 0 ] ; then fail; fi fi if [ $Opti -eq 4 ]; then export dirout2=${dirout}/particles ${partvtk} -dirin ${diroutdata} -savevtk ${dirout2}/PartFloating -onlytype:-all,+floating if [ $? -ne 0 ] ; then fail; fi ${partvtkout} -dirin ${diroutdata} -savevtk ${dirout2}/PartFluidOut -SaveResume ${dirout2}/_ResumeFluidOut if [ $? -ne 0 ] ; then fail; fi export dirout2=${dirout}/boundary ${boundaryvtk} -loadvtk AutoActual -motiondata ${diroutdata} -savevtkdata ${dirout2}/MK-0.vtk -onlymk:0 if [ $? -ne 0 ] ; then fail; fi ${boundaryvtk} -loadvtk AutoActual -motiondata ${diroutdata} -savevtkdata ${dirout2}/MK-1.vtk -onlymk:1 if [ $? -ne 0 ] ; then fail; fi # post-processing isosurface export dirout2=${dirout}/isosurface ${isosurface} -dirin ${diroutdata} -saveiso ${dirout2}/iso -vars:-all,vel,rhop,idp,type >/dev/null if [ $? -ne 0 ] ; then fail; fi fi if [ $Opti = 5 ];then echo "Fatto niente !!!" fi echo "---------------------------------"