optframework.pbm.pbm_core module
Created on Fri Jan 10 15:13:27 2025
- class optframework.pbm.pbm_core.PBMCore(solver)[source]
Bases:
object
Core computation module for Population Balance Model (PBM) solver.
This class handles the core computational tasks for the PBM solver, including moment initialization and PBE solving. It provides methods for setting up initial conditions and integrating the moment equations over time.
- init_moments(x=None, NDF=None, NDF_shape='normal', N0=1.0, N01=1.0, N02=1.0, V0=None, x_range=(0, 1), mean=0.5, std_dev=0.1, shape=2, scale=1, sigma=1, a=2, b=2, size=0.5)[source]
Initialize moments for the PBM solver (supports both 1D and 2D).
Parameters
- xnumpy.ndarray, optional
x-coordinates for the distribution function (1D only)
- NDFnumpy.ndarray, optional
(Normalized) Distribution function (1D only)
- NDF_shapestr, optional
Shape of the distribution (“normal”, “gamma”, “lognormal”, “beta”, “mono”) (default: “normal”)
- N0float, optional
Initial total number concentration (1D only) (default: 1.0)
- N01float, optional
Initial number concentration for component 1 (2D only) (default: 1.0)
- N02float, optional
Initial number concentration for component 2 (2D only) (default: 1.0)
- V0float, optional
Total volume of particles (1D only)
- x_rangetuple, optional
Range of x values (default: (0,1))
- meanfloat, optional
Mean value for normal/lognormal distribution (default: 0.5)
- std_devfloat, optional
Standard deviation for normal distribution (default: 0.1)
- shapefloat, optional
Shape parameter for gamma distribution (default: 2)
- scalefloat, optional
Scale parameter for gamma distribution (default: 1)
- sigmafloat, optional
Standard deviation for lognormal distribution (default: 1)
- afloat, optional
Alpha parameter for beta distribution (default: 2)
- bfloat, optional
Beta parameter for beta distribution (default: 2)
- sizefloat, optional
Size parameter for mono distribution (default: 0.5)
- init_moments_2d(N01=1.0, N02=1.0)[source]
Initialize the 2D moments for the PBM solver.
Deprecated since version This: method is deprecated. Use init_moments() instead, which automatically handles both 1D and 2D cases based on solver.dim.
Parameters
- N01float, optional
Initial number concentration for component 1 (default: 1.0)
- N02float, optional
Initial number concentration for component 2 (default: 1.0)
- solve_PBM(t_vec=None)[source]
Solve the Population Balance Model using moment equations.
Integrates the moment ODEs over time using scipy.integrate.solve_ivp with RK45 method. Handles both 1D and 2D systems with appropriate right-hand-side functions.
Parameters
- t_vecnumpy.ndarray, optional
Time vector for the simulation. If None, uses solver.t_vec