hqs_spin_mapper.preconditioning

Modules for the preconditioning of the Hamiltonian prior to Schrieffer-Wolff transformation.

Functions

diagonalize_bath(transformable_system[, ...])

Diagonalize the quadratic bath Hamiltonian as preparation of the Schrieffer-Wolff transformation.

estimate_required_memory(transformable_system)

Gives an estimate for the required memory necessary for the Schrieffer-Wolff transformation at the current value of prefactor_cutoff.

precondition_interaction(transformable_system)

Separate the interaction into terms suitable for the Schrieffer-Wolff transformation and remainder.

preconditioning(transformable_system[, ...])

Return a system suitable for our specific Schrieffer-Wolff transformation method.

hqs_spin_mapper.preconditioning.preconditioning(transformable_system: Supports_SW_Transformation, apply_pre_diagonalization: bool = False, apply_cross_geometry: bool = False) None[source]

Return a system suitable for our specific Schrieffer-Wolff transformation method.

The preconditioning includes the transformation to an optimized basis, the removal of intractable coupling constants, and the pre-diagonalization of the fermionic bath. The results are applied to the transformable_system.

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

  • apply_pre_diagonalization (bool) – Flag for the pre-diagonalization of the bath.

  • apply_cross_geometry (bool) – Flag for transformation to cross geometry.

hqs_spin_mapper.preconditioning.precondition_interaction(transformable_system: Supports_SW_Transformation) None[source]

Separate the interaction into terms suitable for the Schrieffer-Wolff transformation and remainder.

Parameters:

transformable_system (Supports_SW_Transformation) – Container object for the system data

hqs_spin_mapper.preconditioning.diagonalize_bath(transformable_system: Supports_SW_Transformation, apply_cross_geometry: bool = False) None[source]

Diagonalize the quadratic bath Hamiltonian as preparation of the Schrieffer-Wolff transformation.

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

  • apply_cross_geometry (bool) – Flag for transformation to cross geometry.

hqs_spin_mapper.preconditioning.estimate_required_memory(transformable_system: Supports_SW_Transformation) None[source]

Gives an estimate for the required memory necessary for the Schrieffer-Wolff transformation at the current value of prefactor_cutoff.

Parameters:

transformable_system (Supports_SW_Transformation) – The container object for the Spin Mapper