Skip to content
This repository was archived by the owner on Nov 10, 2025. It is now read-only.

Commit 35f1751

Browse files
elements add nuclear spin
1 parent caeb579 commit 35f1751

5 files changed

Lines changed: 13 additions & 2 deletions

File tree

src/ryd_numerov/elements/base_element.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class BaseElement(ABC):
3333
"""Atomic species."""
3434
Z: ClassVar[int]
3535
"""Atomic number of the element."""
36+
i_c: ClassVar[float] = 0
37+
"""Nuclear spin, (default 0 to ignore hyperfine structure)."""
3638
number_valence_electrons: ClassVar[int]
3739
"""Number of valence electrons (i.e. 1 for alkali atoms and 2 for alkaline earth atoms)."""
3840
ground_state_shell: ClassVar[tuple[int, int]]

src/ryd_numerov/elements/hydrogen.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class HydrogenTextBook(BaseElement):
2424
"""Hydrogen from QM textbook with infinite nucleus mass and no spin orbit coupling."""
2525

2626
species = "H_textbook"
27+
Z = 1
2728
number_valence_electrons = 1
2829
ground_state_shell = (1, 0)
2930

src/ryd_numerov/elements/rubidium.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,19 @@ class _RubidiumAbstract(BaseElement):
5555

5656
class Rubidium87(_RubidiumAbstract):
5757
species = "Rb87"
58+
i_c = 3 / 2
5859

5960
_corrected_rydberg_constant = (109736.62301604665, None, "1/cm")
6061

6162

62-
class Rubidium(Rubidium87):
63-
# for backwards compatibility
63+
class Rubidium(_RubidiumAbstract):
64+
# no hyperfine structure, use rydberg constant of Rb87
6465
species = "Rb"
66+
_corrected_rydberg_constant = (109736.62301604665, None, "1/cm")
6567

6668

6769
class Rubidium85(_RubidiumAbstract):
6870
species = "Rb85"
71+
i_c = 5 / 2
6972

7073
_corrected_rydberg_constant = (109736.605, None, "1/cm")

src/ryd_numerov/elements/strontium.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class _StrontiumAbstract(BaseElement):
3737

3838
class Strontium88(_StrontiumAbstract):
3939
species = "Sr88"
40+
i_c = 0
4041

4142
# https://physics.nist.gov/PhysRefData/Handbook/Tables/strontiumtable1.htm
4243
_isotope_mass = 87.905619 # u
@@ -73,6 +74,7 @@ class Strontium88(_StrontiumAbstract):
7374

7475
class Strontium87(_StrontiumAbstract):
7576
species = "Sr87"
77+
i_c = 9 / 2
7678

7779
# https://physics.nist.gov/PhysRefData/Handbook/Tables/strontiumtable1.htm
7880
_isotope_mass_u = 86.908884 # u

src/ryd_numerov/elements/ytterbium.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class _YtterbiumAbstract(BaseElement):
2525

2626
class Ytterbium171(_YtterbiumAbstract):
2727
species = "Yb171"
28+
i_c = 1 / 2
2829

2930
# https://physics.nist.gov/PhysRefData/Handbook/Tables/ytterbiumtable1.htm
3031
_isotope_mass = 170.936323 # u
@@ -37,6 +38,7 @@ class Ytterbium171(_YtterbiumAbstract):
3738

3839
class Ytterbium173(_YtterbiumAbstract):
3940
species = "Yb173"
41+
i_c = 5 / 2
4042

4143
# https://physics.nist.gov/PhysRefData/Handbook/Tables/ytterbiumtable1.htm
4244
_isotope_mass = 172.938208 # u
@@ -49,6 +51,7 @@ class Ytterbium173(_YtterbiumAbstract):
4951

5052
class Ytterbium174(_YtterbiumAbstract):
5153
species = "Yb174"
54+
i_c = 0
5255

5356
# https://physics.nist.gov/PhysRefData/Handbook/Tables/ytterbiumtable1.htm
5457
_isotope_mass = 173.938859 # u

0 commit comments

Comments
 (0)