31 template<
class ParcelType>
32 Foam::string Foam::ReactingMultiphaseParcel<ParcelType>::propertyList_ =
35 template<
class ParcelType>
44 template<
class ParcelType>
52 ParcelType(mesh, is, readFields),
67 YLiquid_.transfer(Yl);
72 YGas_ /= YMix[GAS] + rootVSmall;
73 YLiquid_ /= YMix[LIQ] + rootVSmall;
74 YSolid_ /= YMix[SLD] + rootVSmall;
80 "ReactingMultiphaseParcel<ParcelType>::ReactingMultiphaseParcel" 90 template<
class ParcelType>
91 template<
class CloudType>
98 template<
class ParcelType>
99 template<
class CloudType,
class CompositionType>
103 const CompositionType& compModel
106 bool valid = c.
size();
111 const label idGas = compModel.idGas();
112 const wordList& gasNames = compModel.componentNames(idGas);
113 const label idLiquid = compModel.idLiquid();
114 const wordList& liquidNames = compModel.componentNames(idLiquid);
115 const label idSolid = compModel.idSolid();
117 const wordList& stateLabels = compModel.stateLabels();
135 "Y" + gasNames[j] + stateLabels[idGas],
145 p.
YGas_[j] = YGas[i++]/(p.Y()[GAS] + rootVSmall);
155 "Y" + liquidNames[j] + stateLabels[idLiquid],
165 p.
YLiquid_[j] = YLiquid[i++]/(p.Y()[LIQ] + rootVSmall);
175 "Y" + solidNames[j] + stateLabels[idSolid],
185 p.
YSolid_[j] = YSolid[i++]/(p.Y()[SLD] + rootVSmall);
191 template<
class ParcelType>
192 template<
class CloudType>
195 ParcelType::writeFields(c);
199 template<
class ParcelType>
200 template<
class CloudType,
class CompositionType>
204 const CompositionType& compModel
207 ParcelType::writeFields(c, compModel);
213 const wordList& stateLabels = compModel.stateLabels();
215 const label idGas = compModel.idGas();
216 const wordList& gasNames = compModel.componentNames(idGas);
223 "Y" + gasNames[j] + stateLabels[idGas],
233 YGas[i++] = p0.
YGas()[j]*p0.Y()[GAS];
239 const label idLiquid = compModel.idLiquid();
240 const wordList& liquidNames = compModel.componentNames(idLiquid);
247 "Y" + liquidNames[j] + stateLabels[idLiquid],
257 YLiquid[i++] = p0.
YLiquid()[j]*p0.Y()[LIQ];
260 YLiquid.write(np > 0);
263 const label idSolid = compModel.idSolid();
271 "Y" + solidNames[j] + stateLabels[idSolid],
281 YSolid[i++] = p0.
YSolid()[j]*p0.Y()[SLD];
284 YSolid.write(np > 0);
292 template<
class ParcelType>
302 if (os.format() == IOstream::ASCII)
304 os << static_cast<const ParcelType&>(
p)
305 << token::SPACE << YGasLoc
306 << token::SPACE << YLiquidLoc
307 << token::SPACE << YSolidLoc;
311 os << static_cast<const ParcelType&>(
p);
312 os << YGasLoc << YLiquidLoc << YSolidLoc;
318 "Ostream& operator<<" 321 "const ReactingMultiphaseParcel<ParcelType>&" #define forAll(list, i)
Loop across all elements in list.
static void writeFields(const CloudType &c, const CompositionType &compModel)
Write.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the specified type.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
#define forAllIter(Container, container, iter)
Iterate across all elements in the container object of type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
void size(const label)
Override size to be inconsistent with allocated storage.
const wordList solidNames(rp.found("solid") ? rp["solid"] :wordList(0))
label size() const
Return the number of particles in the cloud.
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
static void readFields(CloudType &c, const CompositionType &compModel)
Read.
ReactingMultiphaseParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, position and topology.
scalarField YGas_
Mass fractions of gases [].
const scalarField & YGas() const
Return const access to mass fractions of gases.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
scalarField YSolid_
Mass fractions of solids [].
const scalarField & YLiquid() const
Return const access to mass fractions of liquids.
scalarField YLiquid_
Mass fractions of liquids [].
Multiphase variant of the reacting parcel class with one/two-way coupling with the continuous phase...
Mesh consisting of general polyhedral cells.
void transfer(List< T > &)
Transfer contents of the argument List into this.
A class for handling character strings derived from std::string.
Templated base class for dsmc cloud.
IOobject fieldIOobject(const word &fieldName, const IOobject::readOption r) const
Helper to construct IOobject for field and current time.
A primitive field of type <T> with automated input and output.
const scalarField & YSolid() const
Return const access to mass fractions of solids.