41 const DimensionedField<scalar, volMesh>& iF
44 mixedFvPatchScalarField(
p, iF),
47 psiName_(
"thermo:psi"),
49 accommodationCoeff_(1.0),
50 Twall_(
p.size(), Zero),
55 valueFraction() = 0.0;
61 const smoluchowskiJumpTFvPatchScalarField& ptf,
63 const DimensionedField<scalar, volMesh>& iF,
64 const fvPatchFieldMapper& mapper
67 mixedFvPatchScalarField(ptf,
p, iF, mapper),
69 rhoName_(ptf.rhoName_),
70 psiName_(ptf.psiName_),
72 accommodationCoeff_(ptf.accommodationCoeff_),
81 const DimensionedField<scalar, volMesh>& iF,
85 mixedFvPatchScalarField(
p, iF),
86 UName_(
dict.getOrDefault<word>(
"U",
"U")),
87 rhoName_(
dict.getOrDefault<word>(
"rho",
"rho")),
88 psiName_(
dict.getOrDefault<word>(
"psi",
"thermo:psi")),
89 muName_(
dict.getOrDefault<word>(
"mu",
"thermo:mu")),
90 accommodationCoeff_(
dict.
get<scalar>(
"accommodationCoeff")),
91 Twall_(
"Twall",
dict,
p.size()),
92 gamma_(
dict.getOrDefault<scalar>(
"gamma", 1.4))
96 mag(accommodationCoeff_) < SMALL
97 ||
mag(accommodationCoeff_) > 2.0
101 <<
"unphysical accommodationCoeff specified"
102 <<
"(0 < accommodationCoeff <= 1)" <<
endl
103 <<
exit(FatalIOError);
106 if (!this->readValueEntry(
dict))
109 this->extrapolateInternal();
114 valueFraction() = 0.0;
120 const smoluchowskiJumpTFvPatchScalarField& ptpsf,
121 const DimensionedField<scalar, volMesh>& iF
124 mixedFvPatchScalarField(ptpsf, iF),
125 accommodationCoeff_(ptpsf.accommodationCoeff_),
126 Twall_(ptpsf.Twall_),
136 const fvPatchFieldMapper& m
139 mixedFvPatchScalarField::autoMap(m);
182 *2.0*gamma_/
Pr.
value()/(gamma_ + 1.0)
183 *(2.0 - accommodationCoeff_)/accommodationCoeff_
189 valueFraction() = (1.0/(1.0 +
patch().deltaCoeffs()*C2));
193 mixedFvPatchScalarField::updateCoeffs();
207 os.
writeEntry(
"accommodationCoeff", accommodationCoeff_);
Macros for easy insertion into run-time selection tables.
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Ostream & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
Ostream & writeEntryIfDifferent(const word &key, const T &value1, const T &value2)
Write a keyword/value entry only when the two values differ.
static const word dictName
The dictionary name ("thermophysicalProperties").
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const Type & value() const noexcept
Return const reference to value.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void write(Ostream &) const
Write.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
Smoluchowski temperature jump boundary condition.
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void rmap(const fvPatchField< scalar > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual void write(Ostream &) const
Write.
smoluchowskiJumpTFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
Base-class for thermophysical properties of solids, liquids and gases providing an interface compatib...
A class for handling words, derived from Foam::string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
Define a concrete fvPatchField type and add to run-time tables Example, (fvPatchScalarField,...
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
constexpr scalar piByTwo(0.5 *M_PI)
const std::string patch
OpenFOAM patch number as a std::string.
GeometricField< vector, fvPatchField, volMesh > volVectorField
const dimensionSet dimless
Dimensionless.
List< label > labelList
A List of labels.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
fvPatchField< scalar > fvPatchScalarField
dimensionedScalar Pr("Pr", dimless, laminarTransport)