41 fixedValueFvPatchScalarField(p, iF),
42 filmRegionName_(
"surfaceFilmProperties"),
43 pyrolysisRegionName_(
"pyrolysisProperties"),
58 fixedValueFvPatchScalarField(ptf, p, iF, mapper),
59 filmRegionName_(ptf.filmRegionName_),
60 pyrolysisRegionName_(ptf.pyrolysisRegionName_),
61 phiName_(ptf.phiName_),
62 rhoName_(ptf.rhoName_)
74 fixedValueFvPatchScalarField(p, iF, dict),
94 fixedValueFvPatchScalarField(fptpsf),
95 filmRegionName_(fptpsf.filmRegionName_),
96 pyrolysisRegionName_(fptpsf.pyrolysisRegionName_),
97 phiName_(fptpsf.phiName_),
98 rhoName_(fptpsf.rhoName_)
109 fixedValueFvPatchScalarField(fptpsf, iF),
110 filmRegionName_(fptpsf.filmRegionName_),
111 pyrolysisRegionName_(fptpsf.pyrolysisRegionName_),
112 phiName_(fptpsf.phiName_),
113 rhoName_(fptpsf.rhoName_)
136 bool filmOk = db().time().foundObject<filmModelType>(filmRegionName_);
139 bool pyrOk = db().time().foundObject<pyrModelType>(pyrolysisRegionName_);
141 if (!filmOk || !pyrOk)
152 const filmModelType& filmModel =
153 db().time().lookupObject<filmModelType>(filmRegionName_);
155 const label filmPatchi = filmModel.regionPatchID(patchi);
157 scalarField alphaFilm = filmModel.alpha().boundaryField()[filmPatchi];
158 filmModel.toPrimary(filmPatchi, alphaFilm);
160 scalarField TFilm = filmModel.Ts().boundaryField()[filmPatchi];
161 filmModel.toPrimary(filmPatchi, TFilm);
164 const pyrModelType& pyrModel =
165 db().time().lookupObject<pyrModelType>(pyrolysisRegionName_);
167 const label pyrPatchi = pyrModel.regionPatchID(patchi);
169 scalarField TPyr = pyrModel.
T().boundaryField()[pyrPatchi];
170 pyrModel.toPrimary(pyrPatchi, TPyr);
174 Tp = alphaFilm*TFilm + (1.0 - alphaFilm)*TPyr;
179 fixedValueFvPatchScalarField::updateCoeffs();
189 writeEntryIfDifferent<word>
193 "surfaceFilmProperties",
196 writeEntryIfDifferent<word>
200 "pyrolysisProperties",
203 writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
204 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
205 writeEntry(
"value", os);
Base class for pyrolysis models.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
virtual void write(Ostream &) const
Write.
Base class for surface film models.
A list of keyword definitions, which are a keyword followed by any number of values (e...
filmPyrolysisTemperatureCoupledFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
static int & msgType()
Message tag of standard messages.
virtual void write(Ostream &) const
Write.
Macros for easy insertion into run-time selection tables.
A class for handling words, derived from string.
Foam::fvPatchFieldMapper.
This boundary condition is designed to be used in conjunction with surface film and pyrolysis modelli...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
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)