|
8 | 8 | and multiplicities. It also includes accessors for bundled reference data |
9 | 9 | and convenience builders for frequently used composite objects. |
10 | 10 |
|
11 | | -Contents |
12 | | --------- |
13 | | -Conversions |
14 | | - - :func:`spin_to_multiplicity` – convert spin quantum number ``S`` to |
15 | | - multiplicity ``2S+1`` (validates half‐integer/integer input). |
16 | | - - :func:`multiplicity_to_spin` – invert the mapping, returning |
17 | | - ``S = (M-1)/2``. |
18 | | -
|
19 | | -Data access |
20 | | - - :func:`get_data` – locate packaged data files (e.g. JSON databases). |
21 | | -
|
22 | | -Core data structures |
23 | | - - :class:`Isotope` – look up an isotope’s spin multiplicity and |
24 | | - magnetogyric ratio from the bundled database (CODATA-style values), |
25 | | - with helpers like :py:meth:`Isotope.available`. |
26 | | - - :class:`Hfc` – hyperfine coupling container that supports either an |
27 | | - isotropic scalar value or a full 3×3 anisotropic tensor, and exposes |
28 | | - :py:meth:`Hfc.isotropic` and :py:meth:`Hfc.anisotropic`. |
29 | | - - :class:`Nucleus` – a nucleus within a molecule, defined by its |
30 | | - magnetogyric ratio, spin multiplicity, and hyperfine couplings; also |
31 | | - provides spin (Pauli) operator matrices via :py:meth:`Nucleus.pauli`. |
32 | | - - :class:`FuseNucleus` – an effective nucleus formed by fusing several |
33 | | - identical nuclei into a direct-sum representation to reduce Hilbert-space |
34 | | - dimension; includes utilities for validation and operator construction. |
35 | | - - :class:`Molecule` – collection of nuclei plus a radical (electron‐like |
36 | | - spin), with constructors for database-backed molecules |
37 | | - (:py:meth:`Molecule.fromdb`, :py:meth:`Molecule.all_nuclei`) and |
38 | | - ad-hoc assemblies (:py:meth:`Molecule.fromisotopes`). |
39 | | - - :class:`Triplet` – convenience molecule containing a single S=1 |
40 | | - (multiplicity 3) radical and no nuclei. |
41 | | -
|
42 | | -Units & conventions |
43 | | -------------------- |
44 | | -- Magnetogyric ratios are commonly expressed as ``rad/s/T`` in the database; |
45 | | - many class properties expose ``gamma_mT`` (``rad/s/mT``) for convenience. |
46 | | -- Hyperfine couplings (HFCs) are in mT. When a 3×3 tensor is provided, |
47 | | - the isotropic value is computed as ``trace(D)/3``. |
48 | | -- Spin operators follow the usual convention with raising (``p``), |
49 | | - lowering (``m``), and Cartesian components (``x``, ``y``, ``z``). |
50 | | -
|
51 | | -Error handling |
52 | | --------------- |
53 | | -- :func:`spin_to_multiplicity` validates that ``S`` is integer or half-integer. |
54 | | -- :class:`Isotope` raises ``ValueError`` for unknown symbols and provides |
55 | | - :py:meth:`Isotope.available` to enumerate valid options. |
56 | | -- :class:`Hfc.anisotropic` raises ``ValueError`` when no tensor is available. |
| 11 | +Contents: |
| 12 | +
|
| 13 | + Conversions |
| 14 | + - :func:`spin_to_multiplicity` – convert spin quantum number ``S`` to |
| 15 | + multiplicity ``2S+1`` (validates half‐integer/integer input). |
| 16 | + - :func:`multiplicity_to_spin` – invert the mapping, returning |
| 17 | + ``S = (M-1)/2``. |
| 18 | +
|
| 19 | + Data access |
| 20 | + - :func:`get_data` – locate packaged data files (e.g. JSON databases). |
| 21 | +
|
| 22 | + Core data structures |
| 23 | + - :class:`Isotope` – look up an isotope’s spin multiplicity and |
| 24 | + magnetogyric ratio from the bundled database (CODATA-style values), |
| 25 | + with helpers like :py:meth:`Isotope.available`. |
| 26 | + - :class:`Hfc` – hyperfine coupling container that supports either an |
| 27 | + isotropic scalar value or a full 3×3 anisotropic tensor, and exposes |
| 28 | + :py:meth:`Hfc.isotropic` and :py:meth:`Hfc.anisotropic`. |
| 29 | + - :class:`Nucleus` – a nucleus within a molecule, defined by its |
| 30 | + magnetogyric ratio, spin multiplicity, and hyperfine couplings; also |
| 31 | + provides spin (Pauli) operator matrices via :py:meth:`Nucleus.pauli`. |
| 32 | + - :class:`FuseNucleus` – an effective nucleus formed by fusing several |
| 33 | + identical nuclei into a direct-sum representation to reduce Hilbert-space |
| 34 | + dimension; includes utilities for validation and operator construction. |
| 35 | + - :class:`Molecule` – collection of nuclei plus a radical (electron‐like |
| 36 | + spin), with constructors for database-backed molecules |
| 37 | + (:py:meth:`Molecule.fromdb`, :py:meth:`Molecule.all_nuclei`) and |
| 38 | + ad-hoc assemblies (:py:meth:`Molecule.fromisotopes`). |
| 39 | + - :class:`Triplet` – convenience molecule containing a single S=1 |
| 40 | + (multiplicity 3) radical and no nuclei. |
| 41 | +
|
| 42 | +Units & conventions: |
| 43 | +
|
| 44 | + - Magnetogyric ratios are commonly expressed as ``rad/s/T`` in the database; |
| 45 | + many class properties expose ``gamma_mT`` (``rad/s/mT``) for convenience. |
| 46 | + - Hyperfine couplings (HFCs) are in mT. When a 3×3 tensor is provided, |
| 47 | + the isotropic value is computed as ``trace(D)/3``. |
| 48 | + - Spin operators follow the usual convention with raising (``p``), |
| 49 | + lowering (``m``), and Cartesian components (``x``, ``y``, ``z``). |
| 50 | +
|
| 51 | +Error handling: |
| 52 | +
|
| 53 | + - :func:`spin_to_multiplicity` validates that ``S`` is integer or half-integer. |
| 54 | + - :class:`Isotope` raises ``ValueError`` for unknown symbols and provides |
| 55 | + :py:meth:`Isotope.available` to enumerate valid options. |
| 56 | + - :class:`Hfc.anisotropic` raises ``ValueError`` when no tensor is available. |
57 | 57 | """ |
58 | 58 |
|
59 | 59 | from __future__ import annotations |
|
0 commit comments