Files
openfoam/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.H
Henry Weller 83bae2efd3 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

230 lines
5.9 KiB
C++

/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::functionObjects::turbulenceFields
Group
grpFieldFunctionObjects
Description
This function object stores turbulence fields on the mesh database for
further manipulation.
Fields are stored as copies of the original, with the prefix
"tubulenceModel:", e.g.:
\verbatim
turbulenceModel:R
\endverbatim
Example of function object specification:
\verbatim
turbulenceFields1
{
type turbulenceFields;
libs ("libutilityFunctionObjects.so");
...
fields
(
R
devRhoReff
);
}
\endverbatim
\heading Function object usage
\table
Property | Description | Required | Default value
type | type name: processorField | yes |
fields | fields to store (see below) | yes |
\endtable
Where \c fields can include:
\plaintable
k | turbulence kinetic energy
epsilon | turbulence kinetic energy dissipation rate
nut | turbulence viscosity (incompressible)
nuEff | effective turbulence viscosity (incompressible)
mut | turbulence viscosity (compressible)
muEff | effective turbulence viscosity (compressible)
alphat | turbulence thermal diffusivity (compressible)
alphaEff | effective turbulence thermal diffusivity (compressible)
R | Reynolds stress tensor
devReff | Deviatoric part of the effective Reynolds stress
devRhoReff | Divergence of the Reynolds stress
\endplaintable
SeeAlso
Foam::functionObject
Foam::functionObjects::timeControl
SourceFiles
turbulenceFields.C
\*---------------------------------------------------------------------------*/
#ifndef functionObjects_turbulenceFields_H
#define functionObjects_turbulenceFields_H
#include "functionObject.H"
#include "HashSet.H"
#include "NamedEnum.H"
#include "volFieldsFwd.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// Forward declaration of classes
class objectRegistry;
namespace functionObjects
{
/*---------------------------------------------------------------------------*\
Class turbulenceFields Declaration
\*---------------------------------------------------------------------------*/
class turbulenceFields
:
public functionObject
{
public:
enum compressibleField
{
cfK,
cfEpsilon,
cfMut,
cfMuEff,
cfAlphat,
cfAlphaEff,
cfR,
cfDevRhoReff
};
static const NamedEnum<compressibleField, 8> compressibleFieldNames_;
enum incompressibleField
{
ifK,
ifEpsilon,
ifNut,
ifNuEff,
ifR,
ifDevReff
};
static const NamedEnum<incompressibleField, 6> incompressibleFieldNames_;
static const word modelName;
protected:
// Protected data
//- Reference to the objectRegistry
const objectRegistry& obr_;
//- Fields to load
wordHashSet fieldSet_;
// Protected Member Functions
//- Return true if compressible turbulence model is identified
bool compressible();
//- Process the turbulence field
template<class Type>
void processField
(
const word& fieldName,
const tmp<GeometricField<Type, fvPatchField, volMesh>>& tvalue
);
private:
// Private member functions
//- Disallow default bitwise copy construct
turbulenceFields(const turbulenceFields&);
//- Disallow default bitwise assignment
void operator=(const turbulenceFields&);
public:
//- Runtime type information
TypeName("turbulenceFields");
// Constructors
//- Construct from Time and dictionary
turbulenceFields
(
const word& name,
const Time& runTime,
const dictionary& dict
);
//- Destructor
virtual ~turbulenceFields();
// Member Functions
//- Read the controls
virtual bool read(const dictionary&);
//- Calculate turbulence fields
virtual bool execute(const bool postProcess = false);
//- Do nothing.
// The turbulence fields are registered and written automatically
virtual bool write(const bool postProcess = false);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace functionObjects
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
#include "turbulenceFieldsTemplates.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //