38 template<
class TurbulenceModel,
class BasicTurbulenceModel>
45 tmp<volScalarField> CDkOmegaPlus =
max 51 tmp<volScalarField> arg1 =
min 57 (scalar(1)/betaStar_)*
sqrt(k_)/(omega_*y_),
58 scalar(500)*(this->
mu()/this->rho_)/(
sqr(y_)*omega_)
60 (4*alphaOmega2_)*k_/(CDkOmegaPlus*
sqr(y_))
68 template<
class TurbulenceModel,
class BasicTurbulenceModel>
72 tmp<volScalarField> arg2 =
min 76 (scalar(2)/betaStar_)*
sqrt(k_)/(omega_*y_),
77 scalar(500)*(this->
mu()/this->rho_)/(
sqr(y_)*omega_)
85 template<
class TurbulenceModel,
class BasicTurbulenceModel>
89 tmp<volScalarField> arg3 =
min 91 150*(this->
mu()/this->rho_)/(omega_*
sqr(y_)),
98 template<
class TurbulenceModel,
class BasicTurbulenceModel>
100 kOmegaSST<TurbulenceModel, BasicTurbulenceModel>::kOmegaSST::F23()
const 102 tmp<volScalarField> f23(
F2());
113 template<
class TurbulenceModel,
class BasicTurbulenceModel>
120 this->nut_ = a1_*k_/
max(a1_*omega_, b1_*F2*
sqrt(S2));
121 this->nut_.correctBoundaryConditions();
124 BasicTurbulenceModel::correctNut();
130 template<
class TurbulenceModel,
class BasicTurbulenceModel>
137 template<
class TurbulenceModel,
class BasicTurbulenceModel>
144 return min(G, (c1_*betaStar_)*this->k_()*this->omega_());
148 template<
class TurbulenceModel,
class BasicTurbulenceModel>
156 return betaStar_*omega_();
160 template<
class TurbulenceModel,
class BasicTurbulenceModel>
175 template<
class TurbulenceModel,
class BasicTurbulenceModel>
190 template<
class TurbulenceModel,
class BasicTurbulenceModel>
211 template<
class TurbulenceModel,
class BasicTurbulenceModel>
221 const word& propertiesName
361 this->runTime_.timeName(),
373 this->runTime_.timeName(),
381 bound(k_, this->kMin_);
382 bound(omega_, this->omegaMin_);
388 template<
class TurbulenceModel,
class BasicTurbulenceModel>
393 alphaK1_.readIfPresent(this->coeffDict());
394 alphaK2_.readIfPresent(this->coeffDict());
395 alphaOmega1_.readIfPresent(this->coeffDict());
396 alphaOmega2_.readIfPresent(this->coeffDict());
397 gamma1_.readIfPresent(this->coeffDict());
398 gamma2_.readIfPresent(this->coeffDict());
399 beta1_.readIfPresent(this->coeffDict());
400 beta2_.readIfPresent(this->coeffDict());
401 betaStar_.readIfPresent(this->coeffDict());
402 a1_.readIfPresent(this->coeffDict());
403 b1_.readIfPresent(this->coeffDict());
404 c1_.readIfPresent(this->coeffDict());
405 F3_.readIfPresent(
"F3", this->coeffDict());
416 template<
class TurbulenceModel,
class BasicTurbulenceModel>
419 if (!this->turbulence_)
446 omega_.boundaryFieldRef().updateCoeffs();
471 (c1_/a1_)*betaStar_*omega_()
472 *
max(a1_*omega_(), b1_*F23()*
sqrt(S2()))
478 alpha()*
rho()*(
F1() - scalar(1))*CDkOmega()/omega_(),
481 + Qsas(S2(), gamma, beta)
491 bound(omega_, this->omegaMin_);
512 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:
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
void correct(GeometricField< Type, fvPatchField, volMesh > &field)
Apply correction to field.
const dimensionedScalar G
Newtonian constant of gravitation.
BasicTurbulenceModel::alphaField alphaField
T & ref() const
Return non-const reference or generate a fatal error.
Templated abstract base class for turbulence models.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
BasicTurbulenceModel::rhoField rhoField
dimensionedScalar sqrt(const dimensionedScalar &ds)
virtual tmp< fvScalarMatrix > omegaSource() const
Generic dimensioned Type class.
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const GeometricField< Type, fvPatchField, volMesh > &)
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)
static const wallDist & New(const fvMesh &mesh)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet dimVolume(pow3(dimLength))
Implementation of the k-omega-SST turbulence model for incompressible and compressible flows...
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
A class for handling words, derived from string.
SolverPerformance< Type > solve(fvMatrix< Type > &, const dictionary &)
Solve returning the solution statistics given convergence tolerance.
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.
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.
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/ubuntu/OpenFOAM-6/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()
void relax(const scalar alpha)
Relax matrix (for steady-state solution).
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
virtual tmp< volScalarField::Internal > Pk(const volScalarField::Internal &G) const
Return k production rate.
const dimensionedScalar mu
Atomic mass unit.
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
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)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
virtual tmp< fvScalarMatrix > kSource() const
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
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.
void boundaryManipulate(typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
Manipulate based on a boundary field.
A class for managing temporary objects.
static options & New(const fvMesh &mesh)
Construct fvOptions and register to datbase if not present.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
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.
BasicTurbulenceModel::transportModel transportModel
virtual void correctNut()