34template<
class BasePhaseSystem>
41 if (!rDmdt_.found(key))
43 return phaseSystem::dmdt(key);
48 return rDmdtSign**rDmdt_[key];
54template<
class BasePhaseSystem>
62 this->generatePairsAndSubModels
73 phaseTransferModelIter
78 phaseTransferModelIter.key(),
87template<
class BasePhaseSystem>
95template<
class BasePhaseSystem>
102 return BasePhaseSystem::dmdt(key) + this->rDmdt(key);
106template<
class BasePhaseSystem>
114 const phasePair& pair = this->phasePairs_[rDmdtIter.key()];
117 this->addField(pair.
phase1(),
"dmdt", rDmdt, dmdts);
118 this->addField(pair.
phase2(),
"dmdt", - rDmdt, dmdts);
125template<
class BasePhaseSystem>
157 phaseTransferModels_,
158 phaseTransferModelIter
161 const phasePair& pair(this->phasePairs_[phaseTransferModelIter.key()]);
188 dmdt21*eqns[otherName]->psi()
192 dmdt12*eqns[
name]->psi()
202template<
class BasePhaseSystem>
205 BasePhaseSystem::correct();
210 phaseTransferModels_,
211 phaseTransferModelIter
214 *rDmdt_[phaseTransferModelIter.key()] =
221 phaseTransferModels_,
222 phaseTransferModelIter
225 *rDmdt_[phaseTransferModelIter.key()] +=
226 phaseTransferModelIter()->dmdt();
231template<
class BasePhaseSystem>
234 if (BasePhaseSystem::read())
tmp< volScalarField > dmdt() const
Return the blended mass transfer rate.
bool set(const Key &key, T *ptr)
Assign a new entry, overwriting existing entries.
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
An ordered pair of two objects of type <T> with first() and second() elements.
Class which models non-thermally-coupled mass transfers; i.e., representation changes,...
virtual void correct()
Correct the mass transfer rates.
rDmdtTable rDmdt_
Mass transfer rates.
virtual autoPtr< phaseSystem::massTransferTable > massTransfer() const
Return the mass transfer matrices.
virtual PtrList< volScalarField > dmdts() const
Return the mass transfer rates for each phase.
virtual ~PhaseTransferPhaseSystem()
Destructor.
phaseTransferModelTable phaseTransferModels_
Mass transfer models.
virtual tmp< volScalarField > rDmdt(const phasePairKey &key) const
Return the representation mass transfer rate.
virtual bool read()
Read base phaseProperties dictionary.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Mesh data needed to do the Finite Volume discretisation.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const word & name() const
An ordered or unorder pair of phase names. Typically specified as follows.
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
const multiphaseInter::phaseModel & phase1() const
const multiphaseInter::phaseModel & phase2() const
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const word & name() const
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const volScalarField & psi
Calculate the finiteVolume matrix for implicit and explicit sources.
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
fvMatrix< scalar > fvScalarMatrix
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dimensionedScalar negPart(const dimensionedScalar &ds)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
const dimensionSet dimDensity
dimensionedScalar posPart(const dimensionedScalar &ds)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object.