diff --git a/bin/foamExec b/bin/foamExec index 509ed5d83cb8cecdef7fabfef8c11c1bab0fb39f..7a93bfb6132273df060a6823980f9090d0f5ea09 100755 --- a/bin/foamExec +++ b/bin/foamExec @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox diff --git a/bin/foamJob b/bin/foamJob index 20793c3d52079b137a8fca3d9dd58f5ce7857ec1..7fa5c8174e68259ae7b2e4ef3a719fefc4878fca 100755 --- a/bin/foamJob +++ b/bin/foamJob @@ -40,6 +40,7 @@ options: -case <dir> specify alternative case directory, default is the cwd -parallel parallel run of processors -screen also sends output to screen + -wait wait for execution to complete (when not using -screen) -version <ver> specify an alternative OpenFOAM version -help print the usage @@ -108,7 +109,7 @@ findExec() { # MAIN SCRIPT #~~~~~~~~~~~~ -unset parallelOpt screenOpt +unset parallelOpt screenOpt waitOpt # parse options @@ -131,6 +132,10 @@ do screenOpt=true shift ;; + -w | -wait) + waitOpt=true + shift + ;; -v | -version) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" version="$2" @@ -231,6 +236,13 @@ then break fi done + + # + # Send FOAM_SETTINGS to parallel processes, so that the proper + # definitions are sent as well. + # + mpiopts="$mpiopts -x FOAM_SETTINGS" + ;; esac @@ -244,6 +256,12 @@ then else echo "Executing: $mpirun $mpiopts $APPLICATION $(echoArgs "$@") -parallel > log 2>&1" $mpirun $mpiopts $APPLICATION "$@" -parallel > log 2>&1 & + + pid=$! + if [ "$waitOpt" = true ] + then + wait $pid + fi fi else @@ -258,6 +276,12 @@ else else echo "Executing: $APPLICATION $(echoArgs "$@") > log 2>&1 &" $APPLICATION "$@" > log 2>&1 & + + pid=$! + if [ "$waitOpt" = true ] + then + wait $pid + fi fi fi diff --git a/etc/config/aliases.csh b/etc/config/aliases.csh index 1d8b0e837c57d38f2d7d018df967def02861b0c1..a006be18cdec4b542ab7d76032004eaf52076d19 100644 --- a/etc/config/aliases.csh +++ b/etc/config/aliases.csh @@ -38,8 +38,11 @@ alias wm32 'wmSET WM_ARCH_OPTION=32' alias wmSP 'wmSET WM_PRECISION_OPTION=SP' alias wmDP 'wmSET WM_PRECISION_OPTION=DP' +# refresh the environment +alias wmREFRESH 'wmSET $FOAM_SETTINGS' + # clear env -alias wmUNSET='source $WM_PROJECT_DIR/etc/config/unset.csh' +alias wmUNSET 'source $WM_PROJECT_DIR/etc/config/unset.csh' # Toggle wmakeScheduler on/off # - also need to set WM_HOSTS diff --git a/etc/config/aliases.sh b/etc/config/aliases.sh index ea5a25a82a6f1735d797ff23756e66da99e74c55..6efa8e10f505b4d1c1b94f91d37bde14cc60d03b 100644 --- a/etc/config/aliases.sh +++ b/etc/config/aliases.sh @@ -38,6 +38,9 @@ alias wm32='wmSET WM_ARCH_OPTION=32' alias wmSP='wmSET WM_PRECISION_OPTION=SP' alias wmDP='wmSET WM_PRECISION_OPTION=DP' +# refresh the environment +alias wmREFRESH='wmSET $FOAM_SETTINGS' + # clear env alias wmUNSET='. $WM_PROJECT_DIR/etc/config/unset.sh'