Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-27 09:18:17

0001 #!/usr/bin/env bash
0002 numRankP=1 # Number of ranks(cpu/cores) for physical stage ( 1 is default value)
0003 numRankC=4 # Number of ranks(cores/cpus) for chemical stage( 4 is default value)
0004 flag="all"; #default, 
0005 inputFolder="chem_input"
0006 outputFolder="chem_output"
0007 physmacfile="dsbandrepair.in"  #change it if you use other files
0008 chemmacfile="chem.in" #change it if you use other files
0009 ##--------------------------------------------------------------------------------------------------------------------------##
0010 logfolder="logs"
0011 if [ ! -d $logfolder ]; then 
0012 # folder to contain logfiles
0013     mkdir "$logfolder"
0014     mkdir "$logfolder/phys"
0015     mkdir "$logfolder/chem"
0016 fi  
0017 ##--------------------------------------------------------------------------------------------------------------------------##
0018 ##Read input arguments
0019 for i in "$@"
0020 do
0021     if [ $i = "-f" ] ;then shift;unset flag;flag=$1;shift;fi
0022     if [ $i = "-nRP" ] ;then shift;unset numRankP; numRankP=$1;shift;fi
0023     if [ $i = "-nRC" ] ; then shift;unset numRankC; numRankC=$1;shift;fi
0024     if [ $i = "-mP" ] ; then shift;unset physmacfile; physmacfile=$1;shift;fi
0025     if [ $i = "-mC" ] ; then shift;unset chemmacfile; chemmacfile=$1;shift;fi
0026 done
0027 ##--------------------------------------------------------------------------------------------------------------------------##
0028 echo "See $logfolder/* for running details"
0029 #START_TIME=$SECONDS
0030 ##--------------------------------------------------------------------------------------------------------------------------##
0031 #PhysStage:
0032 if [ $flag = "all" ] || [ $flag = "phys" ]; then 
0033     if [ -d $logfolder/phys ]; then find $logfolder/phys/ -type f -delete;fi
0034     echo "Start running physical stage................."
0035     mpiexec -np $numRankP --bind-to none ./dsbandrepair $physmacfile > $logfolder/phys/log.dat
0036     wait
0037     echo "End running physical stage................."
0038 fi
0039 wait # make sure all above processes finish before chemStage starts
0040 
0041 ##--------------------------------------------------------------------------------------------------------------------------##
0042 
0043 #ChemStage:
0044 if [ $flag = "all" ] || [ $flag = "chem" ]; then
0045     if [ -d $logfolder/chem ]; then find $logfolder/chem/ -type f -delete;fi
0046     if [ -d $outputFolder ]; then
0047     find $outputFolder/ -type f -delete
0048     else
0049     mkdir "$outputFolder"
0050     fi
0051     echo "Start running chemical stage................."
0052     # Loop on each file of the $inputFolder folder
0053     mpiexec -np $numRankC --bind-to none ./dsbandrepair $chemmacfile chem $inputFolder > $logfolder/chem/log.dat
0054     wait
0055     echo "End running chemical stage................."
0056 fi
0057 
0058 ##--------------------------------------------------------------------------------------------------------------------------##
0059 #echo "Elasped timed for $flag stage: $(($SECONDS - $START_TIME)) sec!!!"
0060 ##--------------------------------------------------------------------------------------------------------------------------##