30 template<
class CloudType>
34 return *cloudCopyPtr_;
38 template<
class CloudType>
39 inline const typename CloudType::particleType::constantProperties&
46 template<
class CloudType>
47 inline typename CloudType::particleType::constantProperties&
54 template<
class CloudType>
58 return *compositionModel_;
62 template<
class CloudType>
66 return *phaseChangeModel_;
70 template<
class CloudType>
74 return *phaseChangeModel_;
78 template<
class CloudType>
82 const typename parcelType::trackingData& td
87 const label celli =
p.cell();
89 const scalar m =
p.nParticle()*
p.mass();
91 this->rhokTrans()[celli] += m;
93 this->UTrans()[celli] += m*
p.U();
95 const scalar pc = td.pc();
96 const scalar
T =
p.T();
97 const auto&
Y =
p.Y();
101 const scalar dm = m*
p.Y[i];
102 const label gid = comp.localToCarrierId(0, i);
103 const scalar hs = comp.carrier().Hs(gid, pc,
T);
105 this->rhoTrans(gid)[celli] += dm;
106 this->hsTrans()[celli] += dm*hs;
111 template<
class CloudType>
119 template<
class CloudType>
128 template<
class CloudType>
136 template<
class CloudType>
145 if (this->
solution().semiImplicit(
"Yi"))
153 this->
name() +
":rhoTrans",
158 IOobject::NO_REGISTER
168 rhoTrans_[i]/(this->db().time().deltaTValue()*this->
mesh().V());
173 fvm::Sp(
neg(sourceField)*sourceField/(Yi + YiSMALL), Yi)
174 +
pos0(sourceField)*sourceField;
181 fvm.source() = -rhoTrans_[i]/this->db().time().deltaTValue();
191 template<
class CloudType>
201 this->
name() +
":rhoTrans",
206 IOobject::NO_REGISTER
219 rhoi = rhoTrans_[i]/(this->db().time().deltaTValue()*this->
mesh().V());
226 template<
class CloudType>
236 this->
name() +
":rhoTrans",
241 IOobject::NO_REGISTER
256 sourceField += rhoTrans_[i];
259 sourceField /= this->db().time().deltaTValue()*this->
mesh().V();
266 template<
class CloudType>
278 this->
name() +
":rhoTrans",
283 IOobject::NO_REGISTER
292 if (this->
solution().semiImplicit(
"rho"))
297 sourceField += rhoTrans_[i];
299 sourceField /= this->db().time().deltaTValue()*this->
mesh().V();
310 sourceField += rhoTrans_[i];
313 fvm.
source() = -trhoTrans()/this->db().time().deltaT();
fvMatrix< scalar > fvScalarMatrix
Templated phase change model class.
basicSpecieMixture & composition
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
const PtrList< volScalarField::Internal > & rhoTrans() const
Return const access to mass source fields.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
Generic dimensioned Type class.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
const dimensionSet dimless
Dimensionless.
zeroField SuSp(const Foam::zero, const GeometricField< Type, faPatchField, areaMesh > &)
A no-op source.
tmp< volScalarField::Internal > Srho() const
Return tmp total mass source for carrier phase.
dimensionedScalar neg(const dimensionedScalar &ds)
#define forAll(list, i)
Loop across all elements in list.
const dimensionSet dimVolume(pow3(dimLength))
const ReactingCloud & cloudCopy() const
Return a reference to the cloud copy.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
const parcelType::constantProperties & constProps() const
Return the constant properties.
dimensionedScalar pos0(const dimensionedScalar &ds)
Field< Type > & source() noexcept
Templated base class for reacting cloud.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
PtrList< volScalarField > & Y
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const CompositionModel< ReactingCloud< CloudType > > & composition() const
Return const access to reacting composition model.
Internal & ref(const bool updateAccessTime=true)
Same as internalFieldRef()
Selector class for relaxation factors, solver type and solution.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
A class for managing temporary objects.
Templated reacting parcel composition model class Consists of carrier species (via thermo package)...
Defines the attributes of an object for which implicit objectRegistry management is supported...
tmp< fvScalarMatrix > SYi(const label i, volScalarField &Yi) const
Return mass source term for specie i - specie eqn.
const PhaseChangeModel< ReactingCloud< CloudType > > & phaseChange() const
Return const access to reacting phase change model.
static constexpr const zero Zero
Global zero (0)