Commit Graph

472 Commits

Author SHA1 Message Date
e4dc50dcb0 postProcessing: Replaced 'foamCalc' and the 'postCalc' utilities
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.
2016-05-28 18:58:48 +01:00
ee0aff67ce etc/codeTemplates/functionObject: Updated to correspond to the new functionObject structure 2016-05-15 21:47:18 +01:00
5469e21fe2 execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option 2016-05-09 17:02:00 +01:00
891b2a0f8b functionObjects: Moved functionObjects namespace documentation into functionObject.H 2016-05-04 13:56:36 +01:00
aa89254c79 foamNewFunctionObject: script to create template code for a new function object
Run foamNewFunctionObject -h for details
2016-03-22 17:40:03 +00:00
2284dab887 paraFoam: Updated instructions to build the reader modules
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2027
2016-03-16 09:24:25 +00:00
80c3bcff48 bin/tools/foamConfigurePaths: foamCompiler -> WM_COMPILER_TYPE 2016-03-09 09:05:07 +00:00
4bc77e6aff Sprucing up the tutorials folder and adding -dict to "collapseEdges"
Patch provided by Bruno Santos
Resolves patch application request http://www.openfoam.org/mantisbt/view.php?id=2015
2016-03-06 19:06:44 +00:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
d2d007f00e foamRunTutorials: Removed redundant code and simplified 2016-02-15 16:36:58 +00:00
cfa7678ba8 foamRunTutorials: Rationalized support for the "-test" option
RunFunctions: Added "isTest()" argument parsing function
tutorials: Updated Allrun scripts to propagate the "-test" option
tutorials: Removed the lower Alltest scripts and updated the Allrun to
    use the "isTest()" function to handle test-specific operation
2016-02-15 15:49:05 +00:00
45253d6204 Update header 2016-02-10 16:20:46 +00:00
f9d61d7e3c Updates for changes to etc/config structure 2016-02-10 16:20:19 +00:00
1507178a1b RunFunctions::getNumberOfProcessors: Added support for files included in decomposeParDict 2016-02-08 10:51:49 +00:00
7ec6f28c49 Added support for ParaView-5.0.0
PV4FoamReaders: Updated to build with ParaView-5.0.0
paraFoam: Updated to load PV4FoamReaders for ParaView-5.0.0

Currently this is experimental but if it becomes clear that ParaView-4
and ParaView-5 are and will remain consistent with respect to readers
the plan is to rename

PV4 -> PV

or

PV4 -> PV45 if it is assumed that PV6 may need to be different.
2016-02-08 10:03:55 +00:00
b3d47f0423 bin/tools/RunFunctions: runParallel now obtains the number of processors from numberOfSubdomains
in decomposeParDict.

This default number of processors may be overridden by the new "-np"
option to runParallel which must be specified before the application
name e.g.:

runParallel -np 4 pisoFoam
2016-01-27 14:19:25 +00:00
392310db22 Update headers 2016-01-11 13:02:52 +00:00
f19f48132e Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
1eca13aeb9 CleanFunctions: Check the constant directory exists before cleaning it 2016-01-09 23:09:08 +00:00
533bae38b2 foamCreateVideo: add option to specify first image number 2016-01-08 17:49:39 +00:00
947f3fea50 foamMonitor: change format to support old gnuplot versions
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1952
2015-12-16 20:26:25 +00:00
aacaa9c0d7 foamSequenceVTKFiles: Avoid the -s and -a options for basename
Only recent GNU/Linux distributions support this functionality
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1947
2015-12-11 14:21:02 +00:00
40ff6c30e3 Updated header 2015-12-11 13:12:19 +00:00
8899f9ec28 foamSequenceVTKFiles, mpirunDebug: Correct call to "usage"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1946
2015-12-11 13:11:54 +00:00
a3e555e72c foamNewBC: script to create template code for a new boundary condition
Run foamNewBC -h for details
2015-12-04 14:33:56 +00:00
e356211140 foamNewApp: script to create template for a new application
Creates a directory containing source .C file and Make directory
Will deprecate foamNewSource with App argument in due course
2015-12-04 14:20:23 +00:00
820529b0e6 foamInstallationTest: Updated help message 2015-12-03 08:40:56 +00:00
26a2c1778a RunFunctions: Added -append and -overwrite options
-append: append to log file
-overwrite: overwrite log file
Original patch provided by Timm Severin
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1919
2015-11-19 15:48:06 +00:00
55f7d50be1 FreeBSD sed: ensure that a "-e" option immediately follows "-i" 2015-11-14 17:03:03 +00:00
d98136e122 tutorials: Removed unnecessary "boundary" files 2015-11-13 20:05:37 +00:00
b5e94ef311 foamListSourceFiles: Filter debian build directory if it is at the top-level 2015-10-26 17:56:38 +00:00
1d8ef28cb8 foamEtcFile: Add support for openfoamdev 2015-10-26 17:35:27 +00:00
3b9a90f249 Update header 2015-10-22 15:00:25 +01:00
0917175ed8 foamListSourceFiles: Do not filter-out "debian" directories.
Fix proposed by Bruno Santos.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1770
2015-10-22 14:59:06 +01:00
19dcf83b6a paraFoam: add support for system/blockMeshDict with the -block option
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1803
2015-08-01 18:36:00 +01:00
fe1477546e foamCreateVideo: fix framerate option with avconv 2015-07-14 09:28:03 +01:00
b2968f3bda foamCreateVideo: enabled to use avconv and output WebM format
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1722
2015-07-12 12:58:50 +01:00
7c5a34d51c paraFoam: added option to open ParaView
when OpenFOAM-format case files are not located
2015-07-07 10:56:11 +01:00
0723207431 Script to monitor data with Gnuplot from time-value(s) graphs
e.g. data files written by functionObjects
Attempts to interpret automatically the format of time-data files
Works successfully with majority of time-data output, e.g. forceCoeffs,
but will be unsuccesful on files with inconsistent output format
2015-05-15 11:30:24 +01:00
03b6f9e379 Script to help load VTK images into ParaView as a sequence for animation
Creates symbolic links to all VTK files in a post-processing directory
Links form a sequence like name.0000.vtk, name.0001.vtk, etc.
Paraview recognises link names as a sequence which can be animated.
The sequence of links can be used to create a video from the images.
2015-05-15 11:22:12 +01:00
41818290b4 Script to create an MPEG-4 (.mp4) video from PNG-format images 2015-05-15 11:13:25 +01:00
cca5fe4e0f Script to clone an OpenFOAM case including system, constant and one time directory.
Time directory is first time directory (0) by default
Alternatively the user can specify the latest time directory
Requires the latest (2.3.x) foamListTimes utility
2015-05-15 10:05:45 +01:00
6a4fd43ee0 Update header 2015-05-14 12:13:22 +01:00
e734952e79 bin/tools/RunFunctions: handle tabs and spaces
when retrieving entries from dictionaries

Patch supplied by Timm Severin
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1689
2015-05-14 12:11:44 +01:00
6b7522ea9a foamJob: Add -append option to append to the log-file rather than overwriting
Thanks to alexeym for patch
Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=1655
2015-04-27 10:25:04 +01:00
37afeb5ef9 Updated header 2015-02-19 19:07:14 +00:00
c6874965f8 tutorials: rationalized log 2015-02-19 08:39:32 +00:00
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
156fd4dcc6 Doxygen: Updated scripts and css files to process OpenFOAM header files more robustly
and generate cleaner HTML files.
Thanks to Bruno Santos for various fixes and improvements.
Resolves bug reports:
    http://www.openfoam.org/mantisbt/view.php?id=1516
    http://www.openfoam.org/mantisbt/view.php?id=1016
    http://www.openfoam.org/mantisbt/view.php?id=1512
2015-02-09 18:06:35 +00:00