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