Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-14 08:06:15

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