Commit graph

51 commits

Author SHA1 Message Date
Henry Weller
7037737d03 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
Henry Weller
99c000fc94 Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
Henry Weller
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
Henry Weller
49c54e9070 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
Henry Weller
7d192447f0 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
Henry Weller
0b4643922a 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
Henry Weller
644d51b466 processorPolyPatch, processorCyclicPolyPatch: Rationalized the construction of the patch name
This change ensures that these patches are named consistently so that
they can be looked-up as required in e.g. patchMeanVelocityForce
2016-02-02 20:07:16 +00:00
Henry Weller
699e4f2135 patchMeanVelocityForce: Add support for processorCyclic patches
If the mean velocity force is applied to a cyclic patch for parallel
    runs include contributions from processorCyclic patches generated
    from the decomposition of the cyclic patch
2016-02-01 10:36:58 +00:00
Henry Weller
70b74c9371 interRegionExplicitPorositySource: Corrected initialization of firstIter_ 2016-01-20 20:51:09 +00:00
Henry Weller
a23f79fa7e Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
Henry Weller
eb3cf2c880 interRegionExplicitPorositySource: Corrected initialization of firstIter_
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1978
2016-01-20 10:20:54 +00:00
Henry Weller
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
9a536b02a7 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
Henry Weller
0517efd7db turbulenceModels/RAS/kEpsilon/kEpsilon: Added experimental support for fvOptions 2015-11-28 19:07:42 +00:00
Henry Weller
56913f6307 fvOptions: New buoyancyForce and buoyancyEnergy
Provides run-time selection of buoyancy sources for compressible solvers

Replaces the built-in buoyancy sources in XiFoam, reactingFoam and
rhoReactingFoam.

e.g. in constant/fvOptions specify

momentumSource
{
    type            buoyancyForce;

    buoyancyForceCoeffs
    {
        fieldNames      (U);
    }
}

and optionally specify the buoyancy energy source in the enthalpy
equation:

energySource
{
    type            buoyancyEnergy;

    buoyancyEnergyCoeffs
    {
        fieldNames      (h);
    }
}

or internal energy equation

energySource
{
    type            buoyancyEnergy;

    buoyancyEnergyCoeffs
    {
        fieldNames      (e);
    }
}
2015-11-23 09:29:10 +00:00
Henry Weller
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
Henry Weller
03494fef5d Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
Henry Weller
24495c009c Rename localAxesRotation -> cylindrical
This class does not simply rotate the coordinate system is also changes
it from Cartesian to cylindrical which is not clear from the original name.

We plan to rewrite the coordinateRotation classes to be
coordinateTransformation classes and massively simplify the interface
from the currently unintelligible mess.
2015-08-13 09:25:28 +01:00
Henry Weller
77bf182edc Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
Henry Weller
3c209a32e9 rotorDiskSource: Debugged the duplicated interpolation functions
Needs rewriting to avoid unnecessary code duplication, preferably using
standard OpenFOAM interpolation functionality.
2015-07-03 12:41:25 +01:00
Henry Weller
9794225b49 meanVelocityForce: Added selectionMode to example dict 2015-07-02 09:46:56 +01:00
Henry Weller
83961e1de1 tutorials/incompressible/simpleFoam/rotorDisk: Tutorial for the rotorDiskSource functionObject
Provided by Richard Jones
2015-07-01 12:37:21 +01:00
Henry Weller
7bf57f6b2b fvOptions/sources/derived/rotorDiskSource: Added more documentation
Provided by Richard Jones
2015-07-01 11:02:32 +01:00
Henry Weller
6b4ff9fca5 patchMeanVelocityForce: Variant of patchMeanVelocityForce in which the velocity is averaged over a patch
rather than a cellSet

This is useful to drive mean flow in a duct with a non-uniform
cross-section.
2015-06-30 22:39:59 +01:00
Henry Weller
3255714f72 meanVelocityForce: Updated and corrected documentation 2015-06-30 19:20:08 +01:00
Henry Weller
6897692212 Renamed pressureGradientExplicitSource to meanVelocityForce
as it is the applied the force necessary to maintain the specified mean velocity
2015-06-30 19:13:16 +01:00
Henry Weller
61ba5f0268 Use basicThermo::dictName rather than hard-coding "thermophysicalProperties" 2015-06-24 10:44:57 +01:00
Henry
944e09742c solidificationMeltingSource: Removed all need for the "alwaysApply" hack
Also removed the underlying structure for "alwaysApply" from fvOption
2015-06-01 21:53:13 +01:00
Henry
940e63c9c4 Updated header 2015-06-01 15:47:50 +01:00
Henry
d84fc7adf3 fixedTemperatureConstraint,effectivenessHeatExchangerSource: Set the field name to that of the energy
field from which the temperature is obtained

Removes the need for the 'alwaysApply' hack.
2015-06-01 15:46:17 +01:00
Henry
4726029e06 limitTemperature: Set the field name to that of the energy field from which the temperature is obtained
Removes the need for the 'alwaysApply' hack.
2015-06-01 14:21:44 +01:00
Henry
39466811bf fvOption: Rationalize corrections 2015-06-01 11:18:45 +01:00
Henry
6cddfdda74 fvOptions: Rationalize naming convention for constraints 2015-06-01 09:58:33 +01:00
Henry
a99fb1de93 Update headers 2015-05-31 17:15:44 +01:00
Henry
4c753e1e4c fvOption: Rationalize read to support re-reading
writeData is not yet completely consistent with read.
2015-05-31 17:14:32 +01:00
Henry
b8d15ba459 fvOptions: Separate options for all cells, cellSets and inter-region coupling
by introducing rational base-classes rather than using the hideous
'switch' statement.  Further rationalization of the cell-selection
mechanism will be implemented via an appropriate class hierarchy to
replace the remaining 'switch' statement.

Mesh-motion is currently handled very inefficiently for cellSets and not
at all for inter-region coupling.  The former will be improved when the
cell-selection classes are written and the latter by making the
meshToMesh class a MeshObject after it has been corrected for mapFields.
2015-05-31 16:38:01 +01:00
Henry
2b9a2adf8c MRF: Separate MRF from fvOptions
fvOptions does not have the appropriate structure to support MRF as it
is based on option selection by user-specified fields whereas MRF MUST
be applied to all velocity fields in the particular solver.  A
consequence of the particular design choices in fvOptions made it
difficult to support MRF for multiphase and it is easier to support
frame-related and field related options separately.

Currently the MRF functionality provided supports only rotations but
the structure will be generalized to support other frame motions
including linear acceleration, SRF rotation and 6DoF which will be
run-time selectable.
2015-05-29 23:35:43 +01:00
Henry
7a4b3ce655 tabulatedAccelerationSource: New fvOption to support 6-DoF solid-body motion
Example usage:

SBM
{
    type            tabulatedAccelerationSource;
    active          true;
    selectionMode   all;

    tabulatedAccelerationSourceCoeffs
    {
        timeDataFileName "constant/acceleration.dat";
    }
}

Where the file constant/acceleration.dat contains a list of tuples
containing time and a vector of the linear acceleration, angular
velocity and angular acceleration e.g.

100
(
(0 ((0 0 0) (0 0 0) (0 0 0)))
(0.001 ((-0.0001 0 4e-05) (5e-5 -0.0002 -3e-8) (0.24 -0.8 -1e-4)))
.
.
.
)
2015-05-28 15:25:22 +01:00
Henry
526d7efeb0 Updated header 2015-05-26 11:32:04 +01:00
Henry
a917fbdf53 Corrected comment 2015-05-26 11:31:54 +01:00
Henry
7047154fee MRFZone: Add regex and group support to the specification of nonRotatingPatches 2015-04-26 16:38:07 +01:00
Henry
8bec8510fa Update headers 2015-04-26 16:37:43 +01:00
Henry
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
Henry
f58fd14271 Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
Henry
ebc88a4680 MRFSource: Update the velocity boundary conditions for changes in rotation speed 2015-02-04 23:03:45 +00:00
Henry
2c25b8db52 Add support for reading and updating the debug switches of templated
classes in the DebugSwitches sub-dictionary of system/controlDict
2015-02-04 22:08:27 +00:00
Henry
93732c8af4 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
Henry
34f4b64bf8 Updated header 2015-01-01 16:27:47 +00:00
Henry
b70ebf82af explicitPorositySource: corrected doc 2015-01-01 16:27:26 +00:00
Henry
a61f07451f rotorDiskSource: Corrected coordinate transformations
Now the rotor axis may be specified in other than the z-direction
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1290
2014-12-22 19:54:58 +00:00