45 filmRegionName_(
"surfaceFilmProperties"),
46 pyrolysisRegionName_(
"pyrolysisProperties"),
55 const this_bctype& ptf,
61 parent_bctype(ptf,
p, iF, mapper),
62 filmRegionName_(ptf.filmRegionName_),
63 pyrolysisRegionName_(ptf.pyrolysisRegionName_),
64 phiName_(ptf.phiName_),
65 rhoName_(ptf.rhoName_)
77 parent_bctype(
p, iF,
dict),
80 dict.getOrDefault<
word>(
"filmRegion",
"surfaceFilmProperties")
84 dict.getOrDefault<
word>(
"pyrolysisRegion",
"pyrolysisProperties")
86 phiName_(
dict.getOrDefault<
word>(
"phi",
"phi")),
87 rhoName_(
dict.getOrDefault<
word>(
"rho",
"rho"))
94 const this_bctype& fptpsf,
98 parent_bctype(fptpsf, iF),
99 filmRegionName_(fptpsf.filmRegionName_),
100 pyrolysisRegionName_(fptpsf.pyrolysisRegionName_),
101 phiName_(fptpsf.phiName_),
102 rhoName_(fptpsf.rhoName_)
116 const auto* filmModelPtr = db().time().findObject
117 <regionModels::surfaceFilmModels::surfaceFilmRegionModel>
121 const auto* pyrModelPtr = db().time().findObject
122 <regionModels::pyrolysisModels::pyrolysisModel>
123 (pyrolysisRegionName_);
125 if (!filmModelPtr || !pyrModelPtr)
131 const auto& filmModel = *filmModelPtr;
132 const auto& pyrModel = *pyrModelPtr;
141 const label patchi =
patch().index();
144 const label filmPatchi = filmModel.regionPatchID(patchi);
146 scalarField alphaFilm = filmModel.alpha().boundaryField()[filmPatchi];
147 filmModel.toPrimary(filmPatchi, alphaFilm);
149 scalarField TFilm = filmModel.Ts().boundaryField()[filmPatchi];
150 filmModel.toPrimary(filmPatchi, TFilm);
153 const label pyrPatchi = pyrModel.regionPatchID(patchi);
155 scalarField TPyr = pyrModel.
T().boundaryField()[pyrPatchi];
156 pyrModel.toPrimary(pyrPatchi, TPyr);
160 Tp = alphaFilm*TFilm + (1.0 - alphaFilm)*TPyr;
164 this->parent_bctype::updateCoeffs();
177 "surfaceFilmProperties",
183 "pyrolysisProperties",
199 filmPyrolysisTemperatureCoupledFvPatchScalarField
virtual void write(Ostream &) const
Write.
static int incrMsgType(int val=1) noexcept
Increment the message tag for standard messages.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
filmPyrolysisTemperatureCoupledFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
virtual void write(Ostream &) const
Write.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
static int & msgType() noexcept
Message tag of standard messages.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
Ostream & writeEntryIfDifferent(const word &key, const T &refValue, const T &value)
Write a keyword/value entry only if the value differs from the reference value.
Macros for easy insertion into run-time selection tables.
fvPatchField< scalar > fvPatchScalarField
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
A FieldMapper for finite-volume patch fields.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const std::string patch
OpenFOAM patch number as a std::string.
tmp< Field< Type > > T() const
Return the field transpose (only defined for second rank tensors)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)