Bath data structure

In ED_VARS_GLOBAL we implemented a suitable data structure to encapsulate the effective bath of the quantum impurity problem.

Description

Contains all variables, arrays and derived types instances shared throughout the code. Specifically, it contains definitions of the effective_bath, the gfmatrix and the sector data structures.

Quick access

Types:

effective_bath_component, effective_bath

Variables:

dmft_bath

Used modules

  • sf_constants

  • sf_iotools

  • ed_sparse_matrix: This class defines a data structure to efficiently store sparse matrices into dedicated CSR matrices, featuring support to MPI parallel storage, so that each matrix is spread across the threads.

  • ed_sparse_map

  • ed_gfmatrix: Contains definition gfmatrix data structures which constains all the weights and poles of the impurity Green’s functions. This is essentially the result of the DMFT calculation, used to generate the Green’s functions and the related Self-energy

  • ed_input_vars: Contains all global input variables which can be set by the user through the input file. A specific preocedure ed_read_input() should be called to read the input file using parse_input_variable() procedure from SciFortran. All variables are automatically set to a default, looked for and updated by reading into the file and, sequentially looked for and updated from command line (std.input) using the notation variable_name=variable_value(s) (case independent).

  • mpi

  • sf_mpi

Types

type  ed_vars_global/effective_bath_component

Effective bath component for the replica/general bath. Each istance of this type defines the parameters \(\vec{\lambda}\) and the amplitudes \(\vec{V}\). The first is used to decompose the Hamiltonian of each element of the bath \(H_p=\sum_{i=1}^{N_{basis}} \lambda_i(p) O_i\), the latter describes the hopping from/to the impurity.

Type fields:
  • v [real]

  • vg (•) [real, allocatable]

  • lambda (•) [real, allocatable] – [nsym]

type  ed_vars_global/effective_bath

This structure describes the (effective) discretized bath used in the contruct the Hamiltonian of the quantum impurity system. Each element of this structure is allocated and used according the value of ed_mode = normal,superc,nonsu2 and bath_type = normal,hybrid,replica,general.

Type fields:
  • e (•, •, •) [real, allocatable] – local energies [ nspin ][ norb ][ bath ]/[ nspin ][ 1 ][ nspin ]

  • v (•, •, •) [real, allocatable] – spin-keep hyb. [ nspin ][ norb ][ nbath ]

  • d (•, •, •) [real, allocatable] – SC amplitues [ nspin ][ norb ][ nbath ]/[ norb ][ 1 ][ norb ]

  • u (•, •, •) [real, allocatable] – spin-flip hyb. [ nspin ][ norb ][ nbath ] for ed_mode = nonsu2

  • nbasis [integer] – The replica/general Matrix basis dimension

  • item (•) [effective_bath_component, allocatable] – [ nbath ] Replica/General bath components, V included

  • status [logical]

Variables

ed_vars_global/dmft_bath

instance of effective_bath used to store the quantum impurity effective bath in the rest of the code

Type:

effective_bath