40 template<
class BasicMomentumTransportModel>
44 epsilon_ =
max(epsilon_, tCmuk2()/(this->nutMaxCoeff_*this->nu()));
49 template<
class BasicMomentumTransportModel>
52 this->nut_ = boundEpsilon()/epsilon_;
53 this->nut_.correctBoundaryConditions();
58 template<
class BasicMomentumTransportModel>
74 template<
class BasicMomentumTransportModel>
202 this->groupName(
"k"),
203 this->runTime_.
name(),
214 this->groupName(
"epsilon"),
215 this->runTime_.
name(),
223 if (
type == typeName)
236 template<
class BasicMomentumTransportModel>
241 Cmu_.readIfPresent(this->coeffDict());
242 C1_.readIfPresent(this->coeffDict());
243 C2_.readIfPresent(this->coeffDict());
244 Ceps1_.readIfPresent(this->coeffDict());
245 Ceps2_.readIfPresent(this->coeffDict());
246 Cs_.readIfPresent(this->coeffDict());
247 Ceps_.readIfPresent(this->coeffDict());
249 wallReflection_.readIfPresent(
"wallReflection", this->coeffDict());
250 kappa_.readIfPresent(this->coeffDict());
251 Cref1_.readIfPresent(this->coeffDict());
252 Cref2_.readIfPresent(this->coeffDict());
263 template<
class BasicMomentumTransportModel>
269 (Cs_*(this->k_/this->epsilon_))*this->R_ +
I*this->nu()
274 template<
class BasicMomentumTransportModel>
280 (Ceps_*(this->k_/this->epsilon_))*this->R_ +
I*this->nu()
285 template<
class BasicMomentumTransportModel>
288 if (!this->turbulence_)
314 epsilon_.boundaryFieldRef().updateCoeffs();
329 epsEqn.
ref().relax();
331 epsEqn.
ref().boundaryManipulate(epsilon_.boundaryFieldRef());
345 if (isA<wallFvPatch>(curPatch))
352 G[celli]/(0.5*
mag(
tr(P[celli])) + small),
368 - (2.0/3.0*(1 - C1_)*
I)*
alpha*
rho*epsilon_
382 Cref1_*
R - ((Cref2_*C2_)*(k_/epsilon_))*
dev(P)
395 this->boundNormalStress(
R);
402 this->correctWallShearStress(
R);
#define forAll(list, i)
Loop across all elements in list.
static wallDist & New(const word &name, const fvMesh &mesh)
Construct and return the named DemandDrivenMeshObject.
Generic GeometricField class.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Templated abstract base class for RAS turbulence models.
virtual void printCoeffs(const word &type)
Print model coefficients.
BasicMomentumTransportModel::alphaField alphaField
tmp< volSymmTensorField > DepsilonEff() const
Return the effective diffusivity for epsilon.
virtual tmp< fvScalarMatrix > epsilonSource() const
Source term for the epsilon equation.
LRR(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity, const word &type=typeName)
Construct from components.
virtual void correct()
Solve the turbulence equations and correct eddy-Viscosity and.
tmp< volScalarField > boundEpsilon()
Bound epsilon and return Cmu*sqr(k) for nut.
tmp< volSymmTensorField > DREff() const
Return the effective diffusivity for R.
virtual void correctNut()
Correct the eddy-viscosity nut.
virtual bool read()
Read model coefficients if they have changed.
BasicMomentumTransportModel::rhoField rhoField
Reynolds-stress turbulence model base class.
void boundNormalStress(volSymmTensorField &R) const
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
static autoPtr< dictionary > New(Istream &)
Construct top-level dictionary on freestore from Istream.
Generic dimensioned Type class.
Finite volume constraints.
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
tmp< fvMatrix< Type > > source(const VolField< Type > &field) const
Return source for an equation.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual const labelUList & faceCells() const
Return faceCells.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
Abstract base class for all fluid physical properties.
A class for handling words, derived from string.
Foam::fvConstraints & fvConstraints(Foam::fvConstraints::New(mesh))
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
const fvPatchList & patches
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
void correct(const RdeltaTType &rDeltaT, const RhoType &rho, volScalarField &psi, const surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su)
const dimensionedScalar G
Newtonian constant of gravitation.
tmp< VolField< typename outerProduct< vector, Type >::type > > grad(const SurfaceField< Type > &ssf)
tmp< fvMatrix< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const VolField< Type > &)
tmp< fvMatrix< Type > > ddt(const VolField< Type > &vf)
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
dimensionedScalar tr(const dimensionedSphericalTensor &dt)
bool read(const char *, int32_t &)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
word name(const bool)
Return a word representation of a bool.
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
static const Identity< scalar > I
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const dimensionSet dimTime
dimensionedScalar sqrt(const dimensionedScalar &ds)
const dimensionSet dimVolume
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
static scalar R(const scalar a, const scalar x)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.