Source code for atomsmltr.atoms.collection.strontium

"""Strontium
=============
Implements a dedicated class for Strontium atoms

>>> from atomsmltr.atoms import Strontium
"""

# % IMPORTS
import scipy.constants as csts

# % LOCAL IMPORTS
from ...atoms.generic import Atom
from ...atoms.transitions import J0J1Transition

# % CONSTANTS

STRONTIUM_88_MASS = 88 * csts.m_u  # kg
"""float: Strontium 88 mass (kg)"""

# - main transition
STRONTIUM_MAIN_WAVELENGTH = 460.862e-9  # m
"""float: Strontium main transition wavelength (m)"""
STRONTIUM_MAIN_GAMMA = 2 * csts.pi * 32.0e6  # rad/s
"""float: Strontium main transition natural linewidth (rad/s)"""
STRONTIUM_MAIN_LANDE_FACTOR = 1.0
"""float: Strontium main transition Lande factor"""

# - intercombination transition
STRONTIUM_INTERCOMBINATION_WAVELENGTH = 689.449e-9  # m
"""float: Strontium intercombination transition wavelength (m)"""
STRONTIUM_INTERCOMBINATION_GAMMA = 2 * csts.pi * 7.46e3  # rad/s
"""float: Strontium intercombination transition natural linewidth (rad/s)"""
STRONTIUM_INTERCOMBINATION_LANDE_FACTOR = 1.5
"""float: Strontium intercombination transition Lande factor"""

# %% TRANSITIONS


[docs] class MainLine(J0J1Transition): """The main (461nm) transition of Strontium""" def __init__(self): super().__init__( lande_factor=STRONTIUM_MAIN_LANDE_FACTOR, wavelength=STRONTIUM_MAIN_WAVELENGTH, Gamma=STRONTIUM_MAIN_GAMMA, tag="main", )
[docs] class IntercombinationLine(J0J1Transition): """The intercombination (689nm) transition of Strontium""" def __init__(self): super().__init__( lande_factor=STRONTIUM_INTERCOMBINATION_LANDE_FACTOR, wavelength=STRONTIUM_INTERCOMBINATION_WAVELENGTH, Gamma=STRONTIUM_INTERCOMBINATION_GAMMA, tag="intercombination", )
# %% ATOM
[docs] class Strontium(Atom): """Strontium 88 atomic class""" def __init__(self): # init super class super().__init__( mass=STRONTIUM_88_MASS, name="Strontium", ) # add transitions main = MainLine() intercomb = IntercombinationLine() self.add_transition(main) self.add_transition(intercomb)