From e0a0f94e6fca9e53f9c8f2be93725bac2c110524 Mon Sep 17 00:00:00 2001
From: Prashant <prashantS.sonakar@esi-group.com>
Date: Fri, 6 May 2016 11:25:11 +0530
Subject: [PATCH] ENH: added -decomposeParDict as argument to
 getNumberOfProcessors()

---
 bin/tools/RunFunctions | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)
 mode change 100644 => 100755 bin/tools/RunFunctions

diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions
old mode 100644
new mode 100755
index 66a1d7b118d..407800e7917
--- a/bin/tools/RunFunctions
+++ b/bin/tools/RunFunctions
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2015 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2015-2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -41,8 +41,10 @@ isTest()
 
 getNumberOfProcessors()
 {
-    expandDictionary system/decomposeParDict \
-        | sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
+    if [ -f $1 ]
+    then
+        expandDictionary $1 | sed -ne 's/^numberOfSubdomains\s*\(.*\);/\1/p'
+    fi
 }
 
 getApplication()
@@ -100,13 +102,16 @@ runParallel()
 {
     LOG_NAME=
     APP_RUN=
+    # Store any parsed additional arguments e.g. decomposeParDict
+    APP_PARARGS=
     LOG_IGNORE=false
     LOG_APPEND=false
     LOG_SUFFIX=
-    nProcs=$(getNumberOfProcessors)
+    # Check the default decomposeParDict if available
+    nProcs=$(getNumberOfProcessors "system/decomposeParDict")
 
     # Parse options and executable
-    while [ $# -gt 0 ] && [ -z "$APP_RUN" ]; do
+    while [ $# -gt 0 ] && [ -z "$APP_RUN" ] ; do
         key="$1"
         case "$key" in
             -append|-a)
@@ -124,6 +129,11 @@ runParallel()
                 nProcs="$2"
                 shift
                 ;;
+            -decomposeParDict)
+                nProcs=$(getNumberOfProcessors "$2")
+                APP_PARARGS="$APP_PARARGS -decomposeParDict $2"
+                shift
+                ;;
             *)
                 APP_RUN="$key"
                 APP_NAME="${key##*/}"
@@ -141,9 +151,9 @@ runParallel()
     else
         echo "Running $APP_RUN in parallel on $PWD using $nProcs processes"
         if [ "$LOG_APPEND" = "true" ]; then
-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
+            ( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null >> log.$LOG_SUFFIX 2>&1 )
         else
-            ( mpirun -np $nProcs $APP_RUN -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
+            ( mpirun -np $nProcs $APP_RUN $APP_PARARGS -parallel "$@" < /dev/null > log.$LOG_SUFFIX 2>&1 )
         fi
     fi
 }
-- 
GitLab