hyperfine
Calculate factors for hyperfine structure in single-electron atoms.
- class maxwellbloch.hyperfine.Atom1e(element=None, isotope=None)[source]
Bases:
_JsonMixinRepresents an atom object and contains a list of J levels.
- get_clebsch_hf_factors(F_level_idxs_a, F_level_idxs_b, q)[source]
- Returns a list of Clebsch-Gordan coefficients for the hyperfine
transition dipole matrix elements for each coupled level pair.
- Parameters:
F_level_idx_a (int) – F level the transition is from (lower level)
F_level_idx_b (int) – F level the transition is to (upper level)
q (int) – The field polarisation. Choose from [-1, 0, 1].
- Returns:
factors, length of mF_list
- Return type:
(list)
- get_clebsch_hf_factors_iso(F_level_idxs_a, F_level_idxs_b)[source]
Returns a list of Clebsch-Gordan coefficients for the hyperfine transition dipole matrix elements for each coupled level pair. for an isotropic field.
- Parameters:
F_level_idx_a (int) – F level the transition is from (lower level)
F_level_idx_b (int) – F level the transition is to (upper level)
- Returns:
factors, length of mF_list
- Return type:
(list)
Notes
An isotropic field is a field with equal components in all three possible polarizations.
Any given polarisation of the field only interacts with one of the three components of the dipole moment, so it is appropriate to average over the couplings (i.e. factor 1/3) rather than sum.
- get_coupled_levels(F_level_idxs_a, F_level_idxs_b)[source]
Return all mF-level index pairs between two sets of F levels.
- Parameters:
F_level_idxs_a – Indices into self.F_levels for the first group.
F_level_idxs_b – Indices into self.F_levels for the second group.
- Returns:
List of [i, j] pairs where i is an mF index from group a and j is an mF index from group b.
Note
Selection rules (e.g. forbidding J=J’ transitions) are not enforced here. Callers are responsible for passing physically valid level index sets.
- get_decay_factors(F_level_idxs_a, F_level_idxs_b)[source]
Returns a list of factors for the collapse operators for each hyperfine coupled level pair.
- Parameters:
F_level_idx_a (int) – F level the transition is from (lower level)
F_level_idx_b (int) – F level the transition is to(upper level)
Notes
This is equivalent to the clebsch_hf_factors for all polarisations as decay photons are of all polarisations. Note that for any coupled levels pair there will be only one n on-zero factor to sum.
Returns: (list): factors, length of mF_list
- get_strength_factor(F_level_idx_lower, F_level_idx_upper, mF_level_lower_idx=0)[source]
- Relative hyperfine transition strength factors.
Equal for each ground state (mF_level_lower_idx), so this parameter never needs to be set, just used for testing that claim.
Notes
Sum of the matrix elements from a single ground-state sublevel to the levels in a particular F’ energy level.
The sum S_{FF’} is independent of the ground state sublevel chosen.
The sum of S_{FF’} over upper F levels should be 1.
- class maxwellbloch.hyperfine.LevelF(I, J, F, energy=0.0, mF_energies=None)[source]
Bases:
_JsonMixin- Represents an F hyperfine structure level and holds its magnetic
sublevels mF.
- F
Total atomic angular momentum number F.
- Type:
float
- energy
Energy of the level.
- Type:
float
- mf_levels
Energies of 2F+1 hyperfine sublevels.
- Type:
list, length 2F+1
Notes
- The magnitude of F can take values in the range
|J - I| <= F <= J + I. A
ValueErroris raised if this is not satisfied.
The mF_energies are set _relative_ to the F level energy.