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 betaStar_*omega_;
148 template<
class TurbulenceModel,
class BasicTurbulenceModel>
163 template<
class TurbulenceModel,
class BasicTurbulenceModel>
178 template<
class TurbulenceModel,
class BasicTurbulenceModel>
199 template<
class TurbulenceModel,
class BasicTurbulenceModel>
209 const word& propertiesName
349 this->runTime_.timeName(),
361 this->runTime_.timeName(),
369 bound(k_, this->kMin_);
370 bound(omega_, this->omegaMin_);
376 template<
class TurbulenceModel,
class BasicTurbulenceModel>
381 alphaK1_.readIfPresent(this->coeffDict());
382 alphaK2_.readIfPresent(this->coeffDict());
383 alphaOmega1_.readIfPresent(this->coeffDict());
384 alphaOmega2_.readIfPresent(this->coeffDict());
385 gamma1_.readIfPresent(this->coeffDict());
386 gamma2_.readIfPresent(this->coeffDict());
387 beta1_.readIfPresent(this->coeffDict());
388 beta2_.readIfPresent(this->coeffDict());
389 betaStar_.readIfPresent(this->coeffDict());
390 a1_.readIfPresent(this->coeffDict());
391 b1_.readIfPresent(this->coeffDict());
392 c1_.readIfPresent(this->coeffDict());
393 F3_.readIfPresent(
"F3", this->coeffDict());
404 template<
class TurbulenceModel,
class BasicTurbulenceModel>
407 if (!this->turbulence_)
431 omega_.boundaryFieldRef().updateCoeffs();
456 (c1_/a1_)*betaStar_*omega_*
max(a1_*omega_, b1_*F23*
sqrt(S2))
458 -
fvm::SuSp((2.0/3.0)*alpha*rho*gamma*divU, omega_)
459 -
fvm::Sp(alpha*rho*beta*omega_, omega_)
462 alpha*rho*(F1 - scalar(1))*CDkOmega/omega_,
465 + Qsas(S2, gamma, beta)
475 bound(omega_, this->omegaMin_);
485 min(alpha*rho*G, (c1_*betaStar_)*alpha*rho*k_*omega_)
486 -
fvm::SuSp((2.0/3.0)*alpha*rho*divU, k_)
487 -
fvm::Sp(alpha*rho*epsilonByk(F1, F23), k_)
496 bound(k_, this->kMin_);
dimensionedScalar tanh(const dimensionedScalar &ds)
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
fvMatrix< scalar > fvScalarMatrix
const double e
Elementary charge.
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
virtual tmp< fvScalarMatrix > kSource() const
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
void correct(GeometricField< Type, fvPatchField, volMesh > &field)
Apply correction to field.
const dimensionedScalar G
Newtonian constant of gravitation.
BasicTurbulenceModel::alphaField alphaField
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
virtual tmp< fvScalarMatrix > omegaSource() const
dimensionedScalar sqrt(const dimensionedScalar &ds)
Generic dimensioned Type class.
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
void clear() const
If object pointer points to valid object:
const dimensionSet dimVolume(pow3(dimLength))
Implementation of the k-omega-SST turbulence model for incompressible and compressible flows...
bool read(const char *, int32_t &)
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
tmp< fvMatrix< Type > > SuSp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
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)
virtual tmp< volScalarField > epsilonByk(const volScalarField &F1, const volScalarField &F2) const
Return epsilon/k which for standard RAS is betaStar*omega.
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 > &)
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-4.1/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 > &)
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)
virtual tmp< fvScalarMatrix > Qsas(const volScalarField &S2, const volScalarField &gamma, const volScalarField &beta) const
dimensionedScalar pow4(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
volScalarField divU(fvc::div(fvc::absolute(phi, U)))
void boundaryManipulate(typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
Manipulate based on a boundary field.
A class for managing temporary objects.
word group() const
Return group (extension part of name)
static options & New(const fvMesh &mesh)
Construct fvOptions and register to datbase if not present.
T & ref() const
Return non-const reference or generate a fatal error.
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()