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();
116 const wordList& solidNames = compModel.componentNames(idSolid);
117 const wordList& stateLabels = compModel.stateLabels();
135 "Y" + gasNames[j] + stateLabels[idGas],
150 p.
YGas_[j] = YGas[i++]/(p.Y()[GAS] + rootVSmall);
160 "Y" + liquidNames[j] + stateLabels[idLiquid],
175 p.
YLiquid_[j] = YLiquid[i++]/(p.Y()[LIQ] + rootVSmall);
185 "Y" + solidNames[j] + stateLabels[idSolid],
200 p.
YSolid_[j] = YSolid[i++]/(p.Y()[SLD] + rootVSmall);
206 template<
class ParcelType>
207 template<
class CloudType>
210 ParcelType::writeFields(c);
214 template<
class ParcelType>
215 template<
class CloudType,
class CompositionType>
219 const CompositionType& compModel
222 ParcelType::writeFields(c, compModel);
228 const wordList& stateLabels = compModel.stateLabels();
230 const label idGas = compModel.idGas();
231 const wordList& gasNames = compModel.componentNames(idGas);
238 "Y" + gasNames[j] + stateLabels[idGas],
253 YGas[i++] = p0.
YGas()[j]*p0.Y()[GAS];
259 const label idLiquid = compModel.idLiquid();
260 const wordList& liquidNames = compModel.componentNames(idLiquid);
267 "Y" + liquidNames[j] + stateLabels[idLiquid],
282 YLiquid[i++] = p0.
YLiquid()[j]*p0.Y()[LIQ];
285 YLiquid.write(np > 0);
288 const label idSolid = compModel.idSolid();
289 const wordList& solidNames = compModel.componentNames(idSolid);
296 "Y" + solidNames[j] + stateLabels[idSolid],
311 YSolid[i++] = p0.
YSolid()[j]*p0.Y()[SLD];
314 YSolid.write(np > 0);
322 template<
class ParcelType>
332 if (os.format() == IOstream::ASCII)
334 os << static_cast<const ParcelType&>(
p)
335 << token::SPACE << YGasLoc
336 << token::SPACE << YLiquidLoc
337 << token::SPACE << YSolidLoc;
341 os << static_cast<const ParcelType&>(
p);
342 os << YGasLoc << YLiquidLoc << YSolidLoc;
348 "Ostream& operator<<" 351 "const ReactingMultiphaseParcel<ParcelType>&" #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.
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 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.
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.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
Base cloud calls templated on particle type.
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.