30 template<
class ModelType>
37 const ModelType& model = ModelType::model(fi);
39 if (!
isA<SecondaryPropertyModel<ModelType>>(model))
42 <<
"Phase " << this->
group().phase().name() <<
" of population "
43 <<
"balance " << this->
group().group().popBal().name() <<
" has a "
44 <<
type() <<
" " << ModelType::typeName <<
" but phase "
45 << fi.phase().name() <<
" does not. The " <<
type() <<
" "
46 << ModelType::typeName <<
" requires all phases of the population "
47 <<
"balance to " <<
" have the " <<
type() <<
" "
51 return refCast<const SecondaryPropertyModel<ModelType>>(model);
57 template<
class ModelType>
69 template<
class ModelType>
77 template<
class ModelType>
84 const ModelType& model = ModelType::model(fi);
89 <<
"Phase " << fi.phase().name() <<
" does not have a "
90 << ModelType::typeName <<
" with a secondary property"
94 return refCast<const SecondaryPropertyModel<ModelType>>(model);
98 template<
class ModelType>
109 src() += (propj*fj.
x() + propk*fk.
x())/(fj.
x() + fk.
x())*
Su;
113 template<
class ModelType>
126 template<
class ModelType>
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Base class for modelling evolution of secondary representative properties of a size class....
virtual ~SecondaryPropertyModel()
Destructor.
static const SecondaryPropertyModel< ModelType > & model(const sizeGroup &fi)
Return the secondary property model of a given size group.
virtual void addCoalescence(const volScalarField::Internal &Su, const sizeGroup &fj, const sizeGroup &fk)
Add coalescence contribution to secondary property source.
SecondaryPropertyModel(const sizeGroup &group)
Construct from sizeGroup.
virtual void reset()
Reset secondary property source.
virtual void addBreakup(const volScalarField::Internal &Su, const sizeGroup &fj)
Add breakup contribution to secondary property source.
Single size class fraction field representing a fixed particle volume as defined by the user through ...
const dimensionedScalar & x() const
Return representative volume of the sizeGroup.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const char *const group
Group name for atomic constants.
tmp< VolField< Type > > Su(const VolField< Type > &su, const VolField< Type > &vf)
errorManipArg< error, int > exit(error &err, const int errNo=1)
bool isA(const Type &t)
Check if a dynamic_cast to typeid is possible.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.