Source code for atomsmltr.atoms.collection.ytterbium

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

>>> from atomsmltr.atoms import Ytterbium
"""

# % IMPORTS
import scipy.constants as csts

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

# % CONSTANTS

YTTERBIUM_174_MASS = 173.94 * csts.m_u  # kg
"""float: Ytterbium 88 mass (kg)"""

YTTERBIUM_MAIN_WAVELENGTH = 398.911e-9  # m
"""float: Ytterbium main transition wavelength (m)"""
YTTERBIUM_MAIN_GAMMA = 2 * csts.pi * 28.9e6  # rad/s
"""float: Ytterbium main transition natural linewidth (rad/s)"""
YTTERBIUM_MAIN_LANDE_FACTOR = 1.035
"""float: Ytterbium main transition Lande factor"""

YTTERBIUM_INTERCOMBINATION_WAVELENGTH = 555.802e-9  # m
"""float: Ytterbium intercombination transition wavelength (m)"""
YTTERBIUM_INTERCOMBINATION_GAMMA = 2 * csts.pi * 182e3  # rad/s
"""float: Ytterbium intercombination transition natural linewidth (rad/s)"""
YTTERBIUM_INTERCOMBINATION_LANDE_FACTOR = 1.493
"""float: Ytterbium intercombination transition Lande factor"""

# %% TRANSITIONS


[docs] class MainLine(J0J1Transition): """The main (399nm) transition of Ytterbium""" def __init__(self): super().__init__( lande_factor=YTTERBIUM_MAIN_LANDE_FACTOR, wavelength=YTTERBIUM_MAIN_WAVELENGTH, Gamma=YTTERBIUM_MAIN_GAMMA, tag="main", )
[docs] class IntercombinationLine(J0J1Transition): """The intercombination (556nm) transition of Ytterbium""" def __init__(self): super().__init__( lande_factor=YTTERBIUM_INTERCOMBINATION_LANDE_FACTOR, wavelength=YTTERBIUM_INTERCOMBINATION_WAVELENGTH, Gamma=YTTERBIUM_INTERCOMBINATION_GAMMA, tag="intercombination", )
# %% ATOM
[docs] class Ytterbium(Atom): """Strontium 174 atomic class""" def __init__(self): # init super class super().__init__( mass=YTTERBIUM_174_MASS, name="Ytterbium", ) # add transitions main = MainLine() intercomb = IntercombinationLine() self.add_transition(main) self.add_transition(intercomb)