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")),
48 Uwall_(
"Uwall",
dict,
p.size()),
49 thermalCreep_(
dict.lookupOrDefault(
"thermalCreep", true)),
50 curvature_(
dict.lookupOrDefault(
"curvature", true))
54 mag(accommodationCoeff_) < small
55 ||
mag(accommodationCoeff_) > 2.0
61 ) <<
"unphysical accommodationCoeff_ specified"
62 <<
"(0 < accommodationCoeff_ <= 1)" <<
endl
66 if (
dict.found(
"value"))
73 if (
dict.found(
"refValue") &&
dict.found(
"valueFraction"))
76 this->valueFraction() =
81 this->refValue() = *
this;
82 this->valueFraction() = scalar(1);
96 mixedFixedValueSlipFvPatchVectorField(mspvf,
p, iF, mapper),
98 rhoName_(mspvf.rhoName_),
99 psiName_(mspvf.psiName_),
100 muName_(mspvf.muName_),
101 accommodationCoeff_(mspvf.accommodationCoeff_),
102 Uwall_(mapper(mspvf.Uwall_)),
103 thermalCreep_(mspvf.thermalCreep_),
104 curvature_(mspvf.curvature_)
114 mixedFixedValueSlipFvPatchVectorField(mspvf, iF),
115 TName_(mspvf.TName_),
116 rhoName_(mspvf.rhoName_),
117 psiName_(mspvf.psiName_),
118 muName_(mspvf.muName_),
119 accommodationCoeff_(mspvf.accommodationCoeff_),
120 Uwall_(mspvf.Uwall_),
121 thermalCreep_(mspvf.thermalCreep_),
122 curvature_(mspvf.curvature_)
134 mixedFixedValueSlipFvPatchVectorField::map(pvf, mapper);
137 refCast<const maxwellSlipUFvPatchVectorField>(pvf);
139 mapper(Uwall_, mspvf.Uwall_);
148 mixedFixedValueSlipFvPatchVectorField::reset(pvf);
151 refCast<const maxwellSlipUFvPatchVectorField>(pvf);
153 Uwall_.reset(mspvf.Uwall_);
174 * (2.0 - accommodationCoeff_)/accommodationCoeff_
178 valueFraction() = (1.0/(1.0 + patch().deltaCoeffs()*C1*pnu));
192 refValue() -= 3.0*pnu/(4.0*pT)*
transform(
I -
n*
n, gradpT);
203 refValue() += C1/prho*
transform(
I -
n*
n, divDevTauFlux/patch().magSf());
206 mixedFixedValueSlipFvPatchVectorField::updateCoeffs();
213 writeEntryIfDifferent<word>(os,
"T",
"T", TName_);
214 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
215 writeEntryIfDifferent<word>(os,
"psi",
"psi", psiName_);
216 writeEntryIfDifferent<word>(os,
"mu",
"mu", muName_);
218 writeEntry(os,
"accommodationCoeff", accommodationCoeff_);
220 writeEntry(os,
"thermalCreep", thermalCreep_);
224 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...
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....
Foam::fvPatchFieldMapper.
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 map(const fvPatchVectorField &, const fvPatchFieldMapper &)
Map the given fvPatchField onto this fvPatchField.
virtual void reset(const fvPatchVectorField &)
Reset the fvPatchField to the given 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.
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
SurfaceField< vector > surfaceVectorField