42 mixedFixedValueSlipFvPatchVectorField(
p, iF),
43 TName_(
dict.lookupOrDefault<
word>(
"T",
"T")),
44 rhoName_(
dict.lookupOrDefault<
word>(
"rho",
"rho")),
45 psiName_(
dict.lookupOrDefault<
word>(
"psi",
"psi")),
46 muName_(
dict.lookupOrDefault<
word>(
"mu",
"mu")),
47 accommodationCoeff_(
dict.lookup<scalar>(
"accommodationCoeff")),
49 thermalCreep_(
dict.lookupOrDefault(
"thermalCreep", true)),
50 curvature_(
dict.lookupOrDefault(
"curvature", true))
52 if (
mag(accommodationCoeff_) < small ||
mag(accommodationCoeff_) > 2.0)
55 <<
"unphysical accommodationCoeff_ specified"
56 <<
"(0 < accommodationCoeff_ <= 2)" <<
endl
60 if (
dict.found(
"value"))
67 if (
dict.found(
"refValue") &&
dict.found(
"valueFraction"))
71 this->valueFraction() =
76 this->refValue() = *
this;
77 this->valueFraction() = scalar(1);
91 mixedFixedValueSlipFvPatchVectorField(mspvf,
p, iF, mapper),
93 rhoName_(mspvf.rhoName_),
94 psiName_(mspvf.psiName_),
95 muName_(mspvf.muName_),
96 accommodationCoeff_(mspvf.accommodationCoeff_),
97 Uwall_(mapper(mspvf.Uwall_)),
98 thermalCreep_(mspvf.thermalCreep_),
99 curvature_(mspvf.curvature_)
109 mixedFixedValueSlipFvPatchVectorField(mspvf, iF),
110 TName_(mspvf.TName_),
111 rhoName_(mspvf.rhoName_),
112 psiName_(mspvf.psiName_),
113 muName_(mspvf.muName_),
114 accommodationCoeff_(mspvf.accommodationCoeff_),
115 Uwall_(mspvf.Uwall_),
116 thermalCreep_(mspvf.thermalCreep_),
117 curvature_(mspvf.curvature_)
129 mixedFixedValueSlipFvPatchVectorField::map(pvf, mapper);
132 refCast<const maxwellSlipUFvPatchVectorField>(pvf);
134 mapper(Uwall_, mspvf.Uwall_);
143 mixedFixedValueSlipFvPatchVectorField::reset(pvf);
146 refCast<const maxwellSlipUFvPatchVectorField>(pvf);
148 Uwall_.reset(mspvf.Uwall_);
169 * (2.0 - accommodationCoeff_)/accommodationCoeff_
173 valueFraction() = (1.0/(1.0 + patch().deltaCoeffs()*C1*pnu));
187 refValue() -= 3.0*pnu/(4.0*pT)*
transform(
I -
n*
n, gradpT);
198 refValue() += C1/prho*
transform(
I -
n*
n, divDevTauFlux/patch().magSf());
201 mixedFixedValueSlipFvPatchVectorField::updateCoeffs();
208 writeEntryIfDifferent<word>(os,
"T",
"T", TName_);
209 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
210 writeEntryIfDifferent<word>(os,
"psi",
"psi", psiName_);
211 writeEntryIfDifferent<word>(os,
"mu",
"mu", muName_);
213 writeEntry(os,
"accommodationCoeff", accommodationCoeff_);
215 writeEntry(os,
"thermalCreep", thermalCreep_);
219 writeEntry(os,
"valueFraction", valueFraction());
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const
Return dimensions.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
static word groupName(Name name, const word &group)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of keyword definitions, which are a keyword followed by any number of values (e....
Abstract base class for field mapping.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void write(Ostream &) const
Write.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Maxwell slip boundary condition including thermal creep and surface curvature terms that can be optio...
maxwellSlipUFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void write(Ostream &) const
Write.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void reset(const fvPatchVectorField &)
Reset the fvPatchField to the given fvPatchField.
virtual void map(const fvPatchVectorField &, const fieldMapper &)
Map the given fvPatchField onto this fvPatchField.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Calculate the gradient of the given field.
const char *const group
Group name for atomic constants.
const scalar piByTwo(0.5 *pi)
tmp< VolField< typename outerProduct< vector, Type >::type > > grad(const SurfaceField< Type > &ssf)
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
static const Identity< scalar > I
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
dimensionedScalar sqrt(const dimensionedScalar &ds)
VolField< scalar > volScalarField
dimensionSet transform(const dimensionSet &)
dimensioned< scalar > mag(const dimensioned< Type > &)
Field< vector > vectorField
Specialisation of Field<T> for vector.
const dimensionSet dimVelocity
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
SurfaceField< vector > surfaceVectorField
const unitConversion unitFraction