#! /bin/zsh # We use zsh here to support floats (not supported in bash) # This script produces the plots for the runs from `build_LiebLin_catalogue_k_range` # runs which achieved the required sumrule saturation. if [[ $# -ne 5 ]]; then echo "Arguments needed: whichDSF, kBT, target_sumrule, nkmax (max momentum in units of kF/4), width." 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 0 ]]; then echo "width must be > 0." exit 1 fi whichDSF=$1 kBT=$2 target_sumrule=$3 nkmax=$4 width=$5 correlator='rho-rho' if [[ $whichDSF == 'o' ]]; then correlator='psidag-psi' elif [[ $whichDSF == 'g' ]]; then correlator='psi-psidag' fi 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 plotting of DSFs for c =' $c dir='Lieb-Liniger/'$correlator'/T_'$kBT'/c_fixed/c_'$c'/k_range/k_0_to_'${(l:2::0:)nkmax}'kFo4/sr_'$target_sumrule'/store/plots' mkdir -p $dir cd $dir for datadir in ../data/* do N=${datadir#"../data/N_"} mkdir -p 'N_'$N cd 'N_'$N # Move all K_, Omega_ and .dsfs files here mv ../../data/N_$N/K_* . mv ../../data/N_$N/Omega_* . mv ../../data/N_$N/*dsfs . # Find the K and Omega file for file in * do if [[ $file = Omega* ]]; then omegafile=$file elif [[ $file = K_* ]]; then kfile=$file fi done # For each .dsfs file, plot for file in *.dsfs do echo 'Found file ' $file # invoke the python script plot_dsf_k_range.py $kfile $omegafile $file done cd .. done cd $basedir echo '** Successfully plotted DSFs for c =' $c'.\n' done