39 template<
class BasicMomentumTransportModel>
42 this->nut_ = Cmu_*
sqr(k_)/epsilon_;
43 this->nut_.correctBoundaryConditions();
48 template<
class BasicMomentumTransportModel>
56 dimVolume*this->rho_.dimensions()*k_.dimensions()
63 template<
class BasicMomentumTransportModel>
72 dimVolume*this->rho_.dimensions()*epsilon_.dimensions()
81 template<
class BasicMomentumTransportModel>
182 this->runTime_.timeName(),
194 this->runTime_.timeName(),
202 bound(k_, this->kMin_);
203 bound(epsilon_, this->epsilonMin_);
205 if (type == typeName)
207 this->printCoeffs(type);
214 template<
class BasicMomentumTransportModel>
219 Cmu_.readIfPresent(this->coeffDict());
220 C1_.readIfPresent(this->coeffDict());
221 C2_.readIfPresent(this->coeffDict());
222 C3_.readIfPresent(this->coeffDict());
223 sigmak_.readIfPresent(this->coeffDict());
224 sigmaEps_.readIfPresent(this->coeffDict());
225 eta0_.readIfPresent(this->coeffDict());
226 beta_.readIfPresent(this->coeffDict());
237 template<
class BasicMomentumTransportModel>
240 if (!this->turbulence_)
282 ((eta*(-eta/eta0_ + scalar(1)))/(beta_*eta3 + scalar(1)))
286 epsilon_.boundaryFieldRef().updateCoeffs();
295 (C1_ - R)*
alpha()*
rho()*G*epsilon_()/k_()
302 epsEqn.
ref().relax();
304 epsEqn.
ref().boundaryManipulate(epsilon_.boundaryFieldRef());
307 bound(epsilon_, this->epsilonMin_);
329 bound(k_, this->kMin_);
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
fvMatrix< scalar > fvScalarMatrix
tmp< fvMatrix< Type > > SuSp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
void clear() const
If object pointer points to valid object:
void correct(GeometricField< Type, fvPatchField, volMesh > &field)
Apply correction to field.
T & ref() const
Return non-const reference or generate a fatal error.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
virtual tmp< fvScalarMatrix > kSource() const
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
dimensionedScalar sqrt(const dimensionedScalar &ds)
Generic dimensioned Type class.
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
Eddy viscosity turbulence model base class.
BasicMomentumTransportModel::alphaField alphaField
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
Templated abstract base class for RAS turbulence models.
const dimensionSet dimVolume(pow3(dimLength))
virtual tmp< fvScalarMatrix > epsilonSource() const
bool read(const char *, int32_t &)
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
RNGkEpsilon(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &type=typeName)
Construct from components.
BasicMomentumTransportModel::transportModel transportModel
A class for handling words, derived from string.
static word groupName(Name name, const word &group)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
void constrain(fvMatrix< Type > &eqn)
Apply constraints to equation.
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
Bound the given scalar field if it has gone unbounded.
Info<< "Predicted p max-min : "<< max(p).value()<< " "<< min(p).value()<< endl;rho==max(rho0+psi *p, rhoMin);# 1 "/home/ubuntu/OpenFOAM-8/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()
virtual void correctNut()
virtual bool read()
Re-read model coefficients if they have changed.
BasicMomentumTransportModel::rhoField rhoField
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
#define R(A, B, C, D, E, F, K, M)
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.
dimensioned< scalar > mag(const dimensioned< Type > &)
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
A class for managing temporary objects.
static options & New(const fvMesh &mesh)
Construct fvOptions and register to datbase if not present.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const dimensionedScalar & G
Newtonian constant of gravitation.