31 template<
class BasicMomentumTransportModel>
39 Info<< coeffDict_.dictName() << coeffDict_ <<
endl;
46 template<
class BasicMomentumTransportModel>
55 const viscosity& viscosity
58 BasicMomentumTransportModel
69 laminarDict_(this->subOrEmptyDict(
"laminar")),
70 printCoeffs_(laminarDict_.lookupOrDefault<
Switch>(
"printCoeffs",
false)),
71 coeffDict_(laminarDict_.optionalSubDict(type +
"Coeffs"))
75 this->mesh_.deltaCoeffs();
81 template<
class BasicMomentumTransportModel>
90 const viscosity& viscosity
95 momentumTransportModel::readModelDict
102 if (modelDict.
found(
"laminar"))
104 const word modelType =
107 {
"model",
"laminarModel"}
110 Info<<
"Selecting laminar stress model " << modelType <<
endl;
112 typename dictionaryConstructorTable::iterator cstrIter =
113 dictionaryConstructorTablePtr_->find(modelType);
115 if (cstrIter == dictionaryConstructorTablePtr_->end())
118 <<
"Unknown laminarModel type " 119 << modelType <<
nl <<
nl 120 <<
"Valid laminarModel types:" << endl
121 << dictionaryConstructorTablePtr_->sortedToc()
140 Info<<
"Selecting laminar stress model " 162 template<
class BasicMomentumTransportModel>
167 laminarDict_ <<= this->subDict(
"laminar");
169 coeffDict_ <<= laminarDict_.optionalSubDict(
type() +
"Coeffs");
180 template<
class BasicMomentumTransportModel>
186 IOobject::groupName(
"nut", this->alphaRhoPhi_.group()),
193 template<
class BasicMomentumTransportModel>
207 template<
class BasicMomentumTransportModel>
213 IOobject::groupName(
"k", this->alphaRhoPhi_.group()),
220 template<
class BasicMomentumTransportModel>
226 IOobject::groupName(
"epsilon", this->alphaRhoPhi_.group()),
233 template<
class BasicMomentumTransportModel>
239 IOobject::groupName(
"omega", this->alphaRhoPhi_.group()),
246 template<
class BasicMomentumTransportModel>
252 IOobject::groupName(
"sigma", this->alphaRhoPhi_.group()),
259 template<
class BasicMomentumTransportModel>
const dimensionSet dimViscosity
static word group(const word &name)
Return group (extension part of name)
static autoPtr< laminarModel > New(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity)
Return a reference to the selected laminar model.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Info<< "Predicted p max-min : "<< max(p).value()<< " "<< min(p).value()<< endl;rho==max(rho0+psi *p, rhoMin);# 1 "/home/ubuntu/OpenFOAM-10/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()
dimensionedSymmTensor sqr(const dimensionedVector &dv)
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
Ostream & endl(Ostream &os)
Add newline and flush stream.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, y/n, t/f, or none/any.
virtual tmp< volScalarField > omega() const
Return the turbulence specific dissipation rate,.
const dimensionSet dimless
BasicMomentumTransportModel::rhoField rhoField
BasicMomentumTransportModel::alphaField alphaField
virtual bool read()
Read model coefficients if they have changed.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
const dimensionSet dimTime
A class for handling words, derived from string.
Info<< "Reading field p\"<< endl;volScalarField p(IOobject("p", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field U\"<< endl;volVectorField U(IOobject("U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);pressureReference pressureReference(p, simple.dict());mesh.schemes().setFluxRequired(p.name());Info<< "Reading field pa\"<< endl;volScalarField pa(IOobject("pa", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field Ua\"<< endl;volVectorField Ua(IOobject("Ua", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);# 65 "/home/ubuntu/OpenFOAM-10/applications/solvers/incompressible/adjointShapeOptimisationFoam/createFields.H" 2label paRefCell=0;scalar paRefValue=0.0;setRefCell(pa, simple.dict(), paRefCell, paRefValue);mesh.schemes().setFluxRequired(pa.name());autoPtr< viscosityModel > viscosity(viscosityModel::New(mesh))
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate,.
volScalarField scalarField(fieldObject, mesh)
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity, i.e. 0 for laminar flow.
const dimensionSet dimVelocity
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy, i.e. 0 for laminar flow.
dimensioned< symmTensor > dimensionedSymmTensor
Dimensioned tensor obtained from generic dimensioned type.
virtual void printCoeffs(const word &type)
Print model coefficients.
virtual tmp< volSymmTensorField > sigma() const
Return the stress tensor [m^2/s^2], i.e. 0 for laminar flow.
virtual void correct()
Correct the laminar viscosity.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
laminarModel(const word &type, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity)
Construct from components.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Momentum transport model for Stokes flow.
A class for managing temporary objects.
const objectRegistry & db() const
Return the local objectRegistry.
ITstream & lookupBackwardsCompatible(const wordList &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream, trying a list of keywords.