OpenQBMM implements population balance equations in a generic framework, which allows the selection of physical sub-models at runtime. Depending on the type of population balance in use, different models are available for runtime selection, as described in this page.
Models for univariate population balance equations
- Aggregation
- Breakup
- Diffusion
- No diffusion (empty model to disable diffusion)
- Molecular diffusion
- Turbulent diffusion
- Growth
- Nucleation
- No nucleation (empty model to disable nucleation)
- Miller
The aggregation, breakup and growth models can be disabled by setting following flags in the populationBalanceProperties
dictionary:
aggregation off;
breakup off;
growth off;
The choice of using flags, rather than using empty models, was made when developing OpenQBMM in order to avoid duplicating the code to integrate each of these kernel and, at the same time, to completely exclude their integration step when not necessary. The latter is essential to limit the computational cost particularly when aggregation is not modelled, since integrating its kernel significantly increases the cost of the computation.
The following daughter distribution functions are available and can be combined with any of the breakup kernels:
Additional kernels can be implemented by the user at need, leveraging the runtime selection mechanism of OpenFOAM. Relevant feature requests and contributions may be discussed on the GitHub issue tracker.
Information on how to set up a problem involving univariate population balance equations can be found here. Implementation details, equations and references for each of the sub-models listed above can be found in the code documentation.