32template<
class ThermoType>
33const ThermoType& Foam::pureZoneMixture<ThermoType>::constructSpeciesData
38 const auto& czs = mesh_.cellZones();
40 const auto* dictPtr =
thermoDict.findDict(
"none");
42 speciesData_.setSize(dictPtr ? czs.size()+1 : czs.size());
48 new ThermoType(
thermoDict.subDict(czs[i].name()))
54 speciesData_.set(czs.size(),
new ThermoType(*dictPtr));
57 return speciesData_[0];
64template<
class ThermoType>
65Foam::pureZoneMixture<ThermoType>::pureZoneMixture
74 mixture_(
"mixture", constructSpeciesData(
thermoDict.subDict(
"mixture")))
81 for (
const auto& cz : czs)
87 if (speciesData_.
size() == czs.size())
89 const label noneCelli = zoneID_.find(czs.size());
92 FatalErrorInFunction <<
"Have unzoned cell " << noneCelli
93 <<
" at " << mesh_.cellCentres()[noneCelli]
94 <<
" but no \"none\" entry in \"mixture\""
103template<
class ThermoType>
109 mixture_ = speciesData_[zoneID_[celli]];
114template<
class ThermoType>
121 const label celli = mesh_.boundary()[patchi].faceCells()[facei];
122 mixture_ = speciesData_[zoneID_[celli]];
127template<
class ThermoType>
140template<
class ThermoType>
154template<
class ThermoType>
for(const label curEdgei :curPointEdges)
void setSize(label n)
Alias for resize().
A List with indirect addressing. Like IndirectList but does not store addressing.
label size() const noexcept
The number of entries in the list.
basicMixture(const dictionary &, const fvMesh &, const word &)
Construct from dictionary, mesh and phase name.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
const cellZoneMesh & cellZones() const noexcept
Return cell zone mesh.
label nCells() const noexcept
Number of mesh cells.
const ThermoType & cellMixture(const label celli) const
const ThermoType & cellVolMixture(const scalar p, const scalar T, const label celli) const
const ThermoType & patchFaceMixture(const label patchi, const label facei) const
const ThermoType & patchFaceVolMixture(const scalar p, const scalar T, const label patchi, const label facei) const
void read(const dictionary &)
Read dictionary.
A class for handling words, derived from Foam::string.
const dictionary & thermoDict
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define forAll(list, i)
Loop across all elements in list.