41 fixedValueFvPatchVectorField(p, iF),
42 filmRegionName_(
"surfaceFilmProperties"),
43 pyrolysisRegionName_(
"pyrolysisProperties"),
58 fixedValueFvPatchVectorField(ptf, p, iF, mapper),
59 filmRegionName_(ptf.filmRegionName_),
60 pyrolysisRegionName_(ptf.pyrolysisRegionName_),
61 phiName_(ptf.phiName_),
62 rhoName_(ptf.rhoName_)
74 fixedValueFvPatchVectorField(p, iF),
96 fixedValueFvPatchVectorField(fpvpvf),
97 filmRegionName_(fpvpvf.filmRegionName_),
98 pyrolysisRegionName_(fpvpvf.pyrolysisRegionName_),
99 phiName_(fpvpvf.phiName_),
100 rhoName_(fpvpvf.rhoName_)
111 fixedValueFvPatchVectorField(fpvpvf, iF),
112 filmRegionName_(fpvpvf.filmRegionName_),
113 pyrolysisRegionName_(fpvpvf.pyrolysisRegionName_),
114 phiName_(fpvpvf.phiName_),
115 rhoName_(fpvpvf.rhoName_)
136 bool foundFilm = db().time().foundObject<filmModelType>(filmRegionName_);
138 bool foundPyrolysis =
139 db().time().foundObject<pyrModelType>(pyrolysisRegionName_);
141 if (!foundFilm || !foundPyrolysis)
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 vectorField UFilm = filmModel.Us().boundaryField()[filmPatchi];
161 filmModel.toPrimary(filmPatchi, UFilm);
164 const pyrModelType& pyrModel =
165 db().time().lookupObject<pyrModelType>(pyrolysisRegionName_);
167 const label pyrPatchi = pyrModel.regionPatchID(patchi);
169 scalarField phiPyr = pyrModel.phiGas().boundaryField()[pyrPatchi];
170 pyrModel.toPrimary(pyrPatchi, phiPyr);
189 <<
"Unable to process flux field phi with dimensions " 191 <<
" on patch " << patch().name()
192 <<
" of field " << internalField().name()
193 <<
" in file " << internalField().objectPath()
197 const scalarField UAvePyr(-phiPyr/patch().magSf());
202 Up = alphaFilm*UFilm + (1.0 - alphaFilm)*UAvePyr*nf;
207 fixedValueFvPatchVectorField::updateCoeffs();
217 writeEntryIfDifferent<word>
221 "surfaceFilmProperties",
224 writeEntryIfDifferent<word>
228 "pyrolysisProperties",
231 writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
232 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
233 writeEntry(
"value", os);
This boundary condition is designed to be used in conjunction with surface film and pyrolysis modelli...
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.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
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...
volVectorField vectorField(fieldObject, mesh)
static int & msgType()
Message tag of standard messages.
Macros for easy insertion into run-time selection tables.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
makePatchTypeField(fvPatchVectorField, SRFFreestreamVelocityFvPatchVectorField)
A class for handling words, derived from string.
Foam::fvPatchFieldMapper.
virtual label size() const
Return size.
const dimensionSet & dimensions() const
Return dimensions.
filmPyrolysisVelocityCoupledFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const dimensionSet dimDensity
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Base class for surface film models.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
virtual void write(Ostream &) const
Write.
const dimensionSet dimArea(sqr(dimLength))
virtual void write(Ostream &) const
Write.
const dimensionSet dimVelocity