Skip to content

fluka_string_templates

batch.fluka_string_templates

ARRAY_FLUKA_BASH module-attribute

ARRAY_FLUKA_BASH = "#!/bin/bash\n{array_header}\nROOT_DIR={root_dir}\nWORK_DIR=$ROOT_DIR/workspaces/task_`printf %04d $SLURM_ARRAY_TASK_ID`\n\n# seed of RNG\nRNG_SEED=$SLURM_ARRAY_TASK_ID\n\n# main FLUKA input files\nINPUT_DIR=$ROOT_DIR/input\n\n# go to working directory\ncd $WORK_DIR\n\n# copy .inp file from input folder to working directory\ncp $INPUT_DIR/*.inp .\n\n# assign .inp file to a variable\nINPUT_FILE=$(ls *.inp)\n\nmodule load pymchelper\npython3 -c \"from pymchelper.executor.runner import Runner;Runner._Runner__update_fluka_input_file('\\''${{INPUT_FILE}}'\\'',${{RNG_SEED}}.0)\" # noqa: E501\nsig_handler()\n{{\n    echo \"BATCH interrupted\"\n    wait # wait for all children, this is important!\n}}\n\n# FILE_TO_WATCH=$WORK_DIR/fluka_`printf %04d $SLURM_ARRAY_TASK_ID`.log\n# python3 $ROOT_DIR/watcher.py #     --filepath=$FILE_TO_WATCH#     --sim_id={sim_id}#     --task_id=$SLURM_ARRAY_TASK_ID#     --update_key={update_key}#     --backend_url={backend_url}#     --verbose 1>watcher_$SLURM_ARRAY_TASK_ID.stdout 2>watcher_$SLURM_ARRAY_TASK_ID.stderr &\n\ntrap 'sig_handler' SIGUSR1\n\n# execute simulation\nsrun rfluka -N0 -M1 $WORK_DIR/*.inp &\n\nwait\n"

COLLECT_FLUKA_BASH module-attribute

COLLECT_FLUKA_BASH = '#!/bin/bash\n{collect_header}\nROOT_DIR={root_dir}\n\nINPUT_WILDCARD="$ROOT_DIR/workspaces/task_*/*_fort.*"\nOUTPUT_DIRECTORY=$ROOT_DIR/output\n\nmkdir -p $OUTPUT_DIRECTORY\n\ncd $OUTPUT_DIRECTORY\n\npython3 $ROOT_DIR/simulation_data_sender.py --sim_id={sim_id} --update_key={update_key} \\\n      --backend_url={backend_url} --simulation_state=MERGING_RUNNING\n\nmodule load pymchelper\nconvertmc json --many "$INPUT_WILDCARD"\n\nCLEAR_FORTS={remove_output_from_workspace}\n\nif $CLEAR_FORTS; then\n    rm $INPUT_WILDCARD\nfi\n\npython3 $ROOT_DIR/simulation_data_sender.py --output_dir=$OUTPUT_DIRECTORY \\\n    --sim_id={sim_id} --update_key={update_key} --backend_url={backend_url}\n\npython3 $ROOT_DIR/simulation_data_sender.py --sim_id={sim_id} --update_key={update_key} \\\n      --backend_url={backend_url} --simulation_state=COMPLETED\n'

SUBMIT_FLUKA module-attribute

SUBMIT_FLUKA = '#!/bin/bash\nOUT=`mktemp`\nmodule load fluka\n\nROOT_DIR={root_dir}\ncd $ROOT_DIR\nmkdir -p $ROOT_DIR/workspaces/task_{{0001..{n_tasks}}}\nmkdir -p $ROOT_DIR/input\n\nINPUT_DIR=$ROOT_DIR/input\nARRAY_SCRIPT=$ROOT_DIR/array_script.sh\nCOLLECT_SCRIPT=$ROOT_DIR/collect_script.sh\n\nunzip -d $INPUT_DIR $ROOT_DIR/input.zip\nrm $ROOT_DIR/input.zip\n\nFLUKA_CMD="sbatch --array=1-{n_tasks} {array_options} --parsable $ARRAY_SCRIPT > $OUT"\neval $FLUKA_CMD\nJOB_ID=`cat $OUT | cut -d ";" -f 1`\necho "Job id: $JOB_ID"\n\nif [ -n "$JOB_ID" ] ; then\n    COLLECT_CMD="sbatch --dependency=afterany:$JOB_ID {collect_options} --parsable $COLLECT_SCRIPT > $OUT"\n    eval $COLLECT_CMD\n    COLLECT_ID=`cat $OUT | cut -d ";" -f 1`\n    echo "Collect id: $COLLECT_ID"\nfi\n'