33 template<
class BasePhaseSystem>
40 if (!pDmdt_.found(
key))
42 return phaseSystem::dmdt(
key);
47 return pDmdtSign**pDmdt_[
key];
53 template<
class BasePhaseSystem>
60 BasePhaseSystem(
mesh),
64 this->
lookup(
"populationBalances"),
65 diameterModels::populationBalanceModel::iNew(*this, pDmdt_)
77 if (!this->phasePairs_.found(
key))
79 this->phasePairs_.insert
86 this->phaseModels_[
key.first()],
87 this->phaseModels_[
key.second()]
118 this->
mesh().time().timeName(),
133 template<
class BasePhaseSystem>
141 template<
class BasePhaseSystem>
148 return BasePhaseSystem::dmdt(
key) + this->pDmdt(
key);
152 template<
class BasePhaseSystem>
160 const phasePair& pair = this->phasePairs_[pDmdtIter.key()];
163 this->addField(pair.
phase1(),
"dmdt", pDmdt, dmdts);
164 this->addField(pair.
phase2(),
"dmdt", - pDmdt, dmdts);
171 template<
class BasePhaseSystem>
219 dmdt21*eqns[otherName]->psi()
223 dmdt12*eqns[
name]->psi()
232 template<
class BasePhaseSystem>
250 template<
class BasePhaseSystem>
255 forAll(populationBalances_, i)
257 populationBalances_[i].solve();
const multiphaseInter::phaseModel & phase2() const
virtual ~PopulationBalancePhaseSystem()
Destructor.
Class that solves the univariate population balance equation by means of a class method (also called ...
const multiphaseInter::phaseModel & phase1() const
phaseSystem::massTransferTable & massTransfer(massTransferPtr())
virtual autoPtr< phaseSystem::massTransferTable > massTransfer() const
Return the mass transfer matrices.
const phasePairTable & phasePairs() const
Return list of unordered phasePairs in this populationBalance.
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers...
Lookup type of boundary radiation properties.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object.
dimensionedScalar posPart(const dimensionedScalar &ds)
#define forAll(list, i)
Loop across all elements in list.
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const
Return the mass transfer rate for a pair.
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.
PtrList< diameterModels::populationBalanceModel > populationBalances_
populationBalanceModels
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
virtual void solve()
Solve all population balance equations.
A class for handling words, derived from Foam::string.
bool set(const Key &key, T *ptr)
Assign a new entry, overwrites existing.
Reading is optional [identical to LAZY_READ].
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
An ordered or unorder pair of phase names. Typically specified as follows.
virtual tmp< volScalarField > pDmdt(const phasePairKey &key) const
Return the population balance mass transfer rate.
virtual word name() const
Pair name.
bool ordered() const noexcept
Return the ordered flag.
const dimensionSet dimDensity
PopulationBalancePhaseSystem(const fvMesh &)
Construct from fvMesh.
virtual PtrList< volScalarField > dmdts() const
Return the mass transfer rates for each phase.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
Mesh data needed to do the Finite Volume discretisation.
Automatically write from objectRegistry::writeObject()
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const word & name() const
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
const volScalarField & psi
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
const word & name() const
virtual bool read()
Read base phaseProperties dictionary.
dimensionedScalar negPart(const dimensionedScalar &ds)
pDmdtTable pDmdt_
Interfacial Mass transfer rate.