Quick Start¶
This guide walks through a complete heterodyne XPCS analysis in five minutes.
1. Install¶
uv add heterodyne
See Installation for alternative installation methods and environment setup.
2. Generate a Configuration File¶
heterodyne-config --output my_config.yaml
This creates a YAML configuration file with sensible defaults. The key sections are:
analysis_mode: heterodyne
experimental_data:
data_file: /path/to/experiment.hdf5
analyzer_parameters:
dt: 0.001 # Frame interval (seconds)
start_frame: 0 # First frame to include
end_frame: -1 # Last frame (-1 = all)
wavevector_q: 0.015 # Wavevector in Angstrom^-1
optimization:
method: nlsq # "nlsq" or "cmc"
Edit data_file and wavevector_q to match your experiment.
3. Load Data¶
from heterodyne.data.xpcs_loader import XPCSDataLoader
loader = XPCSDataLoader("experiment.hdf5")
data = loader.load()
XPCSDataLoader reads HDF5 files produced by standard XPCS beamline
pipelines and validates shapes, dtypes, and monotonicity at load time.
4. Run NLSQ Fitting¶
from heterodyne.optimization.nlsq.core import fit_nlsq_jax
result = fit_nlsq_jax(
data=data,
method="trf",
)
print(result.parameters)
print(result.cost)
The trust-region reflective (trf) solver provides fast, deterministic
parameter estimates suitable as warm-start values for subsequent Bayesian
inference.
5. CLI Usage¶
Run the full pipeline from the command line:
heterodyne --config my_config.yaml --method nlsq
For Bayesian inference via NUTS/CMC:
heterodyne --config my_config.yaml --method cmc
Results are written to JSON (parameter summaries) and NPZ (posterior samples, diagnostics) files in the output directory.
Parameter Interpretation¶
The 14 physics parameters and 2 scaling parameters describe a two-component heterodyne correlation model. Units follow the standard beamline convention (all lengths in Angstroms).
Diffusion parameters
Parameter |
Range |
Interpretation |
|---|---|---|
|
1 – 1e6 |
Reference diffusion prefactor (Angstrom^2 / s^alpha) |
|
1 – 1e6 |
Sample diffusion prefactor (Angstrom^2 / s^alpha) |
|
-2 – 2 |
Reference transport exponent (0 = normal diffusion) |
|
-2 – 2 |
Sample transport exponent (0 = normal diffusion) |
Velocity parameters
Parameter |
Range |
Interpretation |
|---|---|---|
|
> 0 |
Velocity prefactor (Angstrom / s^beta) |
|
-100 – 100 |
Velocity offset (Angstrom / s) |
|
0 – 360 |
Flow angle offset (degrees) |
|
-2 – 2 |
Velocity time exponent |
Sample fraction parameters
Parameter |
Interpretation |
|---|---|
|
Coefficients controlling the time-dependent sample fraction evolution |
Scaling parameters (per-angle)
Parameter |
Interpretation |
|---|---|
|
Amplitude scaling of the correlation function |
|
Additive baseline offset |
Next Steps¶
Installation – detailed environment setup and HPC configuration
Theory & Physics – derivation of the two-component heterodyne model
Configuration – full reference for all YAML options
API Reference – complete module and function documentation