53 > Foam::energyRegionCoupledFvPatchScalarField::methodTypeNames_;
58 void Foam::energyRegionCoupledFvPatchScalarField::setMethod()
const 60 if (method_ == UNDEFINED)
64 this->db().foundObject<compressible::turbulenceModel>
82 ®ionCoupledPatch_.nbrMesh().lookupObject<
basicThermo>
115 return turbModel.
kappaEff(patch().index());
127 return thermo.
kappa(patch().index());
134 <<
" on mesh " << this->db().name() <<
" patch " 136 <<
" could not find a method in. Methods are: " 137 << methodTypeNames_.toc()
138 <<
" Not turbulenceModel or thermophysicalProperties" 160 const fvPatch& nbrPatch = regionCoupledPatch_.neighbFvPatch();
172 nbrField.setMethod();
176 regionCoupledPatch_.regionCoupledPatch().interpolate
184 regionCoupledPatch_.regionCoupledPatch().interpolate
186 nbrPatch.
nf() & nbrPatch.
delta()
190 const scalarField nbrAlphaDelta(nbrAlpha/nbrDeltas);
197 scalar di = alphaDelta[facei];
198 scalar dni = nbrAlphaDelta[facei];
200 w[facei] = di/(di + dni);
217 regionCoupledPatch_(refCast<const regionCoupledBaseFvPatch>(p)),
219 nbrThermoPtr_(
nullptr),
234 regionCoupledPatch_(refCast<const regionCoupledBaseFvPatch>(p)),
235 method_(ptf.method_),
236 nbrThermoPtr_(
nullptr),
250 regionCoupledPatch_(refCast<const regionCoupledBaseFvPatch>(p)),
252 nbrThermoPtr_(
nullptr),
256 if (!isA<regionCoupledBase>(this->patch().patch()))
259 <<
"' not type '" << regionCoupledBase::typeName <<
"'" 260 <<
"\n for patch " << p.name()
261 <<
" of field " << internalField().name()
262 <<
" in file " << internalField().objectPath()
275 regionCoupledPatch_(ptf.regionCoupledPatch_),
276 method_(ptf.method_),
277 nbrThermoPtr_(
nullptr),
290 regionCoupledPatch_(ptf.regionCoupledPatch_),
291 method_(ptf.method_),
292 nbrThermoPtr_(
nullptr),
303 regionCoupledPatch_.patch().deltaCoeffs()
304 *(*
this - patchInternalField());
335 lWeights*patchInternalTemperatureField()
336 + (1.0 - lWeights)*patchNeighbourTemperatureField(),
349 const fvPatch& nbrPatch = regionCoupledPatch_.neighbFvPatch();
357 nbrThermoPtr_->T().primitiveField(), nbrFaceCells
362 regionCoupledPatch_.regionCoupledPatch().interpolate(nbrIntT)
374 patchNeighbourTemperatureField()
const 376 const fvPatch& nbrPatch = regionCoupledPatch_.neighbFvPatch();
382 nbrThermoPtr_->T().primitiveField(), nbrFaceCells
386 regionCoupledPatch_.regionCoupledPatch().interpolate(nbrIntT);
393 patchInternalTemperatureField()
const 395 const labelUList& faceCells = regionCoupledPatch_.faceCells();
399 new scalarField(thermoPtr_->T().primitiveField(), faceCells)
419 if (&psiInternal == &primitiveField())
425 myHE = thermoPtr_->he(pp, Tp, patchi);
433 myHE[facei] = psiInternal[regionCoupledPatch_.faceCells()[facei]];
438 const labelUList& faceCells = regionCoupledPatch_.faceCells();
442 result[faceCells[elemI]] -= coeffs[elemI]*myHE[elemI];
#define forAll(list, i)
Loop across all elements in list.
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 tmp< volScalarField > kappa() const =0
Thermal diffusivity for temperature of mixture [W/m/K].
Abstract base-class for fluid and solid thermodynamic properties.
virtual tmp< volScalarField > kappaEff() const
Effective thermal turbulent diffusivity for temperature.
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.
commsTypes
Types of communications.
T & ref() const
Return non-const reference or generate a fatal error.
tmp< vectorField > nf() const
Return face normals.
To & refCast(From &r)
Reference type cast template function.
virtual void updateInterfaceMatrix(Field< scalar > &result, const scalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
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...
virtual void evaluate(const Pstream::commsTypes commsType)
Evaluate the patch field.
Templated wrapper class to provide compressible turbulence models thermal diffusivity based thermal t...
rhoReactionThermo & thermo
virtual void write(Ostream &) const
Write.
Initialise the NamedEnum HashTable from the static list of names.
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
Macros for easy insertion into run-time selection tables.
const word dictName() const
Return the local dictionary name (final part of scoped name)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
friend Ostream & operator(Ostream &, const Field< scalar > &)
virtual tmp< scalarField > patchNeighbourField() const
Return neighbour coupled internal cell data.
static const word propertiesName
Default name of the turbulence properties dictionary.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Energy region coupled implicit boundary condition. The fvPatch is treated as uncoupled from the delta...
virtual const labelUList & faceCells() const
Return faceCells.
const polyPatch & patch() const
Return the polyPatch.
Foam::fvPatchFieldMapper.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
virtual tmp< scalarField > snGrad() const
Return patch-normal gradient.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
energyRegionCoupledFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
const GeometricField::Patch & lookupPatchField(const word &name, const GeometricField *=nullptr, const Type *=nullptr) const
Lookup and return the patchField of the named field from the.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual void write(Ostream &) const
Write.
tmp< Field< Type > > T() const
Return the field transpose (only defined for second rank tensors)
A class for managing temporary objects.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
virtual tmp< vectorField > delta() const
Return cell-centre to face-centre vector.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)