Bath data structure

Description

A class for the the effective_bath data structure describing the effective bath in the code.

Quick access

Routines:

allocate_dmft_bath(), deallocate_dmft_bath(), init_dmft_bath(), read_dmft_bath(), write_dmft_bath(), save_dmft_bath(), set_dmft_bath(), get_dmft_bath()

Used modules

  • sf_constants

  • sf_iotools

  • sf_linalg

  • sf_arrays

  • sf_misc

  • 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).

  • ed_vars_global: 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.

  • ed_aux_funx: Hosts a number of auxiliary procedures required in different parts of the code. Specifically, it implements: creation/annihilation fermionic operators, binary decomposition of integer representation of Fock states and setup the local impurity Hamiltonian

  • ed_bath_aux: Implements a number of auxiliary procedures used to construct replica/general bath

  • ed_bath_dim: Returns or check the dimensions to which the user should allocate the bath array.

Subroutines and functions

subroutine  ed_bath_dmft/allocate_dmft_bath(dmft_bath_)

Allocate the effective_bath input dmft_bath_ according to the values of the global input parameters nspin , norb, nbath, ed_mode and bath_type.

The correct components of the effective_bath data structure are allocated.

allocated components of dmft_bath_

normal

superc

nonsu2

normal

e , v

e , v, d

e , v, u

hybrid

e , v

e , v, d

e , v, u

replica

nbasis , item , item % lambda

nbasis , item , item % lambda

nbasis , item , item % lambda

general

nbasis , item , item % lambda , item % vg

nbasis , item , item % lambda , item % vg

nbasis , item , item % lambda , item % vg

Parameters:

dmft_bath [effective_bath] – local energies of the bath

subroutine  ed_bath_dmft/deallocate_dmft_bath(dmft_bath_)

Deallocate the effective_bath input dmft_bath_

Parameters:

dmft_bath [effective_bath]

subroutine  ed_bath_dmft/init_dmft_bath(dmft_bath_[, used])
Parameters:

dmft_bath [effective_bath] – x ed_vsf_ratio

Options:

used [logical]

Use :

ed_input_vars (nspin, norb, nbath)

subroutine  ed_bath_dmft/read_dmft_bath(dmft_bath_[, file, used])
Parameters:

dmft_bath [effective_bath]

Options:
  • file [character(len=*)]

  • used [logical]

Use :

ed_input_vars (nspin, norb, nbath)

subroutine  ed_bath_dmft/write_dmft_bath(dmft_bath_[, unit])
Parameters:

dmft_bath [effective_bath]

Options:

unit [integer]

Use :

ed_input_vars (nspin, norb, nbath)

subroutine  ed_bath_dmft/save_dmft_bath(dmft_bath_[, file, used])

Save the effective_bath to a file with .used or .restart extension according to input.

Parameters:

dmft_bath [effective_bath]

Options:
  • file [character(len=*)]

  • used [logical]

subroutine  ed_bath_dmft/set_dmft_bath(bath_, dmft_bath_)

Set the effective_bath components from the input user bath bath_ , i.e. it dumps the user bath to the internal data structure.

Parameters:
subroutine  ed_bath_dmft/get_dmft_bath(dmft_bath_, bath_)
Parameters:
Use :

ed_input_vars (nspin, norb, nbath)