39 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
46 tmp<volScalarField> CDkOmegaPlus =
max 52 tmp<volScalarField> arg1 =
min 58 (scalar(1)/betaStar_)*
sqrt(k_)/(omega_*y_),
59 scalar(500)*(this->
mu()/this->rho_)/(
sqr(y_)*omega_)
61 (4*alphaOmega2_)*k_/(CDkOmegaPlus*
sqr(y_))
69 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
74 tmp<volScalarField> arg2 =
min 78 (scalar(2)/betaStar_)*
sqrt(k_)/(omega_*y_),
79 scalar(500)*(this->
mu()/this->rho_)/(
sqr(y_)*omega_)
87 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
92 tmp<volScalarField> arg3 =
min 94 150*(this->
mu()/this->rho_)/(omega_*
sqr(y_)),
101 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
103 kOmegaSST<MomentumTransportModel, BasicMomentumTransportModel>::kOmegaSST::
106 tmp<volScalarField> f23(
F2());
117 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
124 this->nut_ = a1_*k_/
max(a1_*omega_, b1_*F2*
sqrt(S2));
125 this->nut_.correctBoundaryConditions();
132 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
140 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
147 return min(G, (c1_*betaStar_)*this->k_()*this->omega_());
151 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
159 return betaStar_*omega_();
163 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
178 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
194 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
216 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
364 this->runTime_.timeName(),
376 this->runTime_.timeName(),
384 bound(k_, this->kMin_);
385 bound(omega_, this->omegaMin_);
391 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
396 alphaK1_.readIfPresent(this->coeffDict());
397 alphaK2_.readIfPresent(this->coeffDict());
398 alphaOmega1_.readIfPresent(this->coeffDict());
399 alphaOmega2_.readIfPresent(this->coeffDict());
400 gamma1_.readIfPresent(this->coeffDict());
401 gamma2_.readIfPresent(this->coeffDict());
402 beta1_.readIfPresent(this->coeffDict());
403 beta2_.readIfPresent(this->coeffDict());
404 betaStar_.readIfPresent(this->coeffDict());
405 a1_.readIfPresent(this->coeffDict());
406 b1_.readIfPresent(this->coeffDict());
407 c1_.readIfPresent(this->coeffDict());
408 F3_.readIfPresent(
"F3", this->coeffDict());
419 template<
class MomentumTransportModel,
class BasicMomentumTransportModel>
422 if (!this->turbulence_)
453 omega_.boundaryFieldRef().updateCoeffs();
478 (c1_/a1_)*betaStar_*omega_()
479 *
max(a1_*omega_(), b1_*F23()*
sqrt(S2()))
485 alpha()*
rho()*(
F1() - scalar(1))*CDkOmega()/omega_(),
488 + Qsas(S2(), gamma, beta)
490 + fvModels.source(alpha, rho, omega_)
493 omegaEqn.
ref().relax();
495 omegaEqn.ref().boundaryManipulate(omega_.boundaryFieldRef());
498 bound(omega_, this->omegaMin_);
512 + fvModels.source(alpha, rho, k_)
519 bound(k_, this->kMin_);
static word group(const word &name)
Return group (extension part of name)
dimensionedScalar tanh(const dimensionedScalar &ds)
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:
kOmegaSST(const word &type, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport)
Construct from components.
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
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)
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
dimensionedScalar sqrt(const dimensionedScalar &ds)
virtual tmp< fvScalarMatrix > omegaSource() const
const dimensionSet dimless
Generic dimensioned Type class.
const dimensionedScalar G
Newtonian constant of gravitation.
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
BasicMomentumTransportModel::alphaField alphaField
static Switch lookupOrAddToDict(const word &, dictionary &, const Switch &defaultValue=false)
Construct from dictionary, supplying default value so that if the.
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet dimTime
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
BasicMomentumTransportModel::transportModel transportModel
Foam::fvConstraints & fvConstraints
A class for handling words, derived from string.
Info<< "Predicted p max-min : "<< max(p).value()<< " "<< min(p).value()<< endl;rho==max(rho0+psi *p, rhoMin);# 1 "/home/ubuntu/OpenFOAM-9/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()
static word groupName(Name name, const word &group)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
dimensioned< scalar > magSqr(const dimensioned< Type > &)
virtual tmp< fvScalarMatrix > Qsas(const volScalarField::Internal &S2, const volScalarField::Internal &gamma, const volScalarField::Internal &beta) const
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.
const dimensionedScalar mu
Atomic mass unit.
static autoPtr< dictionary > New(Istream &)
Construct top-level dictionary on freestore from Istream.
static wallDist & New(fvMesh &mesh)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
virtual tmp< volScalarField::Internal > Pk(const volScalarField::Internal &G) const
Return k production rate.
tmp< volScalarField > divU
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
Foam::fvModels & fvModels
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.
Finite volume constraints.
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
dimensionedScalar pow4(const dimensionedScalar &ds)
virtual tmp< fvScalarMatrix > kSource() const
const dimensionSet dimVolume
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.
const doubleScalar e
Elementary charge.
virtual tmp< volScalarField::Internal > epsilonByk(const volScalarField::Internal &F1, const volScalarField::Internal &F2) const
Return epsilon/k which for standard RAS is betaStar*omega.
A class for managing temporary objects.
Templated abstract base class for turbulence models.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
virtual bool read()
Re-read model coefficients if they have changed.
virtual void correctNut()