get_effective_hamiltonian_from_system

get_effective_hamiltonian_from_system(ket_tuple_list, system_pair, order=2, required_overlap=0.9, unit=None)[source]

Get the perturbative Hamiltonian at a desired order in Rayleigh-Schrödinger perturbation theory.

This function takes a list of tuples of ket states, which forms the basis of the model space in which the effective Hamiltonian is calculated. The whole Hamiltonian is taken from a pair system. The Hamiltonian of the pair system is assumed to be diagonal in the unperturbed Hamiltonian, all off-diagonal elements are assumed to belong to the perturbative term. The function also checks for resonances between all states and states in the model space.

Parameters:
  • ket_tuple_list (Collection[Union[KetPairReal, KetPairComplex, tuple[KetAtom, KetAtom], Sequence[KetAtom]]]) – List of all pair states that span up the model space. The effective Hamiltonian is calculated for these states.

  • system_pair (Union[SystemPairReal, SystemPairComplex]) – Two-Atom-System, diagonal in the basis of the unperturbed Hamiltonian.

  • order (int) – Order up to which the perturbation theory is expanded. Support up to third order. Default is second order.

  • required_overlap (float) – If set, the code checks for validity of a perturbative treatment. Error is thrown if the perturbed eigenstate has less overlap than this value with the unperturbed eigenstate.

  • unit (Optional[str]) – The unit to which to convert the result. Default None will return a pint quantity.

Return type:

tuple[Union[ndarray[tuple[int, ...], dtype[Any]], PlainQuantity[ndarray[tuple[int, ...], dtype[Any]]]], csr_matrix]

Returns:

  • Effective Hamiltonian as a \(m \times m\) matrix, where m is the length of ket_tuple_list.

  • Eigenvectors in perturbation theory due to interaction with states out of the model space, returned as a sparse matrix in compressed row format. Each row represents the corresponding eigenvector.

Raises:

ValueError – If a resonance between a state in the model space and a state not in the model space occurs.