31 template <
class ParcelType>
33 ReactingParcel<ParcelType>::propHeader
41 template<
class ParcelType>
61 const label nGas = cR.
composition().componentNames(idGas).size();
63 const label nLiquid = cR.
composition().componentNames(idLiquid).size();
65 const label nSolid = cR.
composition().componentNames(idSolid).size();
68 YLiquid_.setSize(nLiquid);
69 YSolid_.setSize(nSolid);
71 is >> YGas_ >> YLiquid_ >> YSolid_;
75 YGas_ /= YMix[GAS] + ROOTVSMALL;
76 YLiquid_ /= YMix[LIQ] + ROOTVSMALL;
77 YSolid_ /= YMix[SLD] + ROOTVSMALL;
83 "ReactingMultiphaseParcel<ParcelType>::ReactingMultiphaseParcel"
85 "const Cloud<ParcelType>&, "
93 template<
class ParcelType>
134 "Y" + gasNames[j] + stateLabels[idGas],
143 p.
YGas_[j] = YGas[i++]/(p.
Y()[GAS] + ROOTVSMALL);
153 "Y" + liquidNames[j] + stateLabels[idLiquid],
162 p.
YLiquid_[j] = YLiquid[i++]/(p.
Y()[LIQ] + ROOTVSMALL);
172 "Y" + solidNames[j] + stateLabels[idSolid],
181 p.
YSolid_[j] = YSolid[i++]/(p.
Y()[SLD] + ROOTVSMALL);
187 template<
class ParcelType>
213 "Y" + gasNames[j] + stateLabels[idGas],
223 YGas[i++] = p0.
YGas()[j]*p0.
Y()[GAS];
237 "Y" + liquidNames[j] + stateLabels[idLiquid],
247 YLiquid[i++] = p0.
YLiquid()[j]*p0.
Y()[LIQ];
261 "Y" + solidNames[j] + stateLabels[idSolid],
271 YSolid[i++] = p0.
YSolid()[j]*p0.
Y()[SLD];
282 template<
class ParcelType>
292 if (os.
format() == IOstream::ASCII)
294 os << static_cast<const ReactingParcel<ParcelType>&>(
p)
295 << token::SPACE << YGasLoc
296 << token::SPACE << YLiquidLoc
297 << token::SPACE << YSolidLoc;
301 os << static_cast<const ReactingParcel<ParcelType>&>(
p);
302 os << YGasLoc << YLiquidLoc << YSolidLoc;
308 "Ostream& operator<<"
311 "const ReactingMultiphaseParcel<ParcelType>&"