get_effective_hamiltonian_from_system
- get_effective_hamiltonian_from_system(ket_tuple_list, system_pair, order=2, required_overlap=0.9, return_only_specified_order=False, 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.return_only_specified_order (
bool) – If True, the returned effective Hamiltonian will only contain the specified order. Default is False, which returns the sum of all orders up to the specified order.unit (
Optional[str]) – The unit to which to convert the result. Default None will return a pint quantity.
- Return type:
tuple[Union[ndarray[tuple[Any,...],dtype[Any]],PlainQuantity[ndarray[tuple[Any,...],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.