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(),
109 this->runTime_.
name(),
114 calcNu(this->strainRate())
121 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
130 nuInf_/(
sqr(1 - K_*lambda_) + rootVSmall)
139 sigmay_.dimensions(),
149 sigmay_/(strainRate + 1
e-4*(sigmay_ + sigmaySmall)/nu0_) + nu(),
158 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
160 lambdaThixotropic<BasicMomentumTransportModel, ViscousStress>::
169 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
174 a_.read(this->typeDict());
175 b_.read(this->typeDict());
176 d_.read(this->typeDict());
185 nu0_.read(this->typeDict());
186 nuInf_.read(this->typeDict());
188 K_ = (1 -
sqrt(nuInf_/nu0_));
199 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
205 this->groupName(
"nuEff"),
211 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
218 return nu_.boundaryField()[
patchi];
222 template<
class BasicMomentumTransportModel,
template<
class>
class ViscousStress>
255 lambdaEqn.
ref().relax();
260 lambda_.maxMin(scalar(0), scalar(1));
262 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))
const dimensionSet dimless
const dimensionSet kinematicPressure
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 & 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)
word typedName(Name name)
Return the name of the object within the given type.
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.