SEC.Models.LkmEstimator

SEC.Models.LkmEstimator#

SEC.Models.LkmEstimator.py

Estimate LKM (Lumped Kinetic Model) initial parameters from EGH component moments.

The moment-matching approach follows the same design as SdmEstimator:
  1. Compute numerical moments (M1, M2, M3) from each EGH component curve.

  2. Match these to the LKM analytical cumulant expressions.

LKM analytical cumulants (per component; Pe and t0 are shared across components):

kappa1_i = t0 * R_i (mean = tR_i) kappa2_i = 2*tR_i**2/Pe + 2*t0*(R_i-1)/k_MT_i (variance) kappa3_i = 12*tR_i**3/Pe**2

  • 12*tR_i*t0*(R_i-1)/(Pe*k_MT_i)

  • 6*t0*(R_i-1)/k_MT_i**2 (third cumulant)

Factored optimization:

Given (t0, Pe), R_i = tR_i/t0 is determined, and k_MT_i can be solved analytically from the kappa2_i equation. The outer optimization over (t0, Pe) then minimises the kappa3 residuals.

This construction guarantees that kappa1 and kappa2 are matched exactly by the returned parameters; kappa3 is matched as closely as possible.

In the large-Pe limit the factored solution reduces to the closed-form three-moment formulas:

k_MT_i ≈ 3 * M2_i / M3_i t0 ≈ M1_i - 3 * M2_i**2 / (2 * M3_i) R_i = M1_i / t0

which are derived from the compound-Poisson characteristic function of the kinetics-only model (see molass-essence/chapters/45/characteristic-function.ipynb).

estimate_lkm_init_params(decomposition, **kwargs)#

Estimate LKM initial parameters from EGH component moments.

Follows the same upgrade design as estimate_sdm_column_params(): numerical moments are computed from each EGH component curve (via ComponentCurve.get_xy()) and matched to the LKM analytical cumulant expressions.

Parameters:
  • decomposition (Decomposition) – Decomposition whose xr_ccurves hold the EGH component curves.

  • debug (bool, optional) – If True, print diagnostics (default False).

Returns:

  • Pe (float) – Péclet number (shared column parameter).

  • t0 (float) – Dead time in frame units (shared column parameter).

  • k_MT_list (list of float) – Mass-transfer rate per component (same units as frame axis).

  • R_list (list of float) – Retention factor per component (R_i = tR_i / t0 ≥ 1).

  • scale_list (list of float) – Area scale per component (integral of EGH component curve).

Notes

The optimisation is factored:

  • Inner (analytic): for a given (t0, Pe), k_MT_i is solved exactly from the kappa2 equation, guaranteeing kappa1 and kappa2 are matched.

  • Outer (numeric, 2-D): L-BFGS-B over log(t0) and log(Pe) minimises the kappa3 residuals (sign-preserving cube roots, same as SdmEstimator).

In the large-Pe limit the result converges to the closed-form three-moment formulas derived from the compound-Poisson CF.