transitions#
This module implements the AtomicTransition class, that is meant to be embedded
in the Atom class.
Example
from atomsmltr.atoms import Atom
from atomsmltr.atoms.transitions import DummyTransition
from scipy import constants as csts
atom = Atom(mass=4 * csts.m_u, name="Helium")
transition = DummyTransition("transition", Gamma=1, wavelength=1)
atom.add_transition(transition, tag="transition")
See also
- class atomsmltr.atoms.transitions.AtomicTransition(wavelength: float, Gamma: float, tag: str)[source]#
Bases:
ABCA generic (abstract) class to define electronic transitions in atoms
- Parameters:
wavelength (float) – the vacuum wavelength (in m)
Gamma (float) – the transition natural linewidth (in rad/s)
tag (str) – a tag identifying the transition
Notes
This is an abstract class that cannot be used in simulations. For that purpose, see actual implementations of transitions.
See also
- property Doppler_temperature#
Doppler temperature TD = hbar k / 2 / kB (K)
- Type:
float
- property Gamma#
transition natural linewidth (rad/s)
- Type:
float
- property Isat#
transition saturation intensity (W/m^2)
- Type:
float
- property Isat_mW_per_cm2#
transition saturation intensity (mW/cm^2)
- Type:
float
- gen_info_string(**kwargs)[source]#
generates an info string
- Returns:
info_string – a string with information on the atom
- Return type:
str
- gen_infostring_obj()[source]#
generates an
InfoStringobject.- Returns:
an
InfoStringobject- Return type:
- get_Doppler_temperature(detuning: float) float[source]#
Returns the Doppler temperature for a given laser detuning
- Parameters:
detuning (float) – laser detuning, in Hz
- Returns:
the Doppler temperature, in K
- Return type:
float
- abstractmethod get_resonant_speed(mag_field: float, polarization: str, detuning: float)[source]#
Returns the resonant speed for a given mag. field configuration
- Parameters:
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (str) – laser polarization : “pi”, “sigma+” or “sigma-”
detuning (float) – laser detuning (rad/s)
- Returns:
speed – resonant speed (m/s)
- Return type:
float
- get_saturation_parameter(intensity: float, detuning: float) float[source]#
Returns the saturation parameter (for a two-level system)
- Parameters:
intensity (float) – laser intensity in W/m^2
detuning (float) – laser detuning in rad/s
- Returns:
s – the saturation parameter
- Return type:
float
- abstractmethod get_scattering_rate(intensity: float, mag_field: float, polarization: ndarray, detuning: float)[source]#
Returns the scattering rate for a given laser / mag. field configuration
- Parameters:
intensity (float) – laser intensity (W/m^)
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (ndarray, shape (,3)) – projection of the laser polarization on (pi, sigma+, sigma-)
detuning (float) – laser detuning (rad/s)
- Returns:
scattering rate – the transition scattering rate
- Return type:
float
- property k#
transition wavenumber k = 2π / λ (m^-1)
- Type:
float
- property tag#
transition identifier
- Type:
str
- property wavelength#
transition vacuum wavelength (m)
- Type:
float
- class atomsmltr.atoms.transitions.DummyTransition(wavelength: float, Gamma: float, tag: str)[source]#
Bases:
AtomicTransitionDummy class, only for testing purposes
- get_resonant_speed(mag_field: float, polarization: str, detuning: float)[source]#
Returns the resonant speed for the DummyTransition model
This actually always return zero…
- Parameters:
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (str) – laser polarization : “pi”, “sigma+” or “sigma-”
detuning (float) – laser detuning (rad/s)
- Returns:
speed – resonant speed (m/s)
- Return type:
float
- get_scattering_rate(intensity: float, mag_field: float, polarization: str, detuning: float)[source]#
Returns the scattering rate for the DummyTransition model
This is just a two-level atom with no dependence on mag. field or polarization
- Parameters:
intensity (float) – laser intensity (W/m^)
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (ndarray, shape (,3)) – projection of the laser polarization on (pi, sigma+, sigma-)
detuning (float) – laser detuning (rad/s)
- Returns:
scattering rate – the transition scattering rate
- Return type:
float
- class atomsmltr.atoms.transitions.J0J1Transition(wavelength: float, Gamma: float, lande_factor: float, tag: str)[source]#
Bases:
AtomicTransitionA class to handle J=0 -> J=1 transitions
- Parameters:
wavelength (float) – the vacuum wavelength (in m)
Gamma (float) – the transition natural linewidth (in rad/s)
lande_factor (float) – the lande g-factor for the transition
tag (str) – a tag identifying the transition
- gen_infostring_obj()[source]#
generates an
InfoStringobject.- Returns:
an
InfoStringobject- Return type:
- get_resonant_speed(mag_field: float, polarization: str, detuning: float)[source]#
Returns the resonant speed for a given mag. field configuration
- Parameters:
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (str) – laser polarization : “pi”, “sigma+” or “sigma-”
detuning (float) – laser detuning (rad/s)
- Returns:
speed – resonant speed (m/s)
- Return type:
float
- get_scattering_rate(intensity: float, mag_field: float, polarization: list, detuning: float)[source]#
Returns the scattering rate for a given laser / mag. field configuration
- Parameters:
intensity (float) – laser intensity (W/m^)
mag_field (float) – (scalar) magnetic field amplitude (T)
polarization (ndarray, shape (,3)) – projection of the laser polarization on (pi, sigma+, sigma-)
detuning (float) – laser detuning (rad/s)
- Returns:
scattering rate – the transition scattering rate
- Return type:
float
- property lande_factor#
the lande g-factor for the transition
- Type:
float