Commit Graph

55 Commits

Author SHA1 Message Date
18725ed3ac functionObjects: Renamed dictionary entry 'functionObjectLibs' -> 'libs'
This changes simplifies the specification of functionObjects in
controlDict and is consistent with the 'libs' option in controlDict to
load special solver libraries.

Support for the old 'functionObjectLibs' name is supported for backward compatibility.
2016-05-16 22:09:01 +01:00
4ba3463052 functionObjects: Simply functionObjects requiring access to the fvMesh using fvMeshFunctionObject 2016-05-16 16:21:06 +01:00
9353abcabe functionObjects: Added regionFunctionObject and fvMeshFunctionObject intermediate base-classes
to simplify writing common functionObjects and avoid unnecessary code duplication
2016-05-16 12:20:44 +01:00
91aba2db2e functionObjects: rewritten to all be derived from 'functionObject'
- Avoids the need for the 'OutputFilterFunctionObject' wrapper
  - Time-control for execution and writing is now provided by the
    'timeControlFunctionObject' which instantiates the processing
    'functionObject' and controls its operation.
  - Alternative time-control functionObjects can now be written and
    selected at run-time without the need to compile wrapped version of
    EVERY existing functionObject which would have been required in the
    old structure.
  - The separation of 'execute' and 'write' functions is now formalized in the
    'functionObject' base-class and all derived classes implement the
    two functions.
  - Unnecessary implementations of functions with appropriate defaults
    in the 'functionObject' base-class have been removed reducing
    clutter and simplifying implementation of new functionObjects.
  - The 'coded' 'functionObject' has also been updated, simplified and tested.
  - Further simplification is now possible by creating some general
    intermediate classes derived from 'functionObject'.
2016-05-15 16:40:01 +01:00
758dfc2c1f Standardized the naming of functions which control the writing of fields etc.
to have the prefix 'write' rather than 'output'

So outputTime() -> writeTime()

but 'outputTime()' is still supported for backward-compatibility.

Also removed the redundant secondary-writing functionality from Time
which has been superseded by the 'writeRegisteredObject' functionObject.
2016-05-12 17:38:01 +01:00
71290b4d9e functionObjects: Changed options 'outputControl' -> 'writeControl' and 'outputInterval' -> 'writeInterval'
for consistency with the time controls in controlDict and to avoid
unnecessary confusion.  All code and tutorials have been updated.

The old names 'outputControl' and 'outputInterval' are but supported for
backward compatibility but deprecated.
2016-05-12 11:38:11 +01:00
901f6cde1d functionObjects: Removed the redundant "viable" member function
Construction failure and recovery is not handled with exceptions in functionObjectList
2016-05-11 12:57:17 +01:00
8663237a0f src/postProcessing/functionObjects: Removed unused IOOutputFilter clutter 2016-05-10 12:54:42 +01:00
71a448d66f functionObjects: Renamed option "adjustableTime" -> "adjustableRunTime" for consistency with Time 2016-05-07 09:32:00 +01:00
52e79b4703 functionObjects: Updated docs 2016-05-04 08:51:39 +01:00
c8171fb1e6 functionObjects: Simplified organization and naming 2016-05-03 23:37:28 +01:00
3cd9b4f5d7 Change field loop index from "fieldI" to "fieldi" 2016-05-02 18:20:48 +01:00
f83975a701 functionObjects: Moved into the functionObjects namespace and rationalized and simplified failable construction
Rather than requiring each functionObject to handle failed construction
internally (using the active_ flag) the static member function "viable"
is provided which returns true if construction of the functionObject is
likely to be successful.  Failed construction is then handled by the
wrapper-class which constructs the functionObject,
e.g. "OutputFilterFunctionObject".
2016-05-02 16:28:24 +01:00
66a6700a4b src/postProcessing/functionObjects: Moving the functionObjects into the "functionObjects" namespace 2016-05-01 14:48:30 +01:00
fe43b80536 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField()
These new names are more consistent and logical because:

primitiveField():
primitiveFieldRef():
    Provides low-level access to the Field<Type> (primitive field)
    without dimension or mesh-consistency checking.  This should only be
    used in the low-level functions where dimensional consistency is
    ensured by careful programming and computational efficiency is
    paramount.

internalField():
internalFieldRef():
    Provides access to the DimensionedField<Type, GeoMesh> of values on
    the internal mesh-type for which the GeometricField is defined and
    supports dimension and checking and mesh-consistency checking.
2016-04-30 21:40:09 +01:00
7155ef61ae functionObjectFile: Separated into functionObjectFile and functionObjectFiles
functionObjectFile provides basic directory, file and formatting functions
functionObjectFiles provides multi-file cache
2016-04-30 09:18:42 +01:00
aa09dd3f7b functionObjects/field/histogram: New functionObject to write the volume-weighted histogram of a volScalarField
e.g.
    pressureHistogram
    {
        type            histogram;

        functionObjectLibs ("libfieldFunctionObjects.so");

        field           p;
        nBins           100;
        min             -5;
        max             5;
        setFormat       gnuplot;
    }
2016-04-28 20:40:32 +01:00
75ea76187b GeometricField::GeometricBoundaryField -> GeometricField::Boundary
When the GeometricBoundaryField template class was originally written it
was a separate class in the Foam namespace rather than a sub-class of
GeometricField as it is now.  Without loss of clarity and simplifying
code which access the boundary field of GeometricFields it is better
that GeometricBoundaryField be renamed Boundary for consistency with the
new naming convention for the type of the dimensioned internal field:
Internal, see commit a25a449c9e

This is a very simple text substitution change which can be applied to
any code which compiles with the OpenFOAM-dev libraries.
2016-04-28 07:22:02 +01:00
2c107a17b5 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:38:33 +01:00
6fd4ce6cc3 Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 73fe45cd27.
2016-04-26 20:33:45 +01:00
73fe45cd27 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
97f473ff0f GeometricField::dimensionedInternalField() -> GeometricField::dimensionedInternalFieldRef()
See also commit a4e2afa4b3
2016-04-26 16:29:43 +01:00
a8bf4be58a Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
8c4f6b8fcb Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
89397e8076 boundaryField() -> boundaryFieldRef() 2016-04-23 23:16:30 +01:00
fa8929df6d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
c544bec896 Removed duplicate, inconsistent and spurious comments in .C files 2016-02-29 18:33:54 +00:00
99c000fc94 Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
7859083246 OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch
NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
in the Make/options file.  However, it is recommended to upgrade all
code to the new safer tmp by using the '.ref()' member function rather
than the non-const '()' dereference operator when non-const access to
the temporary object is required.

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
49c54e9070 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
938df85fc5 fieldAverage: Updated documentation 2016-02-03 20:56:27 +00:00
6bd588914f fieldAverage: Name the field averaging properties file "<functionObject name>Properties"
rather than the fixed name "fieldAveragingProperties" to allow for the
same field to be averaged more than once.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1336
2016-02-03 20:50:35 +00:00
cd365c8ebd fieldAverage: Minor update to the documentation 2016-01-30 11:26:31 +00:00
41304deafb fieldAverage: Added periodicRestart option and rationalized naming of restart options
When restarting form a previous calculation, the averaging is continuous or
    may be restarted using the \c restartOnRestart option.

    The averaging process may be restarted after each calculation output time
    using the \c restartOnOutput option or restarted periodically using the \c
    periodicRestart option and setting \c restartPeriod to the required
    averaging period.

    Example of function object specification:
    \verbatim
    fieldAverage1
    {
        type fieldAverage;
        functionObjectLibs ("libfieldFunctionObjects.so");
        ...
        restartOnRestart  false;
        restartOnOutput   false;
        periodicRestart false;
        restartPeriod   0.002;
        fields
        (
            U
            {
                mean            on;
                prime2Mean      on;
                base            time;
                window          10.0;
                windowName      w1;
            }
            p
            {
                mean            on;
                prime2Mean      on;
                base            time;
            }
        );
    }
    \endverbatim

    \heading Function object usage
    \table
        Property        | Description           | Required    | Default value
        type            | type name: fieldAverage | yes |
        restartOnRestart  | Restart the averaging on restart | no | no
        restartOnOutput   | Restart the averaging on output | no | no
        periodicRestart | Periodically restart the averaging | no | no
        restartPeriod   | Periodic restart period | conditional |
        fields          | list of fields and averaging options | yes |
    \endtable
2016-01-30 11:23:38 +00:00
a23f79fa7e Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
2804f8748d Make disallowed member functions private
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1977
2016-01-20 10:41:14 +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
016aad0d72 functionObjects: Format time according to the specification in controlDict
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1921
2015-11-20 13:22:51 +00:00
5e6a7ea282 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
2127051ad5 cellSource: Added weightedVolAverage option
faceSource: Added weightedAreaAverage option
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1769
2015-06-30 11:20:02 +01:00
8824f2e310 Update headers 2015-05-18 12:10:10 +01:00
d9090fcf42 messageStream: Remove confusing argument-based conditional output
This had been used in functionObjects:

    Info(log)<< "messages" << data << ....

in which it is not at all clear what the "log" argument does whereas

    if (log) Info<< "messages" << data << ....

is totally clear and more efficient.
2015-05-18 11:54:56 +01:00
869bf2216b faceSource: Corrected handling of totalArea in parallel
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1693
2015-05-17 14:57:33 +01:00
8dee55bc99 fieldMinMax: add optional switch to control the output of max/min location
and simplify output format for graphing

With "location yes;"

log:
    fieldMinMax fieldMinMax output:
        min/max(mag(U.air)) = 0 28.309442
        min/max(mag(U.water)) = 0 27.221734

file:
    # Field minima and maxima
    # Time          min(U.air)      max(U.air)      min(U.water)    max(U.water)
    4.00061050e-01  0.00000000e+00  2.87015987e+01  0.00000000e+00  2.71025731e+01
    4.00134265e-01  0.00000000e+00  2.86505310e+01  0.00000000e+00  2.71134246e+01
    4.00222098e-01  0.00000000e+00  2.85937449e+01  0.00000000e+00  2.71255302e+01

With "location no;"

log:
    fieldMinMax fieldMinMax output:
        min(mag(U.air)) = 0 at location (-0.058373423 -0.15376628 0.021017389)
        max(mag(U.air)) = 28.701599 at location (-0.24002836 0.0053456235 3.8964638)
        min(mag(U.water)) = 0 at location (-0.058373423 -0.15376628 0.021017389)
        max(mag(U.water)) = 27.102573 at location (-0.24002836 0.0053456235 3.8964638)

file:
    # Field minima and maxima
    # Time          field           min             location(min)   max             location(max)
    4.00061050e-01  U.air           0.00000000e+00  (-5.83734226e-02 -1.53766281e-01 2.10173892e-02)        2.87015987e+01  (-2.40028359e-01 5.34562354e-03 3.89646377e+00)
    4.00061050e-01  U.water         0.00000000e+00  (-5.83734226e-02 -1.53766281e-01 2.10173892e-02)        2.71025731e+01  (-2.40028359e-01 5.34562354e-03 3.89646377e+00)
2015-05-05 15:41:32 +01:00
d542ea93d5 Updated header 2015-04-26 21:38:29 +01:00
7d9dc9035e cellSource: Writing the volume of the cellSource (sum(V)) for each time is now optional
Previous behavior which may be useful for moving-mesh cases can be
selected using the optional entry:
    writeVolume  yes;

The initial volume is written in the log and data file header e.g.:

 #   Source : all
 #   Cells  : 3829
 #   Volume : 9.943164e-01

Also added
    sumMag        | sum of component magnitudes
2015-04-26 21:35:25 +01:00
c4f9e88f20 Updated header 2015-04-26 21:35:09 +01:00
440e1e0eee faceSource: Changed option to write faceSource area to 'writeArea' 2015-04-26 21:34:27 +01:00
8bec8510fa Update headers 2015-04-26 16:37:43 +01:00
db4ac98fd8 faceSource: Writing the total area of the faceSource (sum(magSf)) for each time is now optional
Previous behavior which may be useful for moving-mesh cases can be
selected using the optional entry:
    writeTotalArea  yes;

The initial total area is written in the log and data file header e.g.:

 #   Source : faceZone f0
 #   Faces  : 8
 #   Area   : 1.063860e-02
2015-04-26 16:32:19 +01:00