Atom

Atom#

class Atom(atomName)#

Bases: dynamicprops, handle, matlab.mixin.Heterogeneous

Atom stores information about alkali/divalent atoms and calculates the atomic structure. This class is based on the well-established python package, ARC (Alkali.ne Rydberg Calculator). Most (but not all) of the atomic data are inherited from the ARC package. I have edited the ARC atomic data in arcDataEdit.py and lithium7_literature_dme.csv to include more up-to-date data. Some ARC functions have defects or convention conflicts so I have to rewrite.

Note: I follow the conventions in Daniel Steck’s Quantum and Atom Optics to define, e.g., the transition matrix elements.

Constructor Summary
Atom(atomName)#

Construct an Atom and mirror ARC properties.

Creates ARC object, mirrors its attributes to dynamic MATLAB properties, infers Type, and prepares DataPath.

Parameters:

atomName (string) – Atom/isotope name (ARC-known), e.g., “Lithium7”

Property Summary
ArcObj#

ARC atom object (Python)

DataPath string#

Where to save the pre-calcualted data, e.g., the \(|M_I,M_J\rangle \leftrightarrow |F,M_F\rangle\) mapping data. Distinguish this with the dataFolder property that pointing to the arc atomic data.

Name string#

e.g., “Lithium7”. Check the ARC documents for available atoms.

Type string {mustBeMember(Type,{'Alkali','Divalent'})}#

Either “Alkali” or “Divalent”

Method Summary
static loadobj(s)#

Reconstruct from (Type, Name).

saveobj()#

Save minimal state (Type, Name).