218 #ifndef populationBalanceModel_H
219 #define populationBalanceModel_H
232 class phaseCompressibleMomentumTransportModel;
234 namespace populationBalance
237 class coalescenceModel;
240 namespace breakupModels
242 class daughterSizeDistribution;
342 daughterSizeDistributionBreakupModel_;
363 label sourceUpdateCounter_;
372 void precomputeCoalescenceAndBreakup();
375 void birthByCoalescence
383 void deathByCoalescence
391 void birthByDaughterSizeDistributionBreakup
398 void deathByDaughterSizeDistributionBreakup
405 void birthByBinaryBreakup
413 void deathByBinaryBreakup
421 void computeCoalescenceAndBreakup();
424 void precomputeExpansion();
435 void computeExpansion();
438 void precomputeModelSources();
449 void computeModelSources();
452 void computeDilatationErrors();
455 bool updateSources();
458 inline label sourceUpdateInterval()
const;
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricField class.
DimensionedField< Type, GeoMesh, PrimitiveField > Internal
Type of the internal field from which this GeometricField is derived.
A HashTable specialisation for hashing pointers.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
readOption
Enumeration defining the read options.
bool & registerObject()
Register object created from this IOobject with registry if true.
const word & name() const
Return name.
writeOption
Enumeration defining the write options.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
An ordered pair of two objects of type <Type> with first() and second() elements.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Base class for statistical distributions.
Mesh data needed to do the Finite Volume discretisation.
Templated abstract base class for multiphase compressible momentum transport models.
Word-pair based class used for keying interface models in hash tables.
Class to represent a system of phases.
Model for tracking the evolution of a dispersed phase size distribution due to coalescence (synonymou...
tmp< volScalarField::Internal > Sp(const label i) const
Return the implicit coalescence and breakup source term.
const volScalarField & f(const label i) const
Access a group fraction.
const UPtrList< const phaseModel > & uniquePhases() const
Access the minimal list of the phases in this population balance.
const dimensionedScalar & v(const label i) const
Access the representative volumes diameters of a group.
const dmdtfTable & dmdtfs() const
Return reference to the coalescence and breakup interfacial mass.
const PtrList< dimensionedScalar > & dSphs() const
Access the representative spherical diameters of the groups.
const phaseSystem & fluid() const
Return reference to the phaseSystem.
bool writeData(Ostream &) const
Dummy write for regIOobject.
void correct()
Correct derived quantities.
const List< labelPair > & coalescencePairs() const
Return coalescence relevant group pairs.
const List< labelPair > & binaryBreakupPairs() const
Return binary breakup relevant group pairs.
tmp< volVectorField > U() const
Return average velocity.
const dmdtfTable & expansionDmdtfs() const
Return reference to the expansion interfacial mass transfer rates.
bool solveOnFinalIterOnly() const
Solve on final pimple iteration only.
const dmdtfTable & modelSourceDmdtfs() const
Return reference to the model source interfacial mass transfer rates.
populationBalanceModel(const phaseSystem &fluid, const word &name)
Construct for a fluid and with a given name.
const UPtrList< const diameterModels::populationBalance > & diameters() const
Access the list of diameter models associated with each group.
const dimensionedScalar & dSph(const label i) const
Access the representative spherical diameters of a group.
tmp< volScalarField::Internal > expansionSp(const label i) const
Return the implicit expansion source term.
const phaseModel & continuousPhase() const
Return continuous phase.
tmp< volScalarField::Internal > expansionSu(const label i, const UPtrList< volScalarField > &flds=UPtrList< volScalarField >()) const
Return the explicit expansion source term.
TypeName("populationBalanceModel")
Runtime type information.
dimensionedScalar eta(const label i, const dimensionedScalar &v) const
Return the number allocation coefficient for a single volume.
HashPtrTable< volScalarField::Internal, phaseInterfaceKey, phaseInterfaceKey::hash > dmdtfTable
Table of interfacial mass transfer rates.
label nGroups() const
Return the number of groups in the population balance.
const volScalarField & alphas() const
Return total void of phases belonging to this populationBalance.
tmp< volScalarField::Internal > modelSourceSu(const label i, const UPtrList< volScalarField > &flds=UPtrList< volScalarField >()) const
Return the explicit model source source term.
static tmp< volScalarField > groupField(const word &name, const label i, const phaseModel &phase)
Read and return a group-associated field.
dimensionedScalar etaV(const label i, const dimensionedScalar &v) const
Return the volume allocation coefficient for a single volume.
const populationBalance::shapeModel & shape() const
Access the shape model.
static IOobject groupFieldIo(const word &name, const label i, const phaseModel &phase, const IOobject::readOption r=IOobject::NO_READ, const IOobject::writeOption w=IOobject::NO_WRITE, const bool registerObject=true)
Return IO for a group-associated field.
const UPtrList< const phaseModel > & phases() const
Access the list of phases associated with each group.
const tmp< volScalarField > sigmaWithContinuousPhase(const phaseModel &dispersedPhase) const
Return the surface tension coefficient between a given dispersed.
const fvMesh & mesh() const
Return reference to the mesh.
const PtrList< volScalarField > & fs() const
Access the group fractions.
tmp< volScalarField > d(const label i) const
Return the representative diameter of the group.
const phaseCompressibleMomentumTransportModel & continuousTurbulence() const
Return reference to momentumTransport model of the continuous phase.
const UPtrList< const diameterModels::populationBalance > & uniqueDiameters() const
Access the minimal list of the diameter models in this population.
tmp< volScalarField > a(const label i) const
Return the representative surface area of the group.
virtual ~populationBalanceModel()
Destructor.
const PtrList< dimensionedScalar > & vs() const
Access the representative volumes diameters of the groups.
void solve()
Solve the population balance equation.
const dictionary & solverDict() const
Return solution settings dictionary for this populationBalance.
Base class for binary breakup models that provide a breakup rate between a size class pair directly,...
Base class for breakup models which provide a total breakup rate and a separate daughter size distrib...
Base class for modelling the shape of the particles belonging to a size class through alternative dia...
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
A class for managing temporary objects.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.