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(), 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]

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])

Initialize the effective_bath input dmft_bath_. The energy parameters e are constructed using a centered nbath discretization of the flat band of width 2 ed_hw_bath. The hybridization parameters v are set to \(\tfrac{1}{\sqrt{nbath}\). The superconducting parameters d, if any, are set to deltasc The spin-flip parameters u, if any, are set equal to v. The replica/general local bath Hamiltonians are built out of the initial values of \(\vec{\lambda}\), using the matrix decomposition.

Note

If the file hfile with the correct ed_file_suffix and hsuffix is found in the running directory, the bath is initilized by reading the from the file.

Parameters:

dmft_bath [effective_bath]

Options:

used [logical]

subroutine  ed_bath_dmft/write_dmft_bath(dmft_bath_[, unit])

Write the effective_bath on input to std.output or to a file associated to the [optional] unit.

Parameters:

dmft_bath [effective_bath]

Options:

unit [integer]

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_)

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

Parameters: