38 template<
class BasicTurbulenceModel>
41 this->nut_ = this->Cmu_*
sqr(k_)/epsilon_;
42 this->nut_.correctBoundaryConditions();
44 BasicTurbulenceModel::correctNut();
50 template<
class BasicTurbulenceModel>
59 const word& propertiesName,
181 this->runTime_.timeName(),
193 this->runTime_.timeName(),
201 if (type == typeName)
203 this->boundNormalStress(this->R_);
204 bound(epsilon_, this->epsilonMin_);
205 k_ = 0.5*
tr(this->R_);
207 this->printCoeffs(type);
214 template<
class BasicTurbulenceModel>
219 Cmu_.readIfPresent(this->coeffDict());
220 C1_.readIfPresent(this->coeffDict());
221 C2_.readIfPresent(this->coeffDict());
222 Ceps1_.readIfPresent(this->coeffDict());
223 Ceps2_.readIfPresent(this->coeffDict());
224 Cs_.readIfPresent(this->coeffDict());
225 Ceps_.readIfPresent(this->coeffDict());
227 wallReflection_.readIfPresent(
"wallReflection", this->coeffDict());
228 kappa_.readIfPresent(this->coeffDict());
229 Cref1_.readIfPresent(this->coeffDict());
230 Cref2_.readIfPresent(this->coeffDict());
241 template<
class BasicTurbulenceModel>
249 (Cs_*(this->k_/this->epsilon_))*this->R_ +
I*this->
nu()
255 template<
class BasicTurbulenceModel>
263 (Ceps_*(this->k_/this->epsilon_))*this->R_ +
I*this->
nu()
269 template<
class BasicTurbulenceModel>
272 if (!this->turbulence_)
293 epsilon_.boundaryField().updateCoeffs();
302 Ceps1_*alpha*rho*G*epsilon_/k_
303 -
fvm::Sp(Ceps2_*alpha*rho*epsilon_/k_, epsilon_)
308 epsEqn().boundaryManipulate(epsilon_.boundaryField());
311 bound(epsilon_, this->epsilonMin_);
322 if (isA<wallFvPatch>(curPatch))
329 G[faceCelli]/(0.5*
mag(
tr(P[faceCelli])) + SMALL),
342 +
fvm::Sp(C1_*alpha*rho*epsilon_/k_, R)
345 - (2.0/3.0*(1 - C1_)*
I)*alpha*rho*epsilon_
346 - C2_*alpha*rho*
dev(P)
357 Cref1_*R - ((Cref2_*C2_)*(k_/epsilon_))*
dev(P)
361 ((3*
pow(Cmu_, 0.75)/kappa_)*(alpha*rho*
sqrt(k_)/y_))
368 this->boundNormalStress(R);
375 this->correctWallShearStress(R);
dimensionedScalar sqrt(const dimensionedScalar &ds)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
virtual void correct()
Solve the turbulence equations and correct eddy-Viscosity and.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
dimensioned< scalar > mag(const dimensioned< Type > &)
static const wallDist & New(const fvMesh &mesh)
#define R(A, B, C, D, E, F, K, M)
static const sphericalTensor I(1)
Info<< "Predicted p max-min : "<< max(p).value()<< " "<< min(p).value()<< endl;rho==max(psi *p+alphal *rhol0+((alphav *psiv+alphal *psil)-psi)*pSat, rhoMin);#1"/home/dm2/henry/OpenFOAM/OpenFOAM-3.0.x/applications/solvers/multiphase/cavitatingFoam/alphavPsi.H"1{alphav=max(min((rho-rholSat)/(rhovSat-rholSat), scalar(1)), scalar(0));alphal=1.0-alphav;Info<< "max-min alphav: "<< max(alphav).value()<< " "<< min(alphav).value()<< endl;psiModel-> correct()
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
static Switch lookupOrAddToDict(const word &, dictionary &, const Switch &defaultValue=false)
Construct from dictionary, supplying default value so that if the.
BasicTurbulenceModel::rhoField rhoField
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
dimensionedScalar tr(const dimensionedSphericalTensor &dt)
virtual const labelUList & faceCells() const
Return faceCells.
Templated abstract base class for RAS turbulence models.
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
Reynolds-stress turbulence model base class.
Generic dimensioned Type class.
BasicTurbulenceModel::alphaField alphaField
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
virtual bool read()
Read model coefficients if they have changed.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
BasicTurbulenceModel::transportModel transportModel
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
solverPerformance solve(fvMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
bool read(const char *, int32_t &)
tmp< volSymmTensorField > DepsilonEff() const
Return the effective diffusivity for epsilon.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
virtual void correctNut()
Update the eddy-viscosity.
Launder, Reece and Rodi Reynolds-stress turbulence model for incompressible and compressible flows...
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
tmp< volSymmTensorField > DREff() const
Return the effective diffusivity for R.
A class for managing temporary objects.
const dimensionedScalar G
Newtonian constant of gravitation.