SEC.Models.SdmComponentCurve#

SEC.Models.SdmComponentCurve.py

class SdmMonoColumnParams(N, T, me, mp, x0, tI, N0, poresize, timescale, k)#

Bases: tuple

get_params() return type for pore_dist='mono'.

N#

Alias for field number 0

N0#

Alias for field number 6

T#

Alias for field number 1

k#

Alias for field number 9

me#

Alias for field number 2

mp#

Alias for field number 3

poresize#

Alias for field number 7

tI#

Alias for field number 5

timescale#

Alias for field number 8

x0#

Alias for field number 4

class SdmLognormalColumnParams(N, T, me, mp, x0, tI, N0, mu, sigma, k)#

Bases: tuple

get_params() return type for pore_dist='lognormal'.

N#

Alias for field number 0

N0#

Alias for field number 6

T#

Alias for field number 1

k#

Alias for field number 9

me#

Alias for field number 2

mp#

Alias for field number 3

mu#

Alias for field number 7

sigma#

Alias for field number 8

tI#

Alias for field number 5

x0#

Alias for field number 4

class SdmColumn(params, pore_dist='mono', rt_dist='gamma')#

Bases: object

A class to represent an SDM column.

params#

The parameters of the SDM column.

  • pore_dist='mono': (N, T, me, mp, x0, tI, N0, poresize, timescale, k)

  • pore_dist='lognormal': (N, T, me, mp, x0, tI, N0, mu, sigma, k)

Positions 0–6 and 9 are shared; positions 7–8 differ by pore_dist.

Type:

tuple

pore_dist#

Pore-size distribution: 'mono' (default) or 'lognormal'.

Type:

str

rt_dist#

Residence-time distribution: 'exponential' or 'gamma' (default).

Type:

str

Initializes the SDM column.

Parameters:
  • params (tuple) –

    The column parameters:

    • pore_dist='mono': (N, T, me, mp, x0, tI, N0, poresize, timescale, k)

    • pore_dist='lognormal': (N, T, me, mp, x0, tI, N0, mu, sigma, k)

    If k is omitted (9 elements), defaults to 1.0 (exponential, backward compatible).

  • pore_dist (str, optional) – Pore-size distribution: 'mono' (default) or 'lognormal'.

  • rt_dist (str, optional) – Residence-time distribution: 'exponential' or 'gamma' (default).

get_params()#

Returns the parameters of the SDM column as a named tuple.

Returns:

Named tuple with fields (N, T, me, mp, x0, tI, N0, poresize, timescale, k) for mono, or (N, T, me, mp, x0, tI, N0, mu, sigma, k) for lognormal. Backward-compatible with positional unpacking.

Return type:

SdmMonoColumnParams or SdmLognormalColumnParams

class SdmComponentCurve(x, column, rg, scale)#

Bases: ComponentCurve

A class to represent an SDM component curve.

x#

The x values.

Type:

array-like

params#

The parameters of the SDM column (N, T, me, mp, x0, tI, N0, poresize, timescale).

Type:

tuple

Initializes the SDM component curve.

Parameters:
  • x (array-like) – The x values.

  • column (SdmColumn) – The SDM column object containing the parameters.

  • rg (float) – The radius of gyration for this component.

  • scale (float) – The scaling factor.

get_y(x=None)#

Returns the y values for the given x values.

Parameters:

x (array-like or None, optional) – The x values to get the y values for. If None, uses the object’s x values.

Returns:

The y values corresponding to the given x values.

Return type:

array-like

get_peak_top_x()#

Returns the x value at the peak top.

Raises:

NotImplementedError – Peak top x calculation is not implemented for SDM model.

get_scale_param()#

Returns the scale parameter.

Returns:

The scale parameter.

Return type:

float