OneJManifold#
- class OneJManifold(atom, n, l, j)#
Bases:
AtomManifoldOneJManifoldsingle-\(J\) hyperfine manifold (\(F,M_F\)).Builds the
StateListwith 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 contextn (
int32) – Principal quantum numberl (
int32) – Orbital angular momentumj (
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) –Laserobject specifying field parameters (frequency, intensity, polarization, direction)- Returns:
State table with AC Stark energy shifts
- Return type:
table
Returns:
Table identical to
StateListwith additionalEnergyShiftcolumn 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