Commit Graph

61 Commits

Author SHA1 Message Date
aa6b835104 ENH: use fileName::nameLessExt() instead of fileName::name(bool)
- the purpose is more explicit, without needing to check documentation
  about what the bool parameter means.

STYLE: improve formatting of fileName documentation
2017-03-10 11:49:56 +01:00
9077098935 ENH: provide string removeStart, removeEnd convenience methods 2017-03-10 11:39:40 +01:00
49d0b7552e STYLE: use initializer_list syntax when building system command 2017-03-10 10:34:37 +01:00
a3ef5cd137 Merge branch 'feature-chunkingComms' into 'develop'
Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.

Tested:
- with maxCommsSize 0 produces exactly same result as plus.develop
- compiles with label64
- with maxCommsSize e.g. 3 produces exactly same result as plus.develop
- with maxCommsSize=0 exactly the same messages (with Pstream::debug = 1) as plus.develop

See merge request !85
2016-12-14 15:18:42 +00:00
e453f0bf02 ENH: Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.
This is controlled by the setting maxCommsSize in etc/controlDict which
specifies the max number of bytes per exchange. If set to <= 0 it
is ignored. This max size of messages is important when doing e.g.
load balancing which can send over whole meshes.
2016-12-12 17:32:24 +00:00
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
f281f77e4a Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
14a0a94c01 dlLibraryTable: Add support for library path expansion
Patch contributed by Mattijs Janssens
Resolves patch request http://bugs.openfoam.org/view.php?id=2195
2016-08-16 16:12:19 +01:00
58f905ff70 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
e2935fa680 Merge branch 'fix-systemcall' into 'develop'
replace system() call with vfork/exec combination (issue #185)

Tested systemCall function object, dynamicCode, but should be rechecked with IB+openmpi
@Prashant

See merge request !55
2016-07-26 15:26:00 +01:00
586b7ca30e STYLE: codedBase: indentation 2016-07-18 15:18:40 +01:00
8bb78dda60 ENH: provide a vfork/exec version of system (issue #185)
The normal library system() command uses 'fork', which causes
problems on IB+OPENMPI.

STYLE: add Foam:: qualifier to system calls to make them easier to spot.
2016-07-18 13:37:39 +02:00
aeb667e1f4 STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)
- relocate common dictionary output into codedBase class
2016-06-09 16:13:04 +01:00
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
6d562d1a5c codedBase.H: Minor reformat 2016-05-21 13:56:27 +01:00
03c497f6df Updated header 2016-05-19 09:40:29 +01:00
bf14e44bb3 Updated code comments 2016-05-19 09:40:17 +01:00
83c7e97655 dynamicCode: Renamed 'redirectType' to 'name' to clarify the purpose
of the entry which is to provide the name of the generated class.

'redirectType' is supported for backward-compatibility.
2016-05-18 23:10:42 +01:00
354bc8bdcb dynamicCode: the "code" entry is now optional
codedFunctionObject: Added the "codeWrite" entry
    for the "write" function for consistency.
    The previous method of using the "code" entry for the "write"
    function was inconsistent and very confusing.
2016-05-18 12:20:03 +01:00
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
68e86f97fe Info -> InfoInFunction and updated comments 2016-01-20 10:18:13 +00:00
dc43311e62 src/OpenFOAM: Update ...IOErrorIn -> ...IOErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 21:13:04 +00:00
a4ab3f61db src/OpenFOAM: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-08 12:23:52 +00:00
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
325b003b6e Added and verified support for 64bit labels
To compile with 64bit labels set

WM_LABEL_SIZE=64

in ~/OpenFOAM/dev/prefs.sh

source ~/.bashrc

then Allwmake in OpenFOAM-dev.

This will build into for example OpenFOAM-dev/platforms/linux64ClangDPInt64Opt

If WM_LABEL_SIZE is unset or set to 32:

WM_LABEL_SIZE=32

the build would be placed into OpenFOAM-dev/platforms/linux64ClangDPInt32Opt

Thus both 32bit and 64bit label builds can coexist without problem.
2014-12-31 19:02:52 +00:00
d913e1c133 ENH: coded: allow for NFS skew 2014-01-14 17:34:06 +00:00
8e968f5647 STYLE: debug: move debug declaration into Foam namespace 2012-12-11 09:33:20 +00:00
0fc430a57b STYLE: codedBase: indenting 2012-09-25 14:14:29 +01:00
6d3b104421 STYLE: dynamicCodeContext: Doxygen parsing 2012-08-31 12:53:32 +01:00
c6c9819249 BUG: dynamicCodeContext: do not add line number to Make/options 2012-06-22 16:42:21 +01:00
289dd8fdc8 Updated header 2012-06-06 21:13:15 +01:00
15fe2b6bf9 dynamicCode: Clang requires line numbers to start from 1 rather than 0 2012-06-06 21:12:58 +01:00
cd64f1762f ENH: codedFixedValue: refactor coded 2011-10-24 21:33:16 +01:00
1cc1ddcacf ENH: dlOpen: check error message string 2011-10-24 21:31:38 +01:00
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
89d4dff64f Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
Conflicts:
	src/OpenFOAM/db/dynamicLibrary/dlLibraryTable/dlLibraryTableTemplates.C
2011-08-02 13:52:36 +01:00
ba46d43be7 BUG: dlLibraryTable: guarantee dlclose order opposite of dlopen order 2011-08-02 12:50:14 +01:00
80ebb46a82 dlLibraryTable: updated warning messaging 2011-08-01 22:50:24 +01:00
8fc5612159 BUG: dynamicCodeContext: preprocessing options_, localCode_ 2011-06-21 11:07:48 +01:00
00760b736e ENH: dynamicCode.C: check for permission even when restarting 2011-05-26 12:09:22 +01:00
b9f69cd122 STYLE: Updated GPL 2 -> GPL 3 2011-05-11 11:11:03 +01:00
f79aeb9402 ENH: Time: construct dlLibraryTable before reading dictionary so controlDict can have e.g. #codeStream 2011-04-20 11:52:24 +01:00
a791316896 ENH: dlLibraryTable: moved library handles to objects 2011-04-18 16:41:21 +01:00
e7400dba6c ENH: dynamicCodeContext: moved include to after sha1 calculation since adds processor dependency 2011-04-13 15:59:54 +01:00
df0631c99c STYLE: dlLibraryTable.C: dlclose comment 2011-04-01 17:36:20 +01:00
20b1d49a82 ENH: dynamicCode: display line numbers 2011-03-25 04:43:29 +00:00
cf99e5c800 ENH: codeStream: added codeLibs 2011-03-21 17:54:20 +00:00
12d965ead9 STYLE: more constness on const char* values 2011-03-11 09:08:45 +01:00
e8a3587df4 ENH: support file-scope 'localCode' in dynamicCode 2011-03-08 11:08:42 +01:00