Source code for atomsmltr.atoms.collection.rubidium
"""Rubidium
=============
Implements a dedicated class for Rubidium atoms
>>> from atomsmltr.atoms import Rubidium
"""
# % IMPORTS
import scipy.constants as csts
# % LOCAL IMPORTS
from ...atoms.generic import Atom
from ...atoms.transitions import J0J1Transition
# % CONSTANTS
RUBIDIUM_87_MASS = 87 * csts.m_u # kg
"""float: Rubidium 87 mass (kg)"""
# - D2 transition
RUBIDIUM_D2_WAVELENGTH = 780.241e-9 # m
"""float: Rubidium D2 transition wavelength (m)"""
RUBIDIUM_D2_GAMMA = 38.11e6 # rad/s
"""float: Rubidium D2 transition natural linewidth (rad/s)"""
RUBIDIUM_D2_LANDE_FACTOR = 1.0
"""float: Rubidium D2 transition Lande factor"""
# %% TRANSITIONS
[docs]
class MainLine(J0J1Transition):
"""The D2 (780nm) transition of Rubidium"""
def __init__(self):
super().__init__(
lande_factor=RUBIDIUM_D2_LANDE_FACTOR,
wavelength=RUBIDIUM_D2_WAVELENGTH,
Gamma=RUBIDIUM_D2_GAMMA,
tag="main",
)
# %% ATOM
[docs]
class Rubidium(Atom):
"""Rubidium 87 atomic class"""
def __init__(self):
# init super class
super().__init__(
mass=RUBIDIUM_87_MASS,
name="Rubidium",
)
# add transitions
D2 = MainLine()
self.add_transition(D2)