Releases: hillaper/Rela2x
Release list
0.0.3
Adds the coherent part of the dynamics — the Hamiltonian superoperator H, covering the Zeeman
interaction (including chemical shift) and J-coupling — and combines it with the existing
relaxation superoperator R into the full Liouvillian L = −i[H, ·] − R, the
generator of the complete equation of motion. Accompanied by a package reorganisation and general
updates.
See the README for full details.
0.0.2
Rela²x 0.0.2 — release notes
Bug fixes, new features, type hints and a consistent naming scheme.
Note on basis ordering: the most significant fixes concern the sorting of the product
operator basis. The order in which the basis operators appear therefore differs from 0.0.1,
and from the figures in the publication. The matrix elements themselves are unaffected.
Added
- Cartesian product operator basis, selected with
basis='C'(spin-1/2 systems only). op_decompositionfor analytical decomposition of an operator in a given basis.basis_indicesattribute onRelaxationSuperoperator, exposing the basis operator indices
used for rate lookups, sorting and filtering. Each entry is a tuple holding one item per spin
that carries something other than the identity:(spin index, l, q)triples for the spherical
tensor basis,(spin index, direction)pairs for the Cartesian basis.- The electron (
'e') in the isotope list. Lv_amplitude,op_S_symbolandproduct_op_S_symbol.
Fixed
- Basis sorting. Three independent defects: projections were compared as strings, misordering
every operator with |q| >= 2; the sorting passes were unstable, so the documented key hierarchy
was not actually produced; and the'v2'scheme sorted over up to nine spins regardless of the
system size, scrambling the within-block ordering of three-spin systems. rate()silently masked failed basis lookups.
Changed
- Spectral density subscripts now print as
lqrather than(l, q). J(w) = J(-w)is imposed, so frequency arguments no longer carry absolute values.- Type hints throughout, with one argument per line.
- Visualization routines deduplicated.
- Documentation pass over the module, the example notebooks and the README.
Renamed
API-breaking. The 0.0.1 code remains available in the git history.
| 0.0.1 | 0.0.2 |
|---|---|
R_object_in_T_basis |
R_object_in_product_operator_basis |
KroneckerProduct |
Kronecker_product |
T_symbol_spin_order, T_symbol_coherence_order, T_symbol_type, T_symbol_Nth_spin_projection |
T_index_spin_order, T_index_coherence_order, T_index_type, T_index_spin_projection |
T_symbol_list_index |
basis_index_list_index |
full_sort_T_product_basis, and the individual sorting passes |
sort_T_product_basis, together with T_basis_sort_keys |
T_basis_split_to_coherence_orders |
removed; use R.filter('c', ...) |
The T_symbol_* functions determined the properties of a basis operator by reading its printed
symbol. The T_index_* functions that replace them read the basis operator indices instead.
In total, 14 public names were removed and 22 added relative to 0.0.1.
Erratum to the publication
The irreducible spherical tensor components printed at the end of the publication (P. Hilla, J. Vaara, J. Magn. Reson., 2025) have errors. However, the implementation in Rela²x is and has always been correct.
Rela2x 0.0.1
Initial release of the Rela2x program described in:
P. Hilla, J. Vaara, Rela²x: Analytic and automatic NMR relaxation theory, J. Magn. Reson., 2025;
https://doi.org/10.1016/j.jmr.2024.107828
Major updates are planned for upcoming versions.