Commit Graph

164 Commits

Author SHA1 Message Date
c33e34a532 foamInfoExec: Time listing functionality superseded by foamListTimes 2016-06-03 19:23:27 +01:00
8b672f0f1a 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
a5ed7f57fc etc/codeTemplates/functionObject: Updated to correspond to the new functionObject structure 2016-05-15 21:47:18 +01:00
3be1d14af8 execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option 2016-05-09 17:02:00 +01:00
97668c21a3 functionObjects: Moved functionObjects namespace documentation into functionObject.H 2016-05-04 13:56:36 +01:00
59f7f1ef0e foamNewFunctionObject: script to create template code for a new function object
Run foamNewFunctionObject -h for details
2016-03-22 17:40:03 +00:00
6ee4cad870 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
41035d1643 bin/tools/foamConfigurePaths: foamCompiler -> WM_COMPILER_TYPE 2016-03-09 09:05:07 +00:00
499c221df4 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
fa0656c358 scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
603b513b20 foamRunTutorials: Removed redundant code and simplified 2016-02-15 16:36:58 +00:00
7c762bb90d 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
f6fe8a8fbe Update header 2016-02-10 16:20:46 +00:00
f48d94b4a6 Updates for changes to etc/config structure 2016-02-10 16:20:19 +00:00
5c24ee4091 RunFunctions::getNumberOfProcessors: Added support for files included in decomposeParDict 2016-02-08 10:51:49 +00:00
cfb48464b5 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
20204cb468 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
e029c7c1a3 Update headers 2016-01-11 13:02:52 +00:00
a56ab5f863 Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
c0e81a3674 CleanFunctions: Check the constant directory exists before cleaning it 2016-01-09 23:09:08 +00:00
de7ffbe62e foamCreateVideo: add option to specify first image number 2016-01-08 17:49:39 +00:00
668edf8465 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
71f13ec9dd 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
5c658dbfa2 Updated header 2015-12-11 13:12:19 +00:00
65245da016 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
6b67e39136 foamNewBC: script to create template code for a new boundary condition
Run foamNewBC -h for details
2015-12-04 14:33:56 +00:00
10ded8a669 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:21:37 +00:00
fa74b178c2 foamInstallationTest: Updated help message 2015-12-03 08:40:56 +00:00
36fe080bc7 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
e8eb1707b5 FreeBSD sed: ensure that a "-e" option immediately follows "-i" 2015-11-14 17:03:03 +00:00
d0e45416e0 tutorials: Removed unnecessary "boundary" files 2015-11-13 20:05:37 +00:00
07ee8fcc36 foamListSourceFiles: Filter debian build directory if it is at the top-level 2015-10-26 17:56:38 +00:00
aa4ed59ba3 foamEtcFile: Add support for openfoamdev 2015-10-26 17:35:27 +00:00
c08cbc5871 Update header 2015-10-22 15:00:25 +01:00
fb659522bb 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
75e6691e95 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
48b96926c6 foamCreateVideo: fix framerate option with avconv 2015-07-14 09:28:03 +01:00
45abf98521 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
37cde0ce8b paraFoam: added option to open ParaView
when OpenFOAM-format case files are not located
2015-07-07 10:56:11 +01:00
a95250995a 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
457288b585 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
29394db3d3 Script to create an MPEG-4 (.mp4) video from PNG-format images 2015-05-15 11:13:25 +01:00
966c1590b2 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
aec185cbdc Update header 2015-05-14 12:13:22 +01:00
5d5d41e940 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
4c20de71bb 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
514f905758 Updated header 2015-02-19 19:07:14 +00:00
6be514684a tutorials: rationalized log 2015-02-19 08:39:32 +00:00
f58fd14271 Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00