atoms#
This module implements the generic Atom class, that can be used to define
a custom atom species.
Note
In general, it is better to create new classes for specific
atomic species, so that they be used by all users. Specifi atomic species
are stored in atomsmltr.atoms.collection
- class atomsmltr.atoms.generic.Atom(mass: float, name: str)[source]#
Bases:
ABCA generic class to define atomic species.
- Parameters:
mass (float) – the atomic mass in kg
name (str) – a name to describe the atom
Example
>>> from atomsmltr.atoms import Atom >>> from scipy import constants as csts >>> atom = Atom(mass=4 * csts.m_u, name="Helium")
Note
Specific atomic species are implemented in
atomsmltr.atoms.collection- add_transition(transition: AtomicTransition, tag=None) None[source]#
adds a transition to the atom transition dict.
- Parameters:
transition (AtomicTransition) – an atomic transition (see
atomsmltr.atoms.transitions.AtomicTransition)tag (str, optional) – the tag identifying the transition in the transition dict. If nothing or
Noneis given, we will use the.tagproperty of theAtomicTransitionobject
- gen_info_string(**kwargs) str[source]#
generates an info string
- Returns:
info_string – a string with information on the atom
- Return type:
str
- gen_infostring_obj() InfoString[source]#
generates an
InfoStringobject.- Returns:
an
InfoStringobject- Return type:
- get_radiation_pressure(transition: str, intensity: float, mag_field: float, polarization: ndarray, detuning: float) float[source]#
Computes the radiation pressure.
- Parameters:
transition (str) – The tag of the considered transition. The transition has to be defined in the atom’s transition list, that can be accessed using the
list_transitions()method.intensity (float) – The laser intensity, in W/m^2
mag_field (float) – The norm of the magnetic field, in T (scalar).
polarization (ndarray, shape (,3)) – Projection of the laser polarization on (pi, sigma+, sigma-)
detuning (float) – The laser bare detuning, in rad/s
- Returns:
F_rad – The radiation pressure in SI (scalar)
- Return type:
float
Notes
Yields the radiation pressure felt by an atom excited on a given transition, by a laser with given intensity. It takes into account the value of the magnetic field, the polarization of the laser and its bare detuning.
The computation is based on the
get_scattering_rate()method, implemented in theAtomicTransitionclass.
- get_transitions_copy() dict[source]#
returns a copy of the transition dictionnary
- Returns:
a dict containing the atom’s transitions
- Return type:
dict
- list_transitions() list[source]#
returns a list of the transition tags (str)
- Returns:
list of transition tags
- Return type:
list of str
- property mass: float#
the atom mass in kg
- Type:
float
- property mass_au: float#
the atom mass in atomic units
- Type:
float
- property name: float#
the atom name
- Type:
str
- rm_transition(tag: str) None[source]#
removes a transition for the atom’s transition dict.
- Parameters:
tag (str) – the tag of the transition to remove
- property trans: dict#
a copy of the atom’s transition dictionnary
- Type:
dict
- property transitions: list#
a list of the atom’s transitions
- Type:
list