37 namespace laminarModels
42 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
68 c_(
"c",
pow(
dimTime, d_.value() - scalar(1)), this->typeDict(
type)),
71 K_(1 -
sqrt(nuInf_/nu0_)),
72 BinghamPlastic_(this->typeDict(
type).
found(
"sigmay")),
89 residualAlpha_(
"residualAlpha",
dimless, this->typeDict(
type), 1
e-6),
95 this->runTime_.
name(),
108 this->runTime_.
name(),
113 calcNu(this->strainRate())
120 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
129 nuInf_/(
sqr(1 - K_*lambda_) + rootVSmall)
138 sigmay_.dimensions(),
148 sigmay_/(strainRate + 1
e-4*(sigmay_ + sigmaySmall)/nu0_) + nu(),
157 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
159 lambdaThixotropic<BasicMomentumTransportModel, ViscousStress>::
168 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
173 a_.read(this->typeDict());
174 b_.read(this->typeDict());
175 d_.read(this->typeDict());
184 nu0_.read(this->typeDict());
185 nuInf_.read(this->typeDict());
187 K_ = (1 -
sqrt(nuInf_/nu0_));
198 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
204 this->groupName(
"nuEff"),
210 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
217 return nu_.boundaryField()[
patchi];
221 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
254 lambdaEqn.
ref().relax();
259 lambda_.maxMin(scalar(0), scalar(1));
261 nu_ = calcNu(strainRate);
static fvModels & New(const word &name, const fvMesh &mesh)
Construct and return the named DemandDrivenMeshObject.
Generic GeometricField class.
static tmp< GeometricField< Type, GeoMesh, PrimitiveField > > New(const word &name, const Internal &, const PtrList< Patch > &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Finite volume constraints.
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
tmp< fvMatrix< Type > > source(const VolField< Type > &field) const
Return source for an equation.
Templated abstract base class for laminar transport models.
virtual void correct()
Predict the laminar viscosity.
Thixotropic viscosity momentum transport model based on the evolution of the structural parameter :
BasicMomentumTransportModel::alphaField alphaField
virtual void correct()
Correct the lambdaThixotropic viscosity.
lambdaThixotropic(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity, const word &type=typeName)
Construct from components.
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity.
virtual bool read()
Read momentumTransport dictionary.
BasicMomentumTransportModel::rhoField rhoField
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
Template function which returns the un-mangled name of a given type. Useful for types which do not ha...
Abstract base class for all fluid physical properties.
A class for handling words, derived from string.
Foam::fvConstraints & fvConstraints(Foam::fvConstraints::New(mesh))
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
Calculate the matrix for the divergence of the given field and flux.
Calculate the matrix for implicit and explicit sources.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
tmp< VolField< typename outerProduct< vector, Type >::type > > grad(const SurfaceField< Type > &ssf)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const VolField< Type > &)
tmp< fvMatrix< Type > > ddt(const VolField< Type > &vf)
const dimensionSet & dimless
const dimensionSet & dimKinematicViscosity
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< DimensionedField< typename outerProduct< Type, Type >::type, GeoMesh, Field >> sqr(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
const dimensionSet & dimTime
dimensioned< Type > min(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
const dimensionSet & dimDensity
word typedName(Name name)
Return the name of the object within the given type.
const dimensionSet & dimPressure
void symm(pointPatchField< tensor > &, const pointPatchField< tensor > &)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
tmp< DimensionedField< typename powProduct< Type, r >::type, GeoMesh, Field > > pow(const DimensionedField< Type, GeoMesh, PrimitiveField > &df, typename powProduct< Type, r >::type)
tmp< DimensionedField< scalar, GeoMesh, Field > > mag(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensioned< Type > max(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
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.
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.