Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 0 additions & 80 deletions docs/examples/comparisons/compare_model_potentials.ipynb

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion src/rydstate/species/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
from rydstate.species import cesium, hydrogen, lithium, potassium, rubidium, sodium, strontium, ytterbium, ytterbium_ion
from rydstate.species import (
cesium,
hydrogen,
lithium,
potassium,
rubidium,
sodium,
strontium,
strontium_ion,
ytterbium,
ytterbium_ion,
)
from rydstate.species.element_properties import ElementProperties, get_element_properties
from rydstate.species.fmodel import FModel, FModelSQDT
from rydstate.species.mqdt import MQDT, get_mqdt
Expand Down Expand Up @@ -34,6 +45,7 @@
"rubidium",
"sodium",
"strontium",
"strontium_ion",
"ytterbium",
"ytterbium_ion",
]
2 changes: 1 addition & 1 deletion src/rydstate/species/element_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class ElementProperties(ABC, metaclass=CachedABCMeta):
core_electron_configuration: ClassVar[str]
"""Electron configuration of the core electrons, e.g. 4p6 for Rb or 5s for Sr."""

nuclear_dipole: ClassVar[float]
nuclear_dipole: ClassVar[float] = 0.0
"""Nuclear dipole moment of the species."""

def __repr__(self) -> str:
Expand Down
4 changes: 0 additions & 4 deletions src/rydstate/species/strontium/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
PotentialCoulombStrontium88,
PotentialFei2009Strontium87,
PotentialFei2009Strontium88,
PotentialMarinescu1994Strontium87,
PotentialMarinescu1994Strontium88,
)
from rydstate.species.strontium.sqdt_data import SQDTStrontium88

Expand All @@ -24,8 +22,6 @@
"PotentialCoulombStrontium88",
"PotentialFei2009Strontium87",
"PotentialFei2009Strontium88",
"PotentialMarinescu1994Strontium87",
"PotentialMarinescu1994Strontium88",
"SQDTStrontium88",
"sr87_mqdt_fmodel_data",
"sr88_mqdt_fmodel_data",
Expand Down
5 changes: 2 additions & 3 deletions src/rydstate/species/strontium/element_properties_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class ElementPropertiesStrontium87(_ElementPropertiesStrontiumAbstract):
str(rydberg_constant.u),
)

nuclear_dipole = -1.0936030
# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=87&Z=38
nuclear_dipole = -1.09316


class ElementPropertiesStrontium88(_ElementPropertiesStrontiumAbstract):
Expand All @@ -35,5 +36,3 @@ class ElementPropertiesStrontium88(_ElementPropertiesStrontiumAbstract):
rydberg_constant.m / (1 + electron_mass.to("u").m / _isotope_mass_u),
str(rydberg_constant.u),
)

nuclear_dipole = 2.3
23 changes: 1 addition & 22 deletions src/rydstate/species/strontium/potential_data.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from typing import ClassVar

from rydstate.species.potential import PotentialCoulomb, PotentialFei2009, PotentialMarinescu1994
from rydstate.species.potential import PotentialCoulomb, PotentialFei2009


class PotentialCoulombStrontium87(PotentialCoulomb):
Expand All @@ -23,22 +21,3 @@ class PotentialFei2009Strontium87(_PotentialFei2009StrontiumAbstract):

class PotentialFei2009Strontium88(_PotentialFei2009StrontiumAbstract):
species = "Sr88"


class _PotentialMarinescu1994StrontiumAbstract(PotentialMarinescu1994):
alpha_c_marinescu_1994 = 7.5
r_c_dict_marinescu_1994: ClassVar = {0: 1.59, 1: 1.58, 2: 1.57, 3: 1.56}
model_potential_parameter_marinescu_1994: ClassVar = {
0: (3.36124, 1.3337, 0, 5.94337),
1: (3.28205, 1.24035, 0, 3.78861),
2: (2.155, 1.4545, 0, 4.5111),
3: (2.1547, 1.14099, 0, 2.1987),
}


class PotentialMarinescu1994Strontium87(_PotentialMarinescu1994StrontiumAbstract):
species = "Sr87"


class PotentialMarinescu1994Strontium88(_PotentialMarinescu1994StrontiumAbstract):
species = "Sr88"
22 changes: 22 additions & 0 deletions src/rydstate/species/strontium_ion/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from rydstate.species.strontium_ion.element_properties_data import (
ElementPropertiesStrontium87Ion,
ElementPropertiesStrontium88Ion,
)
from rydstate.species.strontium_ion.potential_data import (
PotentialCoulombStrontium87Ion,
PotentialCoulombStrontium88Ion,
PotentialMarinescu1994Strontium87Ion,
PotentialMarinescu1994Strontium88Ion,
)
from rydstate.species.strontium_ion.sqdt_data import SQDTStrontium87Ion, SQDTStrontium88Ion

__all__ = [
"ElementPropertiesStrontium87Ion",
"ElementPropertiesStrontium88Ion",
"PotentialCoulombStrontium87Ion",
"PotentialCoulombStrontium88Ion",
"PotentialMarinescu1994Strontium87Ion",
"PotentialMarinescu1994Strontium88Ion",
"SQDTStrontium87Ion",
"SQDTStrontium88Ion",
]
39 changes: 39 additions & 0 deletions src/rydstate/species/strontium_ion/element_properties_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from abc import ABC
from typing import ClassVar

from rydstate.species.element_properties import ElementProperties
from rydstate.units import electron_mass, rydberg_constant


class _ElementPropertiesStrontiumAbstractIon(ElementProperties, ABC):
Z = 38
net_charge = 2
number_valence_electrons = 1
ground_state_shell = (5, 0)
additional_allowed_shells: ClassVar = [(4, 2), (4, 3)]
core_electron_configuration = "4p6"


class ElementPropertiesStrontium87Ion(_ElementPropertiesStrontiumAbstractIon):
species = "Sr87_ion"
i_c = 9 / 2

_isotope_mass_u = 86.9088774970
corrected_rydberg_constant = (
rydberg_constant.m / (1 + electron_mass.to("u").m / _isotope_mass_u),
str(rydberg_constant.u),
)

# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=87&Z=38
nuclear_dipole = -1.09316


class ElementPropertiesStrontium88Ion(_ElementPropertiesStrontiumAbstractIon):
species = "Sr88_ion"
i_c = 0

_isotope_mass_u = 87.9056122571
corrected_rydberg_constant = (
rydberg_constant.m / (1 + electron_mass.to("u").m / _isotope_mass_u),
str(rydberg_constant.u),
)
73 changes: 73 additions & 0 deletions src/rydstate/species/strontium_ion/nist_data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Configuration Term J Prefix Level (Hartree) Suffix Uncertainty (Hartree) Reference
"4p6.5s" "2S" "1/2" "" "0.0000000" "" "0" "L3465"
"4p6.4d" "2D" "3/2" "" "0.06632156" "" "0.00000005" "L3465"
"4p6.4d" "2D" "5/2" "" "0.06759888" "" "0.00000005" "L3465"
"4p6.5p" "2P*" "1/2" "" "0.10805436" "" "0.00000005" "L3465"
"4p6.5p" "2P*" "3/2" "" "0.11170608" "" "0.00000005" "L3465"
"4p6.6s" "2S" "1/2" "" "0.21750363" "" "0.00000005" "L3465"
"4p6.5d" "2D" "3/2" "" "0.24279029" "" "0.00000005" "L3465"
"4p6.5d" "2D" "5/2" "" "0.24318514" "" "0.00000005" "L3465"
"4p6.6p" "2P*" "1/2" "" "0.2541055" "" "0.0000014" "L3465"
"4p6.6p" "2P*" "3/2" "" "0.2554186" "" "0.0000014" "L3465"
"4p6.4f" "2F*" "7/2" "" "0.2778911" "" "0.0000005" "L9487"
"4p6.4f" "2F*" "5/2" "" "0.2778970" "" "0.0000005" "L9487"
"4p6.7s" "2S" "1/2" "" "0.29599822" "" "0.00000009" "L3465"
"4p6.6d" "2D" "3/2" "" "0.30765683" "" "0.00000009" "L3465"
"4p6.6d" "2D" "5/2" "" "0.30784036" "" "0.00000009" "L3465"
"4p6.7p" "2P*" "1/2" "" "0.3129261" "" "0.0000009" "L13983"
"4p6.7p" "2P*" "3/2" "" "0.3135539" "" "0.0000009" "L13983"
"4p6.5f" "2F*" "5/2" "" "0.3237996" "" "0.0000005" "L3465"
"4p6.5f" "2F*" "7/2" "" "0.3237996" "" "0.0000005" "L3465"
"4p6.5g" "2G" "7/2" "" "0.3251301" "" "0.0000005" "L3465"
"4p6.5g" "2G" "9/2" "" "0.3251301" "" "0.0000005" "L3465"
"4p6.8s" "2S" "1/2" "" "0.3336928" "" "0.0000005" "L3465"
"4p6.7d" "2D" "3/2" "" "0.3399997" "" "0.0000005" "L3465"
"4p6.7d" "2D" "5/2" "" "0.3400990" "" "0.0000005" "L3465"
"4p6.8p" "2P*" "1/2" "" "0.3431458" "" "" "VALUE MISSING IN NIST, USING 4p6.8p 2P* J=3/2"
"4p6.8p" "2P*" "3/2" "" "0.3431458" "" "0.0000005" "L3465"
"4p6.6f" "2F*" "5/2" "" "0.3488030" "" "0.0000005" "L3465"
"4p6.6f" "2F*" "7/2" "" "0.3488030" "" "0.0000005" "L3465"
"4p6.6g" "2G" "9/2" "" "0.3496427" "" "0.0000005" "L3465"
"4p6.6g" "2G" "7/2" "" "0.3496427" "" "0.0000005" "L3465"
"4p6.9s" "2S" "1/2" "" "0.3547453" "" "0.0000005" "L3465"
"4p6.8d" "2D" "3/2" "" "0.3585326" "" "0.0000005" "L3465"
"4p6.8d" "2D" "5/2" "" "0.3585945" "" "0.0000005" "L3465"
"4p6.7f" "2F*" "7/2" "" "0.3638749" "" "0.0000009" "L3465"
"4p6.7f" "2F*" "5/2" "" "0.3638749" "" "0.0000009" "L3465"
"4p6.7g" "2G" "9/2" "" "0.3644353" "" "0.0000005" "L3465"
"4p6.7g" "2G" "7/2" "" "0.3644353" "" "0.0000005" "L3465"
"4p6.10s" "2S" "1/2" "" "0.3677045" "" "0.0000005" "L3465"
"4p6.9d" "2D" "3/2" "" "0.3701576" "" "0.0000005" "L3465"
"4p6.9d" "2D" "5/2" "[" "0.3701977" "]" "0.0000005" "L3465"
"4p6.8f" "2F*" "7/2" "" "0.3736464" "" "0.0000009" "L3465"
"4p6.8f" "2F*" "5/2" "" "0.3736464" "" "0.0000009" "L3465"
"4p6.8g" "2G" "9/2" "" "0.3740314" "" "0.0000005" "L3465"
"4p6.8g" "2G" "7/2" "" "0.3740314" "" "0.0000005" "L3465"
"4p6.11s" "2S" "1/2" "" "0.3762444" "" "0.0000009" "L3465"
"4p6.10d" "2D" "5/2" "" "0.3779548" "" "0.0000014" "L3465"
"4p6.10d" "2D" "3/2" "" "0.3779658" "" "0.0000014" "L3465"
"4p6.9f" "2F*" "7/2" "" "0.3803296" "" "0.0000009" "L3465"
"4p6.9f" "2F*" "5/2" "" "0.3803296" "" "0.0000009" "L3465"
"4p6.9g" "2G" "9/2" "[" "0.3806080" "]" "0.0000014" "L3465"
"4p6.9g" "2G" "7/2" "[" "0.3806080" "]" "0.0000014" "L3465"
"4p6.12s" "2S" "1/2" "" "0.3821849" "" "0.0000009" "L3465"
"4p6.11d" "2D" "3/2" "" "0.3833792" "" "0.0000014" "L3465"
"4p6.11d" "2D" "5/2" "" "0.3834015" "" "0.0000014" "L3465"
"4p6.10f" "2F*" "7/2" "" "0.3851060" "" "0.0000009" "L3465"
"4p6.10f" "2F*" "5/2" "" "0.3851060" "" "0.0000009" "L3465"
"4p6.10g" "2G" "9/2" "" "0.3853156" "" "0.0000009" "L3465"
"4p6.10g" "2G" "7/2" "" "0.3853156" "" "0.0000009" "L3465"
"4p6.13s" "2S" "1/2" "" "0.3864643" "" "0.0000009" "L3465"
"4p6.12d" "2D" "3/2" "" "0.3873591" "" "0.0000014" "L3465"
"4p6.12d" "2D" "5/2" "" "0.3873591" "" "0.0000014" "L3465"
"4p6.11f" "2F*" "5/2" "" "0.3886317" "" "0.0000009" "L3465"
"4p6.11f" "2F*" "7/2" "" "0.3886317" "" "0.0000009" "L3465"
"4p6.11g" "2G" "7/2" "" "0.3887935" "" "0.0000009" "L3465"
"4p6.11g" "2G" "9/2" "" "0.3887935" "" "0.0000009" "L3465"
"4p6.13d" "2D" "3/2" "" "0.3903358" "" "0.0000014" "L3465"
"4p6.13d" "2D" "5/2" "" "0.3903358" "" "0.0000014" "L3465"
"4p6.12f" "2F*" "5/2" "" "0.3913158" "" "0.0000009" "L3465"
"4p6.12f" "2F*" "7/2" "" "0.3913158" "" "0.0000009" "L3465"
"4p6.14d" "2D" "3/2" "" "0.3926404" "" "0.0000014" "L3465"
"4p6.14d" "2D" "5/2" "" "0.3926404" "" "0.0000014" "L3465"
"Sr III (4p6 1S<0>)" "Limit" "---" "" "0.40535519" "" "0.00000009" "L13983"
38 changes: 38 additions & 0 deletions src/rydstate/species/strontium_ion/potential_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from typing import ClassVar

from rydstate.species.potential import PotentialCoulomb, PotentialMarinescu1994


class PotentialCoulombStrontium87Ion(PotentialCoulomb):
species = "Sr87_ion"


class PotentialCoulombStrontium88Ion(PotentialCoulomb):
species = "Sr88_ion"


class _PotentialMarinescu1994StrontiumIonAbstract(PotentialMarinescu1994):
is_default = True
# these values are taken from
# Greene, Aymar (1991), https://doi.org/10.1103/PhysRevA.44.1773
# Note that the potential there is defined with Marinescu a_j = Greene \alpha_i as follows:
# a_1 = \alpha_1
# a_2 = \alpha_3
# a_3 = \alpha_2
# and a_4 = 0
alpha_c_marinescu_1994 = 7.5
r_c_dict_marinescu_1994: ClassVar = {0: 1.7965, 1: 1.3960, 2: 1.6820, 3: 1.0057}
model_potential_parameter_marinescu_1994: ClassVar = {
0: (3.4187, 1.5915, 4.7332, 0),
1: (3.3235, 1.5712, 2.2539, 0),
2: (3.2533, 1.5996, 3.2330, 0),
3: (5.3540, 5.6624, 7.9517, 0),
}


class PotentialMarinescu1994Strontium87Ion(_PotentialMarinescu1994StrontiumIonAbstract):
species = "Sr87_ion"


class PotentialMarinescu1994Strontium88Ion(_PotentialMarinescu1994StrontiumIonAbstract):
species = "Sr88_ion"
23 changes: 23 additions & 0 deletions src/rydstate/species/strontium_ion/sqdt_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from abc import ABC
from typing import ClassVar

from rydstate.species.sqdt import SQDT


class _SQDTStrontiumIon(SQDT, ABC):
is_default = True
# Sr II (Sr+) energy levels, referenced to the Sr+ ground state (4p6.5s 2S1/2)
nist_data_file = "nist_data.txt"

# https://physics.nist.gov/cgi-bin/ASD/ie.pl?spectra=Sr&units=1&at_num_out=on&el_name_out=on&seq_out=on&shells_out=on&level_out=on&e_out=0&unc_out=on&biblio=on
ionization_energy = (11.0302765, "eV")

quantum_defects: ClassVar = None
Comment thread
johannes-moegerle marked this conversation as resolved.


class SQDTStrontium87Ion(_SQDTStrontiumIon):
species = "Sr87_ion"


class SQDTStrontium88Ion(_SQDTStrontiumIon):
species = "Sr88_ion"
8 changes: 4 additions & 4 deletions src/rydstate/species/ytterbium/element_properties_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class ElementPropertiesYtterbium171(_ElementPropertiesYtterbiumAbstract):
str(rydberg_constant.u),
)

nuclear_dipole = 0.49367
# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=171&Z=70
nuclear_dipole = 0.4923

Comment thread
johannes-moegerle marked this conversation as resolved.

class ElementPropertiesYtterbium173(_ElementPropertiesYtterbiumAbstract):
Expand All @@ -36,7 +37,8 @@ class ElementPropertiesYtterbium173(_ElementPropertiesYtterbiumAbstract):
str(rydberg_constant.u),
)

nuclear_dipole = -0.68
# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=173&Z=70
nuclear_dipole = -0.6780


class ElementPropertiesYtterbium174(_ElementPropertiesYtterbiumAbstract):
Expand All @@ -48,5 +50,3 @@ class ElementPropertiesYtterbium174(_ElementPropertiesYtterbiumAbstract):
rydberg_constant.m / (1 + electron_mass.to("u").m / _isotope_mass_u),
str(rydberg_constant.u),
)

nuclear_dipole = 2.1
8 changes: 4 additions & 4 deletions src/rydstate/species/ytterbium_ion/element_properties_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ class ElementPropertiesYtterbium171Ion(_ElementPropertiesYtterbiumAbstractIon):
str(rydberg_constant.u),
)

nuclear_dipole = 0.49367
# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=171&Z=70
nuclear_dipole = 0.4923


class ElementPropertiesYtterbium173Ion(_ElementPropertiesYtterbiumAbstractIon):
Expand All @@ -37,7 +38,8 @@ class ElementPropertiesYtterbium173Ion(_ElementPropertiesYtterbiumAbstractIon):
str(rydberg_constant.u),
)

nuclear_dipole = -0.68
# https://nds.iaea.org/nuclearmoments/isotope_measurement_results.php?A=173&Z=70
nuclear_dipole = -0.6780


class ElementPropertiesYtterbium174Ion(_ElementPropertiesYtterbiumAbstractIon):
Expand All @@ -49,5 +51,3 @@ class ElementPropertiesYtterbium174Ion(_ElementPropertiesYtterbiumAbstractIon):
rydberg_constant.m / (1 + electron_mass.to("u").m / _isotope_mass_u),
str(rydberg_constant.u),
)

nuclear_dipole = 2.1
Loading
Loading