Coefficient extraction

Functions in this module allow easy extraction of monomial coefficients from many_body_operator_generic objects. Each of extract_*() functions selects a particular class of monimials (quadratic/quartic) and returns a dictionary, which maps tuples of monomial indices to the values of the corresponding coefficients.

Utility function dict_to_matrix() converts such dictionaries into a matrix/tensor representation (interaction U-matrix, for instance) given a valid fundamental operator set.

C++

In order to make code cleaner, the following shorthand types are defined in triqs/operators/util/extractors.hpp,

// Shorthand for many_body_operator_generic
template<typename scalar_t>
using op_t = operators::many_body_operator_generic<scalar_t>;

// Mapping: index pair -> coefficient of type T
template<typename T>
using dict2_t = std::map<std::tuple<indices_t,indices_t>,T>;

// Mapping: index quadruple -> coefficient of type T
template<typename T>
using dict4_t = std::map<std::tuple<indices_t,indices_t,indices_t,indices_t>,T>;

Here indices_t represents an operator index sequence (see fundamental_operator_set).

Coefficient extractors

Dictionary to matrix/tensor conversion

Python

Functions to extract coefficients from many-body operators

pytriqs.operators.util.extractors.dict_to_matrix()

Convert a 2/4-index dictionary to a 2/4-dimensional NumPy array given the structure of the Green’s function. The elements missing from the dictionary are assumed to be zero.

Parameters:
  • d (dict) – The 2/4-index dictionary.
  • gf_struct (dict) – The structure of the Green’s function, {block_index : [inner indices]}.
Returns:

arr – The resulting NumPy array.

Return type:

array

Signature : (dict2_t<real_or_complex> d, gf_struct_t gf_struct) -> real_or_complex_array<2>

Convert a 2/4-index dictionary to a 2/4-dimensional NumPy array given the structure of the Green’s function. The elements missing from the dictionary are assumed to be zero.

d : dict
The 2/4-index dictionary.
gf_struct : dict
The structure of the Green’s function, {block_index : [inner indices]}.
arr : array
The resulting NumPy array.

Signature : (dict4_t<real_or_complex> d, gf_struct_t gf_struct) -> real_or_complex_array<4>

Convert a 2/4-index dictionary to a 2/4-dimensional NumPy array given the structure of the Green’s function. The elements missing from the dictionary are assumed to be zero.

d : dict
The 2/4-index dictionary.
gf_struct : dict
The structure of the Green’s function, {block_index : [inner indices]}.
arr : array
The resulting NumPy array.
pytriqs.operators.util.extractors.extract_U_dict2()

Signature : (many_body_operator H, bool ignore_irrelevant = false) -> dict2_t<real_or_complex>

Extract U-matrix of the density-density interaction part \(\frac{1}{2}\sum_{ij} U_{ij} n_i n_j\) from a Hamiltonian H as a 2-index dictionary.

Parameters:
  • H (Operator) – The Hamiltonian.
  • ignore_irrelevant (bool) – If True, ignore all irrelevant terms in H. Otherwise raise an exception when such terms are met.
Returns:

U_dict – The 2-index interaction dictionary, {(i,j) : float}.

Return type:

dict

pytriqs.operators.util.extractors.extract_U_dict4()

Signature : (many_body_operator H, bool ignore_irrelevant = false) -> dict4_t<real_or_complex>

Extract U-matrix of the interaction part \(\frac{1}{2}\sum_{ijkl} U_{ijkl} c^\dagger_i c^\dagger_j c_l c_k\) from a Hamiltonian H as a 4-index dictionary.

Parameters:
  • H (Operator) – The Hamiltonian.
  • ignore_irrelevant (bool) – If True, ignore all irrelevant terms in H. Otherwise raise an exception when such terms are met.
Returns:

U_dict – The 4-index interaction dictionary, {(i,j,k,l) : float}.

Return type:

dict

pytriqs.operators.util.extractors.extract_h_dict()

Signature : (many_body_operator H, bool ignore_irrelevant = false) -> dict2_t<real_or_complex>

Extract coefficients of the normal quadratic part \(\sum_{ij}h_{ij} c^\dagger_i c_j\) from a Hamiltonian H as a 2-index dictionary.

Parameters:
  • H (Operator) – The Hamiltonian.
  • ignore_irrelevant (bool) – If True, ignore all irrelevant terms in H. Otherwise raise an exception when such terms are met.
Returns:

h_dict – The 2-index dictionary of the quadratic part coefficients, {(i,j) : float}.

Return type:

dict