Parameter Bounds Verification¶
This page documents the canonical parameter bounds, defaults, and the dual prior system. It serves as a reference for verifying that the parameter registry and parameter space remain in sync.
Invariants¶
All 14 physics parameters and 2 scaling parameters have
vary_default=True.Units follow the Angstrom convention throughout: \(q\) in \(\text{\AA}^{-1}\), \(D_0\) in \(\text{\AA}^2/\text{s}^\alpha\), velocities in \(\text{\AA}/\text{s}\).
Key Parameter Defaults¶
Parameter |
Default |
Min |
Max |
Notes |
|---|---|---|---|---|
|
1e4 |
0 |
1e6 |
|
|
1e4 |
0 |
1e6 |
|
|
0.0 |
-2.0 |
2.0 |
Default is 0.0, not 1.0. |
|
0.0 |
-2.0 |
2.0 |
Default is 0.0, not 1.0. |
|
1e3 |
0 |
1e6 |
Prior: (1e3, 500). |
|
0.0 |
-100 |
100 |
Allows negative values. |
Dual Prior System¶
Heterodyne maintains two parallel sources of prior information. Both must stay in sync when parameter defaults or priors are updated.
Source 1: Parameter Registry
(heterodyne/config/parameter_registry.py)
The immutable MappingProxyType registry defines prior_mean and
prior_std for each parameter. These values are consumed by:
cmc/priors.py:build_default_priors()cmc/priors.py:build_log_space_priors()
Source 2: Parameter Space
(heterodyne/optimization/parameter_space.py)
The _DEFAULT_PRIOR_SPECS dictionary defines per-parameter prior
specifications consumed by _default_prior() during ParameterSpace
initialization.
Verification Procedure¶
When modifying any parameter default, bound, or prior:
Update the value in
parameter_registry.py.Update the corresponding entry in
_DEFAULT_PRIOR_SPECSinparameter_space.py.Run the validation test suite:
uv run pytest -m validation -v
Confirm that
build_default_priors()andbuild_log_space_priors()produce consistent prior distributions by inspecting the test output.
Common Pitfalls¶
Setting
alpha_reforalpha_sampledefault to 1.0 instead of 0.0.Forgetting to update
_DEFAULT_PRIOR_SPECSafter changing the registry (or vice versa).Using nanometer units instead of Angstroms (all values must be in \(\text{\AA}\)).