Commit Graph

123 Commits

Author SHA1 Message Date
Henry Weller
482869eea4 CGAL: Upgraded to 4.8 2016-05-29 22:27:46 +01:00
Henry Weller
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
Henry Weller
be2ceff465 etc/config.*/aliases: Renamed aliases to be less SHOUTY and confusing 2016-05-23 18:47:28 +01:00
Henry Weller
248ab45998 Updates to script documentation
Patch contributed by Bruno Santos
Resolves text report http://bugs.openfoam.org/view.php?id=2089
2016-05-15 18:12:26 +01:00
Henry Weller
7389969e94 etc/config.*/settings: Remove unnecessary $WM_COMPILE_OPTION from $FOAM_EXT_LIBBIN
Simplified the directory structure in ThirdParty-dev/platforms
2016-05-11 14:37:07 +01:00
Henry Weller
f779557d38 etc/config.*/unset: Updated for changes in foamOldDirs
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 23:37:33 +01:00
Henry Weller
ca3efa5776 etc/config.csh: Capitalized comments 2016-05-05 15:52:05 +01:00
Henry Weller
ce81c49d2e etc/bashrc, etc/cshrc: Filter $WM_PROJECT_DIR from paths rather than $FOAM_INST_DIR
Additionally filter $ParaView_DIR from paths in config.sh/paraview and config.csh/paraview

Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 15:37:00 +01:00
Henry Weller
1c35f1a505 Updated handling of the ParaView installation path
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2034
2016-03-30 19:26:01 +01:00
Henry Weller
c28a0c0d94 etc/cshrc, etc/config.csh: foamCompiler -> WM_COMPILER_TYPE
for consistency with etc/bashrc and etc/config.sh

See commit 4409a0ea5a
2016-03-09 09:05:35 +00:00
Mark Olesen
b4997ae091 CONFIG: only need one library variant for third-party openmpi
- in 3rd-party we always build into lib$WM_COMPILER_LIB_ARCH and
  thus only need this one in LD_LIBRARY_PATH.
2016-06-21 12:23:44 +02:00
Mark Olesen
b2b4123164 STYLE: minor config file details
- move unset mpi buffer size from config.csh/settings -> config.csh/mpi

- wmUNSET now also unalias wmREFRESH

Note: unsetenv WM_COMPILER_TYPE in csh variant?

- drop reference to paraview-3 in config files.
  Cannot say anything definite about support for versions
  this old (2012)
2016-06-17 19:56:19 +02:00
Mark Olesen
c740656eb4 ENH: replace SOURCE_CGAL_VERSIONS_ONLY workaround (fixes #148)
- replace with an alternative workaround.

  Unset the _foamAddLib function prior to sourcing config.sh/CGAL:

  - LD_LIBRARY_PATH will not be adjusted.
  - cgal_version/boost_version variables will be retained.

Note: for ThirdParty builds, it is important that the boost and CGAL
paths are added into LD_LIBRARY_PATH even if before they are created.
This ensures that the OpenFOAM environment is functional after the
build.

The '*-none' and '*-system' specifications can still be used to avoid
setting them at all.
2016-06-17 16:53:14 +02:00
Mark Olesen
97943ed819 COMP: improve robustness and warning messages when building paraview plugins 2016-06-17 09:31:41 +02:00
Mark Olesen
5ac7a846ed CONFIG: adjust csh compiler settings to be closer to sh version
- makes it easier to ensure consistent setups
2016-06-16 17:22:30 +02:00
Mark Olesen
bbf20318e0 ENH: support use of system gmp/mpfr/mpc with ThirdParty gcc
- not previously possible to configure a third-party gcc
  with system gmp/mpfr/mpc.
  This makes it easier to switch between compilers for testing.

- use system libraries by default
2016-06-16 16:49:28 +02:00
Mark Olesen
62f634c014 BUG: missing library arch on 3rd party gmp/mpfr/mpc paths issue #148
STYLE: drop conditional check on mpc.

- was for older gcc, but is a requisite for gcc >= 4.5
2016-06-16 15:54:06 +02:00
Mark Olesen
d5d0174b01 CONFIG: adjust for updated ThirdParty
- also update settings to include newer compiler versions
2016-06-14 10:46:20 +02:00
andy
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
Henry Weller
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
0326cbbd57 etc/config.*/paraview: Set ParaView-5.0.0 as the default for OpenFOAM-dev
to encourage testing and feedback
2016-02-12 14:28:12 +00:00
Henry Weller
9a7c6287a8 etc/config.*: Separate MPI settings into separate files and upgrade OpenMPI to 10.0.2 2016-02-10 20:46:24 +00:00
Henry Weller
1193903d8d OpenFOAM-dev/etc: separated scripts for bash and csh into separate directories
etc/config.sh and etc/config.csh

This structure is more convenient to add support for other shells, e.g. zsh, fish etc.

Resolves feature request to simplify support for other shells in
http://www.openfoam.org/mantisbt/view.php?id=1232
2016-02-10 10:22:25 +00:00