diff --git a/bin/foamExec b/bin/foamExec index 509ed5d83..7a93bfb61 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 20793c3d5..7fa5c8174 100755 --- a/bin/foamJob +++ b/bin/foamJob @@ -40,6 +40,7 @@ options: -case 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 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 1d8b0e837..a006be18c 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 ea5a25a82..6efa8e10f 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'