Model Hierarchy¶
Abstract base class and concrete model implementations for heterodyne
XPCS correlation functions. The factory function create_model()
selects the appropriate model variant based on configuration.
Model class hierarchy for heterodyne correlation analysis.
- class heterodyne.core.models.HeterodyneModelBase[source]
Bases:
ABCAbstract base class for heterodyne models.
- abstract property n_params: int
Number of model parameters.
- abstractmethod compute_correlation(params, t, q, dt, phi_angle, contrast=1.0, offset=1.0)[source]
Compute model correlation matrix.
- Parameters:
- Return type:
- Returns:
Correlation matrix
- class heterodyne.core.models.TwoComponentModel[source]
Bases:
HeterodyneModelBaseTwo-component heterodyne correlation model.
Implements the 14-parameter model: - Reference transport (3): D0_ref, alpha_ref, D_offset_ref - Sample transport (3): D0_sample, alpha_sample, D_offset_sample - Velocity (3): v0, beta, v_offset - Fraction (4): f0, f1, f2, f3 - Angle (1): phi0
- property n_params: int
Number of parameters (14).
- compute_correlation(params, t, q, dt, phi_angle, contrast=1.0, offset=1.0)[source]
Compute two-time heterodyne correlation.
- Parameters:
- Return type:
- Returns:
Correlation matrix c2(t1, t2), shape (N, N)
- params_to_dict(params)[source]
Convert parameter array to dictionary.
- dict_to_params(param_dict)[source]
Convert parameter dictionary to array.
- compute_g1_reference(params, t, q)[source]
Compute reference g1 correlation only (1D visualization helper).
Note
Uses pointwise g1(t) = exp(-q²J(t)), which does not represent the two-time integral physics. For production correlation, use compute_correlation which uses the integral formulation.
- compute_g1_sample(params, t, q)[source]
Compute sample g1 correlation only (1D visualization helper).
Note
Uses pointwise g1(t) = exp(-q²J(t)), which does not represent the two-time integral physics. For production correlation, use compute_correlation which uses the integral formulation.
- compute_fraction(params, t)[source]
Compute sample fraction only.
- __init__(_defaults=<factory>)
- class heterodyne.core.models.ReducedModel[source]
Bases:
HeterodyneModelBaseReduced heterodyne model with a subset of active parameters.
Inactive parameters are held fixed at their canonical default values. Useful for simplified analysis modes (e.g., reference-only diffusion).
- Parameters:
_active_params (
tuple[str,...]) – Ordered tuple of parameter names that are free to vary.
- __post_init__()[source]
Validate active params and precompute expansion constants.
- Return type:
- property n_params: int
Number of active (free) parameters.
- compute_correlation(params, t, q, dt, phi_angle, contrast=1.0, offset=1.0)[source]
Compute model correlation from reduced parameter set.
Inactive parameters are held at canonical defaults.
- Parameters:
- Return type:
- Returns:
Correlation matrix c2(t1, t2), shape (N, N)
- __init__(_active_params, _FULL_DEFAULTS=<factory>)
- heterodyne.core.models.create_model(mode)[source]
Factory function that returns a model for the requested analysis mode.
- Parameters:
mode (
str) – One of"static_ref","static_both","two_component".- Return type:
HeterodyneModelBase- Returns:
TwoComponentModelfor"two_component";ReducedModelfor all other recognised modes.- Raises:
ValueError – If mode is not a recognised analysis mode.