Hamiltonian Functions

Some useful functions for creating various ‘generic’ Hamiltonians (i.e. useful for alkali atoms), including their field dependent & independent parts, and connections between various manifolds.

Note: The Hamiltonians have the value of the Bohr magneton specified in Hz/G by default. To use pylcp default units, the Bohr magneton values must be overridden.

Other Hamiltonians

In addition to the Hamiltonians specified here, there are other, more specialized Hamiltonians for other quantum systems like molecules.

Overview

singleF(F[, gF, muB, return_basis])

Construct the Hamiltonian for a lonely angular momentum state

hyperfine_uncoupled(J, I, gJ, gI, Ahfs[, ...])

Construct the hyperfine Hamiltonian in the coupled basis.

hyperfine_coupled(J, I, gJ, gI, Ahfs[, ...])

Construct the hyperfine Hamiltonian in the coupled basis.

fine_structure_uncoupled(L, S, I, xi, a_c, ...)

Returns the full fine structure manifold in the uncoupled basis.

dqij_two_bare_hyperfine(F, Fp[, normalize])

Calculates the dqij matrix for two bare hyperfine states.

dqij_two_hyperfine_manifolds(J, Jp, I[, ...])

Dipole matrix element matrix elements for transitions between two hyperfine manifolds.

dqij_two_fine_stucture_manifolds_uncoupled(...)

Return the coupling between two fine structure manifolds

Detailed functions

pylcp.hamiltonians.dqij_two_bare_hyperfine(F, Fp, normalize=True)[source]

Calculates the dqij matrix for two bare hyperfine states. Specifically, it returns the matrix of the operator $d_q$, where a photon is created by a transition from the excited state to the ground state.

Parameters
  • F (integer or float (half integer)) – Total angular momentum quantum number of the F state.

  • Fp (integer or float (half integer)) – Total angular momentum quantum number of the F’ state.

  • normalize (boolean) – By default, ‘normalize’ is True

pylcp.hamiltonians.dqij_two_fine_stucture_manifolds_uncoupled(basis_g, basis_e)[source]

Return the coupling between two fine structure manifolds

Parameters
  • basis_g (list or array_like) – A list of the basis vectors for the ground state. In the uncoupled basis, they are of the form \(|m_L, m_S, m_I\rangle\)

  • basis_e (list or array_like) – A list of the basis vectors for the ground state. In the uncoupled basis, they are of the form \(|m_L', m_S', m_I'\rangle\)

Returns

d_q – The dipole coupling array. N is the number of ground states and M is the number of excited states.

Return type

array with shape (3, N, M)

pylcp.hamiltonians.dqij_two_hyperfine_manifolds(J, Jp, I, normalize=True, return_basis=False)[source]

Dipole matrix element matrix elements for transitions between two hyperfine manifolds.

Parameters
  • J (int or float) – Lower hyperfine manifold \(J\) quantum number

  • Jp (int or float) – Upper hyperfine manifold \(J'\) quantum number

  • I (int or float) – Nuclear spin associated with both manifolds

  • normalize (boolean, optional) – Normalize the d_q to one. Default: True

  • return_basis (boolean, optional) – If true, returns the basis states as well as the \(d_q\)

Returns

  • d_q (array_like) – Dipole matrix elements between hyperfine manifolds

  • basis_g (list) – If return_basis is true, list of (\(F\), \(m_F\))

  • basis_e (list) – If return_basis is true, list of (\(F'\), \(m_F'\))

pylcp.hamiltonians.fine_structure_uncoupled(L, S, I, xi, a_c, a_orb, a_dip, gL, gS, gI, muB=1399624.49361, return_basis=False)[source]

Returns the full fine structure manifold in the uncoupled basis.

Parameters
  • L (int) – Orbital angular momentum of interest

  • S (int or float) – Spin angular momentum of interest

  • I (int or float) – Nuclear angular momentum of interest

  • xi (float) – Fine structure splitting

  • a_c (float) – Contact interaction constant

  • a_orb (float) – Orbital interaction constant

  • a_dip (float) – Dipole interaction constant

  • gL (float) – Orbital g-factor

  • gS (float) – Spin g-factor

  • gI (float) – Nuclear g-factor

  • muB (float, optional) – Bohr magneton. Default: the CODATA value in Hz/G

  • return_basis (bool, optional) – Return the basis vectors as well as gthe

Returns

  • H_0 (array (NxN)) – Field free Hamiltonian, where N is the number of states

  • mu_q (array (3xNxN)) – Zeeman splitting array

Notes

See J.D.Lyons and T.P.Das, Phys.Rev.A,2,2250 (1970) and H.Orth et al,Z.Physik A,273,221 (1975) for details of Hamiltonian and splitting constants.

This function is adapted from the one found in Tollet, “Permanent magnetic trap for Li atoms”, thesis, Rice University, 1994.

pylcp.hamiltonians.hyperfine_coupled(J, I, gJ, gI, Ahfs, Bhfs=0, Chfs=0, muB=1399624.49361, return_basis=False)[source]

Construct the hyperfine Hamiltonian in the coupled basis.

For parameterization of this Hamiltonian, see Steck, Alkali D line data, which contains a useful description of the hyperfine Hamiltonian.

Parameters
  • J (int or float) – Lower hyperfine manifold \(J\) quantum number

  • I (int or float) – Nuclear spin associated with both manifolds

  • gJ (float) – Electronic Lande g-factor

  • gI (float) – Nuclear g-factor

  • Ahfs (float) – Hyperfine \(A\) parameter

  • Bhfs (float, optional) – Hyperfine \(B\) parameter. Default: 0.

  • Chfs (float, optional) – Hyperfine \(C\) parameter. Default: 0.

  • muB (float, optional) – Bohr magneton. Default: the CODATA value in Hz/G

  • return_basis (boolean, optional) – If true, return the basis. Default: False

Returns

  • H_0 (array_like) – Field independent component of the Hamiltonian

  • mu_q (array_like) – Magnetic field dependent component of the Hamiltonian

  • basis (list) – List of \((F, m_F)\) basis states

pylcp.hamiltonians.hyperfine_uncoupled(J, I, gJ, gI, Ahfs, Bhfs=0, Chfs=0, muB=1399624.49361, return_basis=False)[source]

Construct the hyperfine Hamiltonian in the coupled basis.

For parameterization of this Hamiltonian, see Steck, Alkali D line data, which contains a useful description of the hyperfine Hamiltonian.

Parameters
  • J (int or float) – Lower hyperfine manifold \(J\) quantum number

  • I (int or float) – Nuclear spin associated with both manifolds

  • gJ (float) – Electronic Lande g-factor

  • gI (float) – Nuclear g-factor

  • Ahfs (float) – Hyperfine \(A\) parameter

  • Bhfs (float, optional) – Hyperfine \(B\) parameter. Default: 0.

  • Chfs (float, optional) – Hyperfine \(C\) parameter. Default: 0.

  • muB (float, optional) – Bohr magneton. Default: the CODATA value in Hz/G

  • return_basis (boolean, optional) – If true, return the basis. Default: False

Returns

  • H_0 (array_like) – Field independent component of the Hamiltonian

  • mu_q (array_like) – Magnetic field dependent component of the Hamiltonian

  • basis (list) – List of \((J, I, m_J, m_I)\) basis states

pylcp.hamiltonians.singleF(F, gF=1, muB=1399624.49361, return_basis=False)[source]

Construct the Hamiltonian for a lonely angular momentum state

Parameters
  • F (int or float) – Angular momentum quantum number

  • gF (float) – Associated Lande g-factor

  • muB (float, optional) – Bohr magneton. Default: the CODATA value in Hz/G

  • return_basis (boolean, optional) – If true, return the basis. Default: False

Returns

  • H_0 (array_like) – Field independent component of the Hamiltonian

  • mu_q (array_like) – Magnetic field dependent component of the Hamiltonian

  • basis (list) – List of \((F, m_F)\) basis states