with the more general and flexible 'postProcess' utility and '-postProcess' solver option Rationale --------- Both the 'postProcess' utility and '-postProcess' solver option use the same extensive set of functionObjects available for data-processing during the run avoiding the substantial code duplication necessary for the 'foamCalc' and 'postCalc' utilities and simplifying maintenance. Additionally consistency is guaranteed between solver data processing and post-processing. The functionObjects have been substantially re-written and generalized to simplify development and encourage contribution. Configuration ------------- An extensive set of simple functionObject configuration files are provided in OpenFOAM-dev/etc/caseDicts/postProcessing and more will be added in the future. These can either be copied into '<case>/system' directory and included into the 'controlDict.functions' sub-dictionary or included directly from 'etc/caseDicts/postProcessing' using the '#includeEtc' directive or the new and more convenient '#includeFunc' directive which searches the '<etc>/caseDicts/postProcessing' directories for the selected functionObject, e.g. functions { #includeFunc Q #includeFunc Lambda2 } '#includeFunc' first searches the '<case>/system' directory in case there is a local configuration. Description of #includeFunc --------------------------- Specify a functionObject dictionary file to include, expects the functionObject name to follow (without quotes). Search for functionObject dictionary file in user/group/shipped directories. The search scheme allows for version-specific and version-independent files using the following hierarchy: - \b user settings: - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing - ~/.OpenFOAM/caseDicts/postProcessing - \b group (site) settings (when $WM_PROJECT_SITE is set): - $WM_PROJECT_SITE/\<VERSION\>/caseDicts/postProcessing - $WM_PROJECT_SITE/caseDicts/postProcessing - \b group (site) settings (when $WM_PROJECT_SITE is not set): - $WM_PROJECT_INST_DIR/site/\<VERSION\>/caseDicts/postProcessing - $WM_PROJECT_INST_DIR/site/caseDicts/postProcessing - \b other (shipped) settings: - $WM_PROJECT_DIR/etc/caseDicts/postProcessing An example of the \c \#includeFunc directive: \verbatim #includeFunc <funcName> \endverbatim postProcess ----------- The 'postProcess' utility and '-postProcess' solver option provide the same set of controls to execute functionObjects after the run either by reading a specified set of fields to process in the case of 'postProcess' or by reading all fields and models required to start the run in the case of '-postProcess' for each selected time: postProcess -help Usage: postProcess [OPTIONS] options: -case <dir> specify alternate case directory, default is the cwd -constant include the 'constant/' dir in the times list -dict <file> read control dictionary from specified location -field <name> specify the name of the field to be processed, e.g. U -fields <list> specify a list of fields to be processed, e.g. '(U T p)' - regular expressions not currently supported -func <name> specify the name of the functionObject to execute, e.g. Q -funcs <list> specify the names of the functionObjects to execute, e.g. '(Q div(U))' -latestTime select the latest time -newTimes select the new times -noFunctionObjects do not execute functionObjects -noZero exclude the '0/' dir from the times list, has precedence over the -withZero option -parallel run in parallel -region <name> specify alternative mesh region -roots <(dir1 .. dirN)> slave root directories for distributed running -time <ranges> comma-separated time ranges - eg, ':10,20,40:70,1000:' -srcDoc display source code in browser -doc display application documentation in browser -help print the usage pimpleFoam -postProcess -help Usage: pimpleFoam [OPTIONS] options: -case <dir> specify alternate case directory, default is the cwd -constant include the 'constant/' dir in the times list -dict <file> read control dictionary from specified location -field <name> specify the name of the field to be processed, e.g. U -fields <list> specify a list of fields to be processed, e.g. '(U T p)' - regular expressions not currently supported -func <name> specify the name of the functionObject to execute, e.g. Q -funcs <list> specify the names of the functionObjects to execute, e.g. '(Q div(U))' -latestTime select the latest time -newTimes select the new times -noFunctionObjects do not execute functionObjects -noZero exclude the '0/' dir from the times list, has precedence over the -withZero option -parallel run in parallel -postProcess Execute functionObjects only -region <name> specify alternative mesh region -roots <(dir1 .. dirN)> slave root directories for distributed running -time <ranges> comma-separated time ranges - eg, ':10,20,40:70,1000:' -srcDoc display source code in browser -doc display application documentation in browser -help print the usage The functionObjects to execute may be specified on the command-line using the '-func' option for a single functionObject or '-funcs' for a list, e.g. postProcess -func Q postProcess -funcs '(div(U) div(phi))' In the case of 'Q' the default field to process is 'U' which is specified in and read from the configuration file but this may be overridden thus: postProcess -func 'Q(Ua)' as is done in the example above to calculate the two forms of the divergence of the velocity field. Additional fields which the functionObjects may depend on can be specified using the '-field' or '-fields' options. The 'postProcess' utility can only be used to execute functionObjects which process fields present in the time directories. However, functionObjects which depend on fields obtained from models, e.g. properties derived from turbulence models can be executed using the '-postProcess' of the appropriate solver, e.g. pisoFoam -postProcess -func PecletNo or sonicFoam -postProcess -func MachNo In this case all required fields will have already been read so the '-field' or '-fields' options are not be needed. Henry G. Weller CFD Direct Ltd.
187 lines
4.8 KiB
Bash
187 lines
4.8 KiB
Bash
#----------------------------------*-sh-*--------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# 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/>.
|
|
#
|
|
# File
|
|
# etc/config.csh/unset
|
|
#
|
|
# Description
|
|
# Clear as many OpenFOAM environment settings as possible
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Clean standard environment variables (PATH, LD_LIBRARY_PATH, MANPATH)
|
|
|
|
unset foamClean
|
|
if ( $?WM_PROJECT_DIR ) then
|
|
set foamClean=$WM_PROJECT_DIR/bin/foamCleanPath
|
|
if ( ! -f "$foamClean" || ! -x "$foamClean" ) unset foamClean
|
|
endif
|
|
|
|
# The old dirs to be cleaned from the environment variables
|
|
set foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \
|
|
$HOME/$WM_PROJECT/$LOGNAME $WM_PROJECT_SITE \
|
|
$FOAM_SITE_APPBIN $FOAM_SITE_LIBBIN $ParaView_DIR"
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset WM_* environment variables
|
|
|
|
unsetenv WM_ARCH
|
|
unsetenv WM_ARCH_OPTION
|
|
unsetenv WM_CC
|
|
unsetenv WM_CFLAGS
|
|
unsetenv WM_COMPILER
|
|
unsetenv WM_COMPILER_TYPE
|
|
unsetenv WM_COMPILER_LIB_ARCH
|
|
unsetenv WM_COMPILE_OPTION
|
|
unsetenv WM_CXX
|
|
unsetenv WM_CXXFLAGS
|
|
unsetenv WM_DIR
|
|
unsetenv WM_HOSTS
|
|
unsetenv WM_LABEL_OPTION
|
|
unsetenv WM_LABEL_SIZE
|
|
unsetenv WM_LDFLAGS
|
|
unsetenv WM_LINK_LANGUAGE
|
|
unsetenv WM_MPLIB
|
|
unsetenv WM_NCOMPPROCS
|
|
unsetenv WM_OPTIONS
|
|
unsetenv WM_OSTYPE
|
|
unsetenv WM_PRECISION_OPTION
|
|
unsetenv WM_PROJECT
|
|
unsetenv WM_PROJECT_DIR
|
|
unsetenv WM_PROJECT_INST_DIR
|
|
unsetenv WM_PROJECT_SITE
|
|
unsetenv WM_PROJECT_USER_DIR
|
|
unsetenv WM_PROJECT_VERSION
|
|
unsetenv WM_SCHEDULER
|
|
unsetenv WM_THIRD_PARTY_DIR
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset FOAM_* environment variables
|
|
|
|
unsetenv FOAM_APPBIN
|
|
unsetenv FOAM_APP
|
|
unsetenv FOAM_EXT_LIBBIN
|
|
unsetenv FOAM_CODE_TEMPLATES
|
|
unsetenv FOAM_INST_DIR
|
|
unsetenv FOAM_JOB_DIR
|
|
unsetenv FOAM_LIBBIN
|
|
unsetenv FOAM_MPI
|
|
unsetenv FOAM_RUN
|
|
unsetenv FOAM_SETTINGS
|
|
unsetenv FOAM_SIGFPE
|
|
unsetenv FOAM_SIGNAN
|
|
unsetenv FOAM_SITE_APPBIN
|
|
unsetenv FOAM_SITE_LIBBIN
|
|
unsetenv FOAM_SOLVERS
|
|
unsetenv FOAM_SRC
|
|
unsetenv FOAM_TUTORIALS
|
|
unsetenv FOAM_USER_APPBIN
|
|
unsetenv FOAM_USER_LIBBIN
|
|
unsetenv FOAM_UTILITIES
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset MPI-related environment variables
|
|
|
|
unsetenv MPI_ARCH_PATH
|
|
unsetenv MPI_BUFFER_SIZE
|
|
unsetenv OPAL_PREFIX
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Unset Ensight/ParaView-related environment variables
|
|
|
|
unsetenv ENSIGHT9_READER
|
|
unsetenv CMAKE_HOME
|
|
unsetenv ParaView_DIR
|
|
unsetenv ParaView_INCLUDE_DIR
|
|
unsetenv ParaView_MAJOR
|
|
unsetenv ParaView_VERSION
|
|
unsetenv PV_PLUGIN_PATH
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup environment
|
|
# PATH, LD_LIBRARY_PATH, MANPATH
|
|
|
|
if ( $?foamClean ) then
|
|
|
|
set cleaned=`$foamClean "$PATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv PATH $cleaned
|
|
|
|
if ($?LD_LIBRARY_PATH) then
|
|
set cleaned=`$foamClean "$LD_LIBRARY_PATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv LD_LIBRARY_PATH $cleaned
|
|
|
|
if ( ${%LD_LIBRARY_PATH} == 0 ) unsetenv LD_LIBRARY_PATH
|
|
endif
|
|
|
|
if ($?MANPATH) then
|
|
set cleaned=`$foamClean "$MANPATH" "$foamOldDirs"`
|
|
if ( $status == 0 ) setenv MANPATH $cleaned
|
|
|
|
if ( ${%MANPATH} == 0 ) unsetenv MANPATH
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
unset cleaned foamClean foamOldDirs
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Cleanup aliases
|
|
|
|
unalias wmSet
|
|
unalias wm64
|
|
unalias wm32
|
|
unalias wmSP
|
|
unalias wmDP
|
|
|
|
unalias wmUnset
|
|
|
|
unalias wmSchedOn
|
|
unalias wmSchedOff
|
|
unalias foamPV
|
|
|
|
unalias src
|
|
unalias lib
|
|
unalias run
|
|
unalias foam
|
|
unalias foamsrc
|
|
unalias foamfv
|
|
unalias app
|
|
unalias util
|
|
unalias sol
|
|
unalias tut
|
|
|
|
unalias foamApps
|
|
unalias foamSol
|
|
unalias foamTuts
|
|
unalias foamUtils
|
|
unalias foam3rdParty
|
|
unalias foamSite
|
|
|
|
|
|
#------------------------------------------------------------------------------
|