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
-
-
-
-
-
ed_input_vars
: Contains all global input variables which can be set by the user through the input file. A specific preocedureed_read_input()
should be called to read the input file usingparse_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 theeffective_bath
, thegfmatrix
and thesector
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 Hamiltonianed_bath_aux
: Implements a number of auxiliary procedures used to construct replica/general bathed_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
inputdmft_bath_
according to the values of the global input parametersnspin
,norb
,nbath
,ed_mode
andbath_type
.The correct components of the
effective_bath
data structure are allocated. 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
inputdmft_bath_
- Parameters:
dmft_bath [effective_bath]
- subroutine ed_bath_dmft/init_dmft_bath(dmft_bath_[, used])
Initialize the
effective_bath
inputdmft_bath_
. The energy parameterse
are constructed using a centerednbath
discretization of the flat band of width 2ed_hw_bath
. The hybridization parametersv
are set to \(\tfrac{1}{\sqrt{nbath}\). The superconducting parametersd
, if any, are set todeltasc
The spin-flip parametersu
, if any, are set equal tov
. 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 corrected_file_suffix
andhsuffix
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 bathbath_
, i.e. it dumps the user bath to the internal data structure.- Parameters:
bath_ (•) [real]
dmft_bath [effective_bath]
- subroutine ed_bath_dmft/get_dmft_bath(dmft_bath_, bath_)
Set the user input bath
bath_
from the components of theeffective_bath
dmft_bath_
, i.e. it dumps the internal data structure to the user bath.- Parameters:
dmft_bath [effective_bath]
bath_ (•) [real]