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, dict),
94 fixedValueFvPatchVectorField(fpvpvf),
95 filmRegionName_(fpvpvf.filmRegionName_),
96 pyrolysisRegionName_(fpvpvf.pyrolysisRegionName_),
97 phiName_(fpvpvf.phiName_),
98 rhoName_(fpvpvf.rhoName_)
109 fixedValueFvPatchVectorField(fpvpvf, iF),
110 filmRegionName_(fpvpvf.filmRegionName_),
111 pyrolysisRegionName_(fpvpvf.pyrolysisRegionName_),
112 phiName_(fpvpvf.phiName_),
113 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);
187 <<
"Unable to process flux field phi with dimensions " 189 <<
" on patch " << patch().name()
190 <<
" of field " << internalField().name()
191 <<
" in file " << internalField().objectPath()
195 const scalarField UAvePyr(-phiPyr/patch().magSf());
200 Up = alphaFilm*UFilm + (1.0 - alphaFilm)*UAvePyr*nf;
205 fixedValueFvPatchVectorField::updateCoeffs();
215 writeEntryIfDifferent<word>
219 "surfaceFilmProperties",
222 writeEntryIfDifferent<word>
226 "pyrolysisProperties",
229 writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
230 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
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.
virtual void write(Ostream &) const
Write.
Base class for surface film models.
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...
static int & msgType()
Message tag of standard messages.
virtual void write(Ostream &) const
Write.
Macros for easy insertion into run-time selection tables.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet & dimensions() const
Return dimensions.
A class for handling words, derived from string.
Foam::fvPatchFieldMapper.
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...
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
const dimensionSet dimDensity
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
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...
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimVelocity