Fenòmens: minor changes to lab p4
- Modified gnuplot code.
- Changed |run.bash| so it can be executed standalone to interface with
the mc2 program with a lot of possible options (run
`./run.bash --help`).
- Added some more temperatures to runAll.bash in order to get better
precision around the critical temperature.
Change-Id: I4c8bd84eeccd9d444981e885ba41b9fd6fc75481
diff --git a/quad10/fenomens/lab/p4/run.bash b/quad10/fenomens/lab/p4/run.bash
index 73031d7..96122de 100755
--- a/quad10/fenomens/lab/p4/run.bash
+++ b/quad10/fenomens/lab/p4/run.bash
@@ -1,12 +1,87 @@
#!/bin/bash
+progname=$0
+function usage() {
+ cat <<END
+
+ Usage: $progname T L [outFilePrefix [--help --skipIfComputed
+ --nSeeds NSEEDS --mcTot MCTOT --mcIni MCINI --mcD MCD
+ --initialSeed INITIALSEED]]
+
+ the output file will be saved at "data_out/{{outFilePrefix}}"
+
+ optional arguments:
+ -h, --help show this help message and exit.
+ -s, --skipIfComputed skip if the output file already exists.
+ -n, --nSeeds number of seeds which will be used for the
+ simulation.
+ -m, --mcTot number of iterations which will be performed
+ in the simulation for each seed.
+ -i, --mcIni number of iterations before the program
+ starts measuring physical properties of the
+ system.
+ -d, --mcD the program will measure the physical
+ properties when iteration % MCD == 0.
+ --initialSeed initial seed for the Monte Carlo algorithm.
+END
+}
+
+if (( "$#" < 2 )); then
+ usage
+ exit 1
+fi
+
T="$1"
L="$2"
-outFolder="dep_en_L/$L"
-outFilePrefix="${outFolder}/$T"
+defaultOutFilePrefix="L$L-T$T"
+outFilePrefix="${3:-$defaultOutFilePrefix}"
-if [ -f "data_out/${outFilePrefix}.res" ]; then
+opts=$(getopt -l "help,skipIfComputed,nSeeds:,mcTot:,mcIni:,mcD:,initialSeed:" -o "hsn:m:i:d:" -n "$progname" -- "${@:4}")
+eval set -- "$opts"
+
+skipIfComputed=false
+nSeeds=150
+mcTot=40000
+mcIni=2000
+mcD=20
+initialSeed=117654
+
+while true; do
+ case "$1" in
+ -h | --help)
+ usage
+ exit
+ ;;
+ -s | --skipIfComputed)
+ skipIfComputed=true
+ shift
+ ;;
+ -n | --nSeeds)
+ nSeeds="$2"
+ shift 2
+ ;;
+ -m | --mcTot)
+ mcTot="$2"
+ shift 2
+ ;;
+ -i | --mcIni)
+ mcIni="$2"
+ shift 2
+ ;;
+ -d | --mcD)
+ mcD="$2"
+ shift 2
+ ;;
+ --initialSeed)
+ initialSeed="$2"
+ shift 2
+ ;;
+ *) break ;;
+ esac
+done
+
+if [ "$skipIfComputed" == "true" ] && [ -f "data_out/${outFilePrefix}.res" ]; then
echo "Skipping computation for L=$L, T=$T (.res file already exists)"
- exit 0
+ exit
fi
echo "Starting computation for L=$L, T=$T"
@@ -16,10 +91,10 @@
L=$L,
NOM="$outFilePrefix",
TEMP=$T,
-NSEED=150,
-SEED0=117654,
-MCTOT=40000,
-MCINI=2000,
-MCD=20
+NSEED=$nSeeds,
+SEED0=$initialSeed,
+MCTOT=$mcTot,
+MCINI=$mcIni,
+MCD=$mcD
&END
EOF