#! /bin/zsh # We use zsh here to support floats (not supported in bash) # This script produces a whole stack of subdirectories, # for a range of values of c centered on 4 with 8 up/down factors of 2, # and momenta in range from 0 to 4kF. # For each c, the LiebLin_Catalogue_Fixed_c_Nscaling # executable is invoked, which computes up to the highest N possible in view of time. if [[ $# -ne 5 ]]; then echo "Arguments needed: whichDSF, kBT, target_sumrule, nkmax (max momentum in units of kF/4), nr_minutes (for each c value)." exit 1 fi if [[ $1 != 'd' && $1 != 'g' && $1 != 'o' ]]; then echo "Only the d, g and o scanning options are implemented." exit 1 fi if [[ $2 -lt 0 ]]; then echo "Temperature kBT must be > 0." exit 1 fi if [[ $3 -lt 0 || $3 -gt 1 ]]; then echo "Requirement: 0 < target_sumrule < 1." exit 1 fi if [[ $4 -lt 0 ]]; then echo "nkmax must be > 0." exit 1 fi if [[ $5 -lt 1 ]]; then echo "Please give a positive nr_minutes." exit 1 fi zmodload zsh/datetime whichDSF=$1 kBT=$2 target_sumrule=$3 nkmax=$4 nr_minutes=$5 correlator='rho-rho' if [[ $whichDSF == 'o' ]]; then correlator='psidag-psi' elif [[ $whichDSF == 'g' ]]; then correlator='psi-psidag' fi mkdir -p logs logfile='logs/run_catalogue_k_range_'$whichDSF'_kBT_'$kBT'_sr_'$target_sumrule'_nkmax_'$nkmax'_nr_minutes_'$nr_minutes'_'$(date '+%Y-%m-%d-%Hh%M')'.log' touch $logfile clist=(1024 512 256 128 64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625 0.03125 0.015625) basedir="$(pwd)" for c in $clist do echo '** Starting run for c =' $c | tee -a $logfile dir='Lieb-Liniger/'$correlator'/T_'$kBT'/c_fixed/c_'$c'/k_range/k_0_to_'$nkmax'kFo4/sr_'$target_sumrule'/prelim' mkdir -p $dir cd $dir LiebLin_Catalogue_Fixed_c_Nscaling $whichDSF $c $nkmax $kBT $target_sumrule 0 $nr_minutes | tee -a $basedir/$logfile cd $basedir echo '** Successfully completed run for c =' $c'.\n' | tee -a $logfile done echo '\n\n*** Successfully completed build_LiebLin_catalogue_k_range on '$(date '+%Y-%m-%d-%Hh%M') | tee -a $logfile