mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
TUT: relocate tutorial log analysis as functions for reuse in modules
- removed some unneeded tutorial files
This commit is contained in:
@ -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 <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# CleanFunctions
|
||||
@ -158,6 +146,7 @@ cleanFaMesh ()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
cleanApplication()
|
||||
{
|
||||
echo "Cleaning application $PWD"
|
||||
|
||||
120
bin/tools/LogFunctions
Normal file
120
bin/tools/LogFunctions
Normal file
@ -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
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# LogFunctions
|
||||
#
|
||||
# Description
|
||||
# Miscellaneous functions for running tutorials in a loop and for
|
||||
# analyzing the output.
|
||||
#
|
||||
# Output is normally summarized as 'testLoopReport'
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# logReport <logfile>
|
||||
# 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
|
||||
}
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -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 <http://www.gnu.org/licenses/>.
|
||||
# This file is part of OpenFOAM, licensed under GNU General Public License
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Script
|
||||
# RunFunctions
|
||||
#
|
||||
# Description
|
||||
# Miscellaneous functions for running tutorial cases
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# The normal locations
|
||||
|
||||
Reference in New Issue
Block a user