Commit Graph

611 Commits

Author SHA1 Message Date
09262f5273 src/postProcessing/functionObjects: Moving the functionObjects into the "functionObjects" namespace 2016-05-01 14:48:30 +01:00
3c053c2fe6 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
ccd958a8f1 GeometricField::dimensionedInteralFieldRef() -> GeometricField::ref()
In order to simplify expressions involving dimensioned internal field it
is preferable to use a simpler access convention.  Given that
GeometricField is derived from DimensionedField it is simply a matter of
de-referencing this underlying type unlike the boundary field which is
peripheral information.  For consistency with the new convention in
"tmp"  "dimensionedInteralFieldRef()" has been renamed "ref()".
2016-04-30 18:43:51 +01:00
67e2d02800 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
81041e5d3c 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
ea5401c770 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 4a57b9be2e

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
4a57b9be2e GeometricField: Rationalized and simplified access to the dimensioned internal field
Given that the type of the dimensioned internal field is encapsulated in
the GeometricField class the name need not include "Field"; the type
name is "Internal" so

volScalarField::DimensionedInternalField -> volScalarField::Internal

In addition to the ".dimensionedInternalField()" access function the
simpler "()" de-reference operator is also provided to greatly simplify
FV equation source term expressions which need not evaluate boundary
conditions.  To demonstrate this kEpsilon.C has been updated to use
dimensioned internal field expressions in the k and epsilon equation
source terms.
2016-04-27 21:32:45 +01:00
f790663b78 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:38:33 +01:00
070515e9db Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 3cfc54ba09.
2016-04-26 20:33:45 +01:00
3cfc54ba09 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
dc2951ca2f GeometricField::dimensionedInternalField() -> GeometricField::dimensionedInternalFieldRef()
See also commit 22f4ad32b1
2016-04-26 16:29:43 +01:00
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
7c12f7743b boundaryField() -> boundaryFieldRef() 2016-04-23 23:16:30 +01:00
8c6fa81eba vector::zero -> Zero 2016-04-16 18:34:41 +01:00
730f89dc9d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
e57874859a Updated Doxygen documentation and files
Contributed by Bruno Santos
Resolves patch report http://www.openfoam.org/mantisbt/view.php?id=2023

Update online documentation http://openfoam.github.io/Documentation-dev/html/
2016-03-14 11:00:24 +00:00
7ba41e0095 Removed duplicate, inconsistent and spurious comments in .C files 2016-02-29 18:33:54 +00:00
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
cd852be3da 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
f4ba71ddd0 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
99a10ecea6 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

zeroGradientFvPatchField should not be used as the default patch field
for any temporary fields and should be avoided for non-temporary fields
except where it is clearly appropriate;
extrapolatedCalculatedFvPatchField and calculatedFvPatchField are
generally more suitable defaults depending on the manner in which the
boundary values are specified or evaluated.

The entire OpenFOAM-dev code-base has been updated following the above
recommendations.

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
968c888fc4 Rename DataEntry -> Function1
Function1 is an abstract base-class of run-time selectable unary
functions which may be composed of other Function1's allowing the user
to specify complex functions of a single scalar variable, e.g. time.
The implementations need not be a simple or continuous functions;
interpolated tables and polynomials are also supported.  In fact form of
mapping between a single scalar input and a single primitive type output
is supportable.

The primary application of Function1 is in time-varying boundary
conditions, it also used for other functions of time, e.g. injected mass
is spray simulations but is not limited to functions of time.
2016-02-08 16:18:07 +00:00
aca5a68dc4 fieldAverage: Updated documentation 2016-02-03 20:56:27 +00:00
9ab6aa9e97 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
43dbe9ec0a fieldAverage: Minor update to the documentation 2016-01-30 11:26:31 +00:00
451cc4e620 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
5779e4fd16 Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
34d4cfaca3 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
fa191d3456 functionObjects/utilities/scalarTransport: Set UName_ during construction for boundaryTypes()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1972
2016-01-15 14:47:56 +00:00
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
75cf86b769 Correct formatting: "forAll (" -> "forAll("
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1967
2016-01-09 23:10:16 +00:00
4ccdd833d3 IOdsmcFields.C: Not used, removed.
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1959
2016-01-01 21:21:15 +00:00
736621b945 fvOptions: Reorganized and updated to simplify use in sub-models and maintenance
fvOptions are transferred to the database on construction using
fv::options::New which returns a reference.  The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.

The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage.  The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
2015-12-02 11:49:52 +00:00
f900abd83b 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
c4d5f65a10 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
78d7482e5b SolverPerformance: Complete the integration of the templated SolverPerformance<Type>
Now solvers return solver performance information for all components
with backward compatibility provided by the "max" function which created
the scalar solverPerformance from the maximum component residuals from
the SolverPerformance<Type>.

The residuals functionObject has been upgraded to support
SolverPerformance<Type> so that now the initial residuals for all
(valid) components are tabulated, e.g. for the cavity tutorial case the
residuals for p, Ux and Uy are listed vs time.

Currently the residualControl option of pimpleControl and simpleControl
is supported in backward compatibility mode (only the maximum component
residual is considered) but in the future this will be upgraded to
support convergence control for the components individually.

This development started from patches provided by Bruno Santos, See
http://www.openfoam.org/mantisbt/view.php?id=1824
2015-11-10 08:50:11 +00:00
ebd9f94a4d functionObjects/utilities/turbulenceFields/turbulenceFields: Added k and epsilon
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1870
2015-10-17 15:20:10 +01:00
47185ee830 functionObjects/fvTools/calcFvcGrad: Avoid clash with cached gradient field
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1828
2015-08-18 12:13:09 +01:00
4372529e46 cloudInfo: Updated for changes to functionObjectFile 2015-08-05 18:01:50 +01:00
ce844e6f5b 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
5e05479e2a Use basicThermo::dictName rather than hard-coding "thermophysicalProperties" 2015-06-24 10:44:57 +01:00
afe7e3eee9 Update headers 2015-05-18 12:10:10 +01:00
dd04dd9c2c 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
46a4446587 Function object that writes out the initial residual for specified fields
For vector/tensor fields, e.g. U, the largest residual of all components is written out
2015-05-17 16:48:55 +01:00
7edfb4d08d 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
b5d3f85bd4 functionObjects: Upgrade to use new turbulence modeling library 2015-05-17 14:56:40 +01:00
9b382a36d5 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
062d6d3d08 Updated header 2015-04-26 21:38:29 +01:00