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: ABC

A 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 None is given, we will use the .tag property of the AtomicTransition object

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 InfoString object.

Returns:

an InfoString object

Return type:

InfoString

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 the AtomicTransition class.

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

print_info() None[source]#

prints the atom infostring

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