SEC.Models.GRM

SEC.Models.GRM#

SEC.Models.GRM.py

GRM (General Rate Model) column model class.

Copyright (c) 2026, SAXS Team, KEK-PF

class GRM(**kwargs)#

Bases: object

General Rate Model (GRM) for SEC data analysis.

Parameters are estimated via moment-matching from LKM (GrmEstimator) and then each component’s scale is refined by NNLS (GrmOptimizer).

The rigorous optimize_rigorously(model='GRM') step uses the G1500 objective function (molass-legacy) to refine all GRM parameters jointly.

The GRM accounts for: - Axial dispersion (Péclet number Pe) - External film mass transfer (k_ext per component) - Intraparticle pore diffusion (D_eff, shared) - Linear adsorption equilibrium (a_star, via retention factor R)

optimize_decomposition(decomposition, **kwargs)#

Upgrade an EGH decomposition to use GRM component curves.

Parameters:
  • decomposition (Decomposition) – Initial EGH decomposition to upgrade.

  • R_p (float, optional) – Particle radius [cm]. Default from SerialSettings or 0.0035 cm.

  • D_eff (float, optional) – Effective pore diffusivity [cm²/min]. Default 1e3 (film-only limit).

  • eps_p (float, optional) – Intraparticle porosity. Default 0.0 (non-porous).

  • eps (float, optional) – Interstitial column porosity. Default 0.4.

  • debug (bool, optional) – Enable verbose output.

Returns:

New decomposition with GrmComponentCurve objects.

Return type:

Decomposition