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_)
134 bool foundFilm = db().time().foundObject<filmModelType>(filmRegionName_);
136 bool foundPyrolysis =
137 db().time().foundObject<pyrModelType>(pyrolysisRegionName_);
139 if (!foundFilm || !foundPyrolysis)
150 const filmModelType& filmModel =
151 db().time().lookupObject<filmModelType>(filmRegionName_);
153 const label filmPatchi = filmModel.regionPatchID(patchi);
155 scalarField alphaFilm = filmModel.alpha().boundaryField()[filmPatchi];
156 filmModel.toPrimary(filmPatchi, alphaFilm);
158 vectorField UFilm = filmModel.Us().boundaryField()[filmPatchi];
159 filmModel.toPrimary(filmPatchi, UFilm);
162 const pyrModelType& pyrModel =
163 db().time().lookupObject<pyrModelType>(pyrolysisRegionName_);
165 const label pyrPatchi = pyrModel.regionPatchID(patchi);
167 scalarField phiPyr = pyrModel.phiGas().boundaryField()[pyrPatchi];
168 pyrModel.toPrimary(pyrPatchi, phiPyr);
185 <<
"Unable to process flux field phi with dimensions " 187 <<
" on patch " << patch().name()
188 <<
" of field " << internalField().name()
189 <<
" in file " << internalField().objectPath()
193 const scalarField UAvePyr(-phiPyr/patch().magSf());
198 Up = alphaFilm*UFilm + (1.0 - alphaFilm)*UAvePyr*nf;
203 fixedValueFvPatchVectorField::updateCoeffs();
213 writeEntryIfDifferent<word>
217 "surfaceFilmProperties",
220 writeEntryIfDifferent<word>
224 "pyrolysisProperties",
227 writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
228 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
229 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.
virtual void write(Ostream &) const
Write.
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
makePatchTypeField(fvPatchVectorField, SRFFreestreamVelocityFvPatchVectorField)
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...
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,.
Base class for surface film models.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimVelocity