Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 1 | #!/bin/bash |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 2 | progname=$0 |
| 3 | function usage() { |
| 4 | cat <<END |
| 5 | |
| 6 | Usage: $progname T L [outFilePrefix [--help --skipIfComputed |
| 7 | --nSeeds NSEEDS --mcTot MCTOT --mcIni MCINI --mcD MCD |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 8 | --initialSeed INITIALSEED --saveFinalConf]] |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 9 | |
| 10 | the output file will be saved at "data_out/{{outFilePrefix}}" |
| 11 | |
| 12 | optional arguments: |
| 13 | -h, --help show this help message and exit. |
| 14 | -s, --skipIfComputed skip if the output file already exists. |
| 15 | -n, --nSeeds number of seeds which will be used for the |
| 16 | simulation. |
| 17 | -m, --mcTot number of iterations which will be performed |
| 18 | in the simulation for each seed. |
| 19 | -i, --mcIni number of iterations before the program |
| 20 | starts measuring physical properties of the |
| 21 | system. |
| 22 | -d, --mcD the program will measure the physical |
| 23 | properties when iteration % MCD == 0. |
| 24 | --initialSeed initial seed for the Monte Carlo algorithm. |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 25 | --saveFinalConf save a file with the configuration which |
| 26 | belongs to the last Montecarlo iteration. |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 27 | END |
| 28 | } |
| 29 | |
| 30 | if (( "$#" < 2 )); then |
| 31 | usage |
| 32 | exit 1 |
| 33 | fi |
| 34 | |
Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 35 | T="$1" |
| 36 | L="$2" |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 37 | defaultOutFilePrefix="L$L-T$T" |
| 38 | outFilePrefix="${3:-$defaultOutFilePrefix}" |
Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 39 | |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 40 | opts=$(getopt -l "help,skipIfComputed,nSeeds:,mcTot:,mcIni:,mcD:,initialSeed:,saveFinalConf" -o "hsn:m:i:d:" -n "$progname" -- "${@:4}") |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 41 | eval set -- "$opts" |
| 42 | |
| 43 | skipIfComputed=false |
| 44 | nSeeds=150 |
| 45 | mcTot=40000 |
| 46 | mcIni=2000 |
| 47 | mcD=20 |
| 48 | initialSeed=117654 |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 49 | saveFinalConf=F |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 50 | |
| 51 | while true; do |
| 52 | case "$1" in |
| 53 | -h | --help) |
| 54 | usage |
| 55 | exit |
| 56 | ;; |
| 57 | -s | --skipIfComputed) |
| 58 | skipIfComputed=true |
| 59 | shift |
| 60 | ;; |
| 61 | -n | --nSeeds) |
| 62 | nSeeds="$2" |
| 63 | shift 2 |
| 64 | ;; |
| 65 | -m | --mcTot) |
| 66 | mcTot="$2" |
| 67 | shift 2 |
| 68 | ;; |
| 69 | -i | --mcIni) |
| 70 | mcIni="$2" |
| 71 | shift 2 |
| 72 | ;; |
| 73 | -d | --mcD) |
| 74 | mcD="$2" |
| 75 | shift 2 |
| 76 | ;; |
| 77 | --initialSeed) |
| 78 | initialSeed="$2" |
| 79 | shift 2 |
| 80 | ;; |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 81 | --saveFinalConf) |
| 82 | saveFinalConf=T |
| 83 | shift |
| 84 | ;; |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 85 | *) break ;; |
| 86 | esac |
| 87 | done |
| 88 | |
| 89 | if [ "$skipIfComputed" == "true" ] && [ -f "data_out/${outFilePrefix}.res" ]; then |
Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 90 | echo "Skipping computation for L=$L, T=$T (.res file already exists)" |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 91 | exit |
Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 92 | fi |
| 93 | |
| 94 | echo "Starting computation for L=$L, T=$T" |
| 95 | |
| 96 | cat <<EOF | ./out/mc2 |
| 97 | &DADES |
| 98 | L=$L, |
| 99 | NOM="$outFilePrefix", |
| 100 | TEMP=$T, |
Adrià Vilanova Martínez | d2f8c71 | 2022-06-05 22:41:03 +0200 | [diff] [blame] | 101 | NSEED=$nSeeds, |
| 102 | SEED0=$initialSeed, |
| 103 | MCTOT=$mcTot, |
| 104 | MCINI=$mcIni, |
| 105 | MCD=$mcD |
Adrià Vilanova Martínez | 1ee4edb | 2022-06-13 22:37:08 +0200 | [diff] [blame^] | 106 | SAVEFINALCONF=$saveFinalConf |
Adrià Vilanova Martínez | c102e96 | 2022-06-04 23:53:44 +0200 | [diff] [blame] | 107 | &END |
| 108 | EOF |