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]
- Overloads:
ket_tuple_list (Collection[‘KetPairLike’]), system_pair (SystemPair), order (int), required_overlap (float), return_only_specified_order (bool), unit (None) → tuple[‘PintArray’, ‘csr_matrix’]
ket_tuple_list (Collection[‘KetPairLike’]), system_pair (SystemPair), order (int), required_overlap (float), return_only_specified_order (bool), unit (str) → tuple[‘NDArray’, ‘csr_matrix’]
- Parameters:
- Return type:
tuple[ndarray[tuple[Any, …], dtype[Any]] | PlainQuantity[ndarray[tuple[Any, …], dtype[Any]]], csr_matrix]
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[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 (
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 (
str|None) – The unit to which to convert the result. Default None will return a pint quantity.
- 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.
- Return type:
tuple[ndarray[tuple[Any, …], dtype[Any]] | PlainQuantity[ndarray[tuple[Any, …], dtype[Any]]], csr_matrix]