diff --git a/bin/tools/CleanFunctions b/bin/tools/CleanFunctions
index 431c52f383..2f546b4f84 100644
--- a/bin/tools/CleanFunctions
+++ b/bin/tools/CleanFunctions
@@ -6,20 +6,8 @@
# \\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
-# This file is part of OpenFOAM.
-#
-# OpenFOAM is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with OpenFOAM. If not, see .
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
#
# Script
# CleanFunctions
@@ -158,6 +146,7 @@ cleanFaMesh ()
)
}
+
cleanApplication()
{
echo "Cleaning application $PWD"
diff --git a/bin/tools/LogFunctions b/bin/tools/LogFunctions
new file mode 100644
index 0000000000..820ab4a27f
--- /dev/null
+++ b/bin/tools/LogFunctions
@@ -0,0 +1,120 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2017 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# Script
+# LogFunctions
+#
+# Description
+# Miscellaneous functions for running tutorials in a loop and for
+# analyzing the output.
+#
+# Output is normally summarized as 'testLoopReport'
+#
+#------------------------------------------------------------------------------
+
+# logReport
+# Extracts useful info from log file.
+logReport()
+{
+ local logfile=$1
+
+ # logfile is path/to/case/log.application
+ caseName=$(dirname $logfile | sed -e 's/\(.*\)\.\///g')
+ app=$(echo $logfile | sed -e 's/\(.*\)log\.//g')
+ appAndCase="Application $app - case $caseName"
+
+ if grep -q "FOAM FATAL" $logfile
+ then
+ echo "$appAndCase: ** FOAM FATAL ERROR **"
+ return 1
+ fi
+
+ # Check for solution singularity on U equation
+ for eqn in Ux Uy Uz
+ do
+ if grep -q -E "${eqn}[:| ]*solution singularity" $logfile
+ then
+ if [ "$eqn" = Uz ]
+ then
+ # Can only get here if Ux,Uy,Uz all failed
+ echo "$appAndCase: ** Solution singularity **"
+ return 1
+ fi
+ else
+ break
+ fi
+ done
+
+ if grep -q -E "^[\t ]*[Ee]nd" $logfile
+ then
+ # Extract time from this type of content
+ ## ExecutionTime = 60.2 s ClockTime = 63 s --> "60.2 s"
+ completionTime=$(tail -10 $logfile | \
+ sed -n -e '/Execution/{s/^[^=]*=[ \t]*//; s/\( s\) .*$/\1/; p}')
+
+ echo "$appAndCase: completed${completionTime:+ in }$completionTime"
+ else
+ echo "$appAndCase: unconfirmed completion"
+ fi
+}
+
+
+# Collect and analyse all log files
+collectLogs()
+{
+ echo "Collecting log files..." 1>&2
+ rm -f logs testLoopReport > /dev/null 2>&1
+ touch logs testLoopReport
+
+ local appDir log logFiles
+
+ for appDir in *
+ do
+ [ -d $appDir ] || continue
+ echo -n " $appDir..." 1>&2
+
+ logFiles=$(find -L $appDir -name 'log.*' -type f)
+ if [ -n "$logFiles" ]
+ then
+ echo 1>&2
+ else
+ echo " (no logs)" 1>&2
+ continue
+ fi
+
+ # Sort logs by time-stamp
+ for log in $(echo $logFiles | xargs ls -rt)
+ do
+ # Concatenate and summarize logs
+ cat "$log" >> logs 2>/dev/null
+ logReport $log
+ done
+ echo
+ done > testLoopReport
+}
+
+
+removeLogs()
+{
+ echo "Removing backup files"
+
+ find . \( \
+ -name '*~' -o -name '*.bak' \
+ -name core -o -name 'core.[1-9]*' \
+ -name '*.pvs' -o -name '*.foam' -o -name '*.OpenFOAM' \
+ \) -type f -delete
+
+ rm -f logs testLoopReport > /dev/null 2>&1
+}
+
+
+#------------------------------------------------------------------------------
diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions
index 55ab42d175..d9712dea2c 100644
--- a/bin/tools/RunFunctions
+++ b/bin/tools/RunFunctions
@@ -6,26 +6,15 @@
# \\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
-# This file is part of OpenFOAM.
-#
-# OpenFOAM is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with OpenFOAM. If not, see .
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
#
# Script
# RunFunctions
#
# Description
# Miscellaneous functions for running tutorial cases
+#
#------------------------------------------------------------------------------
# The normal locations
diff --git a/tutorials/Allclean b/tutorials/Allclean
index 0eea9fb549..bbaca026e2 100755
--- a/tutorials/Allclean
+++ b/tutorials/Allclean
@@ -1,18 +1,11 @@
#!/bin/sh
-cd ${0%/*} || exit 1 # Run from this directory
+cd ${0%/*} || exit 1 # Run from this directory
+. $WM_PROJECT_DIR/bin/tools/LogFunctions # Tutorial log-file functions
echo "--------"
+removeLogs
+
echo "Cleaning tutorials ..."
-echo "Removing backup files"
-
-find . \( \
- -name '*~' -o -name '*.bak' \
- -name core -o -name 'core.[1-9]*' \
- -name '*.pvs' -o -name '*.OpenFOAM' \
- \) -type f -delete
-
-rm -f logs testLoopReport > /dev/null 2>&1
-
foamCleanTutorials cases
echo "--------"
diff --git a/tutorials/Allrun b/tutorials/Allrun
index 0a731b3fc9..77d185e928 100755
--- a/tutorials/Allrun
+++ b/tutorials/Allrun
@@ -7,26 +7,14 @@
# \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
-# This file is part of OpenFOAM.
-#
-# OpenFOAM is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with OpenFOAM. If not, see .
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
#
# Script
# Allrun
#
# Description
-# Runs tutorial cases and summarizes the outcome as 'testLoopReport'
+# Run tutorial cases and summarize the outcome as 'testLoopReport'
#
#------------------------------------------------------------------------------
cd ${0%/*} || exit 1 # Run from this directory
@@ -43,27 +31,26 @@ options:
-collect Collect logs only. Can be useful for aborted runs.
-help print the usage
-* Runs tutorial cases and summarizes the outcome as 'testLoopReport'
+Run tutorial cases and summarize the outcome as 'testLoopReport'
USAGE
exit 1
}
#------------------------------------------------------------------------------
+unset optCollect
-unset optCollectOnly
-
-# parse options
+# Parse options
while [ "$#" -gt 0 ]
do
case "$1" in
- -h | -help)
+ -h | -help*)
usage
;;
-collect)
- optCollectOnly=true
+ optCollect=true
;;
- -test) # Known options that should be passed through
+ -test) # Known options to pass through
break
;;
-*)
@@ -77,87 +64,13 @@ do
done
#------------------------------------------------------------------------------
+. $WM_PROJECT_DIR/bin/tools/LogFunctions # Tutorial log-file functions
-# logReport
-# Extracts useful info from log file.
-logReport()
-{
- local logfile=$1
-
- # logfile is path/to/case/log.application
- caseName=$(dirname $logfile | sed -e 's/\(.*\)\.\///g')
- app=$(echo $logfile | sed -e 's/\(.*\)log\.//g')
- appAndCase="Application $app - case $caseName"
-
- if grep -q "FOAM FATAL" $logfile
- then
- echo "$appAndCase: ** FOAM FATAL ERROR **"
- return 1
- fi
-
- # Check for solution singularity on U equation
- for eqn in Ux Uy Uz
- do
- if grep -q -E "${eqn}[:| ]*solution singularity" $logfile
- then
- if [ "$eqn" = Uz ]
- then
- # Can only get here if Ux,Uy,Uz all failed
- echo "$appAndCase: ** Solution singularity **"
- return 1
- fi
- else
- break
- fi
- done
-
- if grep -q -E "^[\t ]*[Ee]nd" $logfile
- then
- # Extract time from this type of content
- ## ExecutionTime = 60.2 s ClockTime = 63 s --> "60.2 s"
- completionTime=$(tail -10 $logfile | \
- sed -n -e '/Execution/{s/^[^=]*=[ \t]*//; s/\( s\) .*$/\1/; p}')
-
- echo "$appAndCase: completed${completionTime:+ in }$completionTime"
- else
- echo "$appAndCase: unconfirmed completion"
- fi
-}
-
-if [ -z "$optCollectOnly" ]
+if [ -z "$optCollect" ]
then
- # Recursively run all tutorials
- foamRunTutorials -skipFirst $*
+ foamRunTutorials -skipFirst $* # Run tutorials recursively
fi
-
-# Analyse all log files
-echo "Collecting log files..." 1>&2
-rm -f logs testLoopReport > /dev/null 2>&1
-touch logs testLoopReport
-
-for appDir in *
-do
- [ -d $appDir ] || continue
- echo -n " $appDir..." 1>&2
-
- logs=$(find -L $appDir -name 'log.*' -type f)
- if [ -n "$logs" ]
- then
- echo 1>&2
- else
- echo " (no logs)" 1>&2
- continue
- fi
-
- # Sort logs by time-stamp
- for log in $(echo $logs | xargs ls -rt)
- do
- # Concatenate and summarize logs
- cat "$log" >> logs 2>/dev/null
- logReport $log
- done
- echo
-done > testLoopReport
+collectLogs
#------------------------------------------------------------------------------
diff --git a/tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faBoundary b/tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faBoundary
deleted file mode 100644
index ed1236d475..0000000000
--- a/tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faBoundary
+++ /dev/null
@@ -1,212 +0,0 @@
-/*--------------------------------*- C++ -*----------------------------------*\
-| ========= | |
-| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
-| \\ / O peration | Version: plus |
-| \\ / A nd | Web: www.OpenFOAM.com |
-| \\/ M anipulation | |
-\*---------------------------------------------------------------------------*/
-FoamFile
-{
- version 2.0;
- format ascii;
- class faBoundaryMesh;
- location "constant/faMesh";
- object faBoundary;
-}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-3
-(
- inlet
- {
- type patch;
- edgeLabels List