OneJManifold

OneJManifold#

class OneJManifold(atom, n, l, j)#

Bases: AtomManifold

OneJManifold single-\(J\) hyperfine manifold (\(F,M_F\)).

Builds the StateList with energies, \(g\)-factors and labels, and provides spin operators and Zeeman Hamiltonians.

Examples:

% Example1: Use prebuilt manifold from an Alkali atom
alk = Alkali("Rubidium87");
mani = alk.DGround;                 % :class:`OneJManifold` for ground state
B   = MagneticField(bias=[0;0;1e-4]);
Hz  = mani.HamiltonianAtomBiasField(B); % Zeeman Hamiltonian [Hz]
% Example2: Construct directly with (n,L,J)
alk = Alkali("Rubidium87");
mani = OneJManifold(alk, n=alk.groundStateN, l=0, j=1/2);
Ha   = mani.HamiltonianAtom();      % Diagonal hyperfine Hamiltonian
Constructor Summary
OneJManifold(atom, n, l, j)#

Construct a OneJManifold.

Parameters:
  • atom (Atom) – Atom context

  • n (int32) – Principal quantum number

  • l (int32) – Orbital angular momentum

  • j (double) – Total electronic angular momentum

Property Summary
Energy double#

Hyperfine energy shifts [Hz]

F double#

Hyperfine \(F\) values

FOperator cell#

Hyperfine spin operators \(F_{x,y,z}\)

HFSCoefficient#

[A,B] hyperfine coefficients (Hz)

IOperator cell#

Nuclear spin operators \(I_{x,y,z}\)

J double#

Total electronic angular momentum \(J\)

JOperator cell#

Electronic spin operators \(J_{x,y,z}\)

L int32#

Orbital angular momentum \(L\)

LandegF double#

Landé \(g_F\) per \(F\)

LandegI double#

Nuclear \(g_I\)

LandegJ double#

Landé \(g_J\)

MF double#

Magnetic sublevels \(M_F\)

N int32#

Principal quantum number

StateList table#

Basis state table with labels

Method Summary
BiasDressedStateList(B, isPlot, options)#

Compute bias-field dressed states and optional dispersion map.

Parameters:
  • obj (OneJManifold) – Hyperfine manifold object.

  • B (MagneticField) – Bias magnetic field [T], aligned with quantization axis.

  • isPlot (logical optional) – Plot dressed energies vs bias field.

  • samplingSize (double optional) – Number of samples along B.

Returns:

  • dressedStateList — table with indices, energies, dressed states

  • U — unitary to the dressed basis

  • brMap — {Bz [T], eigenvalue matrix [Hz]}

Return type:

table, double, cell

BiasDressedStateListTest(B, isPlot)#

Test variant of bias-field dressed states (alternate indexing).

Parameters:
  • obj (OneJManifold) – Hyperfine manifold object.

  • B (MagneticField) – Bias magnetic field [T], aligned with quantization axis.

  • isPlot (logical optional) – Plot dressed energies vs bias field.

Returns:

  • dressedStateList — table with indices, energies, dressed states

  • U — unitary to the dressed basis

Return type:

table, double

HamiltonianAtom(U)#

Diagonal hyperfine Hamiltonian; applies optional basis change.

Parameters:
  • obj (OneJManifold) – Hyperfine manifold object.

  • U (double optional) – Basis-change unitary. Use 1 to keep current basis.

Returns:

Ha — atomic Hamiltonian [Hz].

Return type:

double

\[H_a = U^\dagger \operatorname{diag}(E)\, U\]
HamiltonianAtomBiasField(B, U)#

Zeeman Hamiltonian in a static bias field.

Parameters:
  • obj (OneJManifold) – Hyperfine manifold object.

  • B (MagneticField) – Magnetic field [T].

  • U (double optional) – Basis-change unitary. Use 1 to keep current basis.

Returns:

Ham — Zeeman Hamiltonian [Hz].

Return type:

double

\[H_Z = \mu_B \big( g_J \mathbf{J} + g_I \mathbf{I} \big) \cdot \mathbf{B} / h\]
LaserDressedStateListLargeDetuning(laser)#

Compute laser-dressed states for large detuning limit.

Calculates AC Stark energy shifts for all hyperfine states in the manifold due to a laser field. The method computes the total AC Stark shift including scalar, vector, and tensor contributions for each \(|F,M_F\rangle\) state. Valid in the large detuning limit where the laser detuning is much larger than the hyperfine splitting.

Parameters:

laser (Laser) – Laser object specifying field parameters (frequency, intensity, polarization, direction)

Returns:

State table with AC Stark energy shifts

Return type:

table

Returns:

Table identical to StateList with additional EnergyShift column containing the AC Stark shift \(\Delta E\) [Hz] for each state. The shift includes scalar (\(\propto I\)), vector (\(\propto I \cdot M_F\)), and tensor (\(\propto I \cdot (3M_F^2 - F(F+1))\)) contributions.

Notes:

The quantization axis is assumed to be aligned with the \(z\)-axis. For each state, the method calls Atom.AcStarkShiftLargeDetuning() with quantum numbers \((n,\ell,j,f,m_f)\) extracted from the state table.

getMIMJ(isPlot)#

Map zero-field states to uncoupled projections (M_I, M_J) by adiabatic following.

Parameters:
  • obj (OneJManifold) – Hyperfine manifold object.

  • isPlot (logical optional) – Plot energies and labels with (M_I, M_J).

Returns:

mimjList — table with columns MI and MJ per basis state.

Return type:

table