Commit Graph

50 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
0f17d95410 foamDebugSwitches: Updated for changes in functionObjects 2016-05-06 17:41:56 +01:00
eb5d349242 Rationalize the autoMesh library: autoMesh -> snappyHexMesh 2016-03-01 16:01:42 +00:00
1845e2014d DSMC: Rationalization and addition of mapping support 2015-02-20 17:24:14 +00:00
945c4c3d18 fluidThermo: Add compressibleTransportModel as base-class
Needed to create generic compressible turbulence model library
2015-02-17 17:25:26 +00:00
2aec249647 Updated the whole of OpenFOAM to use the new templated TurbulenceModels library
The old separate incompressible and compressible libraries have been removed.

Most of the commonly used RANS and LES models have been upgraded to the
new framework but there are a few missing which will be added over the
next few days, in particular the realizable k-epsilon model.  Some of
the less common incompressible RANS models have been introduced into the
new library instantiated for incompressible flow only.  If they prove to
be generally useful they can be templated for compressible and
multiphase application.

The Spalart-Allmaras DDES and IDDES models have been thoroughly
debugged, removing serious errors concerning the use of S rather than
Omega.

The compressible instances of the models have been augmented by a simple
backward-compatible eddyDiffusivity model for thermal transport based on
alphat and alphaEff.  This will be replaced with a separate run-time
selectable thermal transport model framework in a few weeks.

For simplicity and ease of maintenance and further development the
turbulent transport and wall modeling is based on nut/nuEff rather than
mut/muEff for compressible models so that all forms of turbulence models
can use the same wall-functions and other BCs.

All turbulence model selection made in the constant/turbulenceProperties
dictionary with RAS and LES as sub-dictionaries rather than in separate
files which added huge complexity for multiphase.

All tutorials have been updated so study the changes and update your own
cases by comparison with similar cases provided.

Sorry for the inconvenience in the break in backward-compatibility but
this update to the turbulence modeling is an essential step in the
future of OpenFOAM to allow more models to be added and maintained for a
wider range of cases and physics.  Over the next weeks and months more
turbulence models will be added of single and multiphase flow, more
additional sub-models and further development and testing of existing
models.  I hope this brings benefits to all OpenFOAM users.

Henry G. Weller
2015-01-21 19:21:39 +00:00
951c8436aa ENH: Applying Gijs' patch: Update header documentation for utilities 2013-02-21 10:54:34 +00:00
d53245c833 Multiphase: Update all solvers to accommodate the split between twoPhaseMixture and incompressibleTwoPhaseMixture 2013-02-07 12:31:00 +00:00
d1c3327d20 COMP: foamDebugSwithces: extraneous lib 2012-10-26 14:39:39 +01:00
297c6c721d COMP: wallHeatFlux: removed extraneous libraries 2012-10-04 15:03:41 +01:00
830c0ef382 Thermodynamyics: rename basicThermo -> fluidThermo and veryBasicThermo -> basicThermo 2012-08-23 14:13:13 +01:00
8f4b56b3c3 Thermodynamics: Rationalised the base classes for fluid and solid thermo.
New base class for fluid and solid thermo: veryBasicThermo
Base class for fluid thermo: basicThermo (derived from veryBasicThermo)
Base class for solid thermo: solidThermo (derived from veryBasicThermo)

Note in next commit basicThermo -> fluidThermo, veryBasicThermo -> basicThermo
2012-08-23 11:39:02 +01:00
627991bfc4 ENH: deprecated dieselSpray library and related solvers/deps 2011-11-08 16:18:59 +00:00
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
227f440496 BUG: foamDebubSwitches: use findEtcFiles 2011-07-07 10:25:16 +01:00
49285512c7 etc/controlDict: add support for merging etc/controlDict with user-specialised versions 2011-07-06 12:40:06 +01:00
ba6f1c4dd4 BUG: Make/options: tabulatedWallFunctions not yet built. 2011-06-06 12:54:25 +01:00
c047319296 BUG: libs not available to debug switches at this point in build 2011-06-03 11:00:22 +01:00
1a0095489b gcc-4.6.0 warnings: removed initialised but unused variables 2011-04-06 22:55:47 +01:00
e3c4a02b8c COMP: removed extrudeModel and MGridGenGAMGAgglomeration from foamDebugSwitches 2011-02-25 17:21:42 +00:00
6cf70a7d52 Removed all components relating to the unsupported error estimation code 2011-02-19 18:16:59 +00:00
20ec599400 COMP: removed combustionModels lib - not built yet 2011-02-16 12:08:47 +00:00
30bad1a72a COMP: removed EulerianInterfacialModels lib - not built yet 2011-02-16 11:21:50 +00:00
0ad764baa5 ENH: foamDebugSwitches : added new libraries 2011-02-14 14:54:32 +00:00
6c1e58605b ENH: moved thermo/pdfs->lagrangian/distributionModels 2011-02-02 09:28:44 +00:00
1a263e3f0e STYLE: re-located elemental thermo properties 2011-02-01 17:03:15 +00:00
9da43d1558 STYLE: consistency - moved radiation->radiation models 2011-02-01 16:00:27 +00:00
eaef8d482b STYLE: Updated 1991 start copyright year to 2004 2011-01-14 16:08:00 +00:00
099cc39e2e Revert "STYLE: 2011 copyright date."
This reverts commit b18f6cc1ce.
2011-01-05 18:24:29 +00:00
b18f6cc1ce STYLE: 2011 copyright date. 2011-01-05 11:14:26 +00:00
262e6be2f8 ENH: new basicSolidThermo, solid -> pointSolid and solidMixture ->
pointSolidMixture. chtMultiRegion tutorials and solvers
2010-12-08 16:20:43 +00:00
249c15c179 COMP: foamDebugSwitches missing library to resolve alphaFvContactAngle 2010-10-01 18:02:22 +01:00
012494fdb5 STYLE: Fixing code style requirements for all apps.
Exception: applyWallFunctionBoundaryConditions.C cannot split #include
directives.
2010-07-27 15:27:05 +01:00
d29c438657 STYLE: use url for FSF license instead of postal address, switch to GPL v3 2010-03-29 14:07:56 +02:00
0d49e4711c Begin code refactoring of third-party file formats. 2010-01-15 14:35:50 +01:00
6e3ed58ae5 Merge commit 'OpenCFD/master' into olesenm 2009-12-03 16:40:37 +01:00
4eb40f90ee link all libraries 2009-12-02 16:41:28 +00:00
587401643c add text wrapping to the argList::printUsage output 2009-12-03 16:16:56 +01:00
58b7e64185 Use argList::addOption, argList::addBoolOption (almost) everywhere
- ensure that the standard options (eg, from timeSelector) also have
  some usage information
2009-12-03 13:32:12 +01:00
897baf81c0 blockMesh: most mesh data are now demand-driven
- Unless the points(), cells(), patches() methods are called, the classes
  should know maintain a lightweight representation for as long as possible.

- bugfix: old-code used xferMove() instead of xferCopy() when creating the
  topology mesh - causing const pointField& to break if the code order was
  changed

- relocate blockMesh from src/meshing -> src/mesh
2009-09-17 23:45:52 +02:00
c3c36e6b16 updated name change of combustion->reaction lib 2009-06-10 19:37:52 +01:00
d1295da31f adjust solvers and utilities to use new argList methods
- also drop various unused time options from src/OpenFOAM/include
2009-05-19 20:21:50 +02:00
6ecdf4fc41 updated DebugSwitches, surfaceWriter
- added obj surfaceWriter
- don't bother with prepended field names on obj and stl surfaceWriter.
  It fills the disk and suggests differences where there are none.
2009-03-09 15:37:54 +01:00
28b200bcd9 update copyrights for 2009 2008-12-31 19:01:56 +01:00
c9148dd1dd Minor rearrangement. 2008-07-23 17:06:55 +01:00
02cabc3cf2 updated Copyright (C) \d+-2008 OpenCFD Ltd. 2008-06-25 15:01:46 +02:00
b2b5ace228 Corrected for turbulence library name-change 2008-06-20 21:34:05 +01:00
2b01d2f5da consistency update - (in)compressibleTurbulenceModels -> (in)compressibleRASmodels 2008-06-18 10:06:06 +01:00
6b361fc908 New fvMotionSolver. Small fix to foamDebugSwitches 2008-05-02 08:50:14 +01:00
3170c7c0c9 Creation of OpenFOAM-dev repository 15/04/2008 2008-04-15 18:56:58 +01:00