hqs_spin_mapper.schrieffer_wolff

Module containing the Schrieffer-Wolff transformation functionality in Python.

Functions

schrieffer_wolff(transformable_system[, ...])

Interface function for the Schrieffer-Wolff transformation functionality.

hqs_spin_mapper.schrieffer_wolff.schrieffer_wolff(transformable_system: Supports_SW_Transformation, number_bath_operators_for_contraction: int = 1, _vector_space_cap: int = 1500000, _max_krylov_space_dimension: int = 200, rdm1_uu: ndarray | None = None, rdm1_dd: ndarray | None = None, rdm1_ud: ndarray | None = None) None[source]

Interface function for the Schrieffer-Wolff transformation functionality.

The function takes the tensor description of the Hamiltonian and interfaces with a C++ code that turns this description into a Fermions.ExpressionSpinful and then proceeds to perform a Schrieffer-Wolff transformation. The computed generator can be used to transform potential remaining terms of the original Hamiltonian.

Parameters:
  • transformable_system (Supports_SW_Transformation) – Container object for the system data

  • number_bath_operators_for_contraction (int) – Number of contractions to be performed

  • _vector_space_cap (int) – Limit for the size of the vector space

  • _sv_cutoff (float) – Relative cutoff for the singular values

  • _max_krylov_space_dimension (int) – Maximum size of the Krylov subspace of the solver

  • rdm1_uu (Optional[np.ndarray]) – Used for 1-RDM decoupling (currently deactivated)

  • rdm1_dd (Optional[np.ndarray]) – Used for 1-RDM decoupling (currently deactivated)

  • rdm1_ud (Optional[np.ndarray]) – Used for 1-RDM decoupling (currently deactivated)

Raises:
  • InsufficientProtocolError – transformable_system does not satisfy Supports_SW_Transformation

  • ValueError – No spin-like orbital indices were specified