Inequivalent Impurities Solver Routines
The module E2I_MAIN
contains the procedures that initializes,
launch and finalize multiple EDIpack2 solvers for independent inequivalent quantum impurity
problems.
The functionalities of the main EDIpack2 functions are here naturally extended to the case of multiple impurities: ed_init setups and allocates all the internal variables and memory used in the code, which remain available to the user until ed_finalize is called.
The ed_solve functions aims to diagonalize the
impurity problems, evaluate the dynamical response functions and local
observables using different parallelization schemes according to the
value of the input variable mpi_lanc
: serial on the inequivalent
impurities and parallel in the diagonalization, parallel on the
inequivalent impurities and serial in the diagonalization.
Description
Contains routine that initialize, run and finalize the Impurity model solver
Quick access
- Routines:
Used modules
edipack2
: EDIpack2.0 library frontende2i_vars_global
: Global variables, inequivalent sites versione2i_aux_funx
: Assortment of auxiliary procedures, inequivalent sites versione2i_bath
: Bath module: real-space DMFT extension
External modules
Subroutines and functions
- interface e2i_main/ed_init_solver(bath)
Initialize the Exact Diagonalization solver of EDIpack2.0. This procedure reserves and allocates all the memory required by the solver, performs all the consistency check and initializes the bath instance guessing or reading from a file. It requires as an input a double precision array of rank-2 [
nb
,nlat
] for the Real space DMFT case.nlat
is the number of inequivalent impurity sites, whilenb
depends on the bath size and geometry and can be obtained fromget_bath_dimension()
.- Parameters:
bath (•, •) [real, inout] – user bath input array
- interface e2i_main/ed_solve(bath[, mpi_lanc, uloc_ii, ust_ii, jh_ii, jp_ii, jx_ii, flag_gf])
Launch the Exact Diagonalizaton solver for the single-site and multiple-site (R-DMFT) quantum impurity problem. It requires as an input a double precision array of rank-2 [
nb
,nlat
] for the Real space DMFT case.nlat
is the number of inequivalent impurity sites, whilenb
depends on the bath size and geometry and can be obtained fromget_bath_dimension()
.The solution is achieved in this sequence:
setup the MPI environment, if any
Set the internal bath instance
dmft_bath
copying from the user provided inputbath
Get the low energy spectrum: call
diagonalize_impurity()
Get the impurity Green's functions: call
buildgf_impurity()
(ifsflag
=.true.
)Get the impurity susceptibilities, if any: call
buildchi_impurity()
(ifsflag
=.true.
)Get the impurity observables: call
observables_impurity()
Get the impurity local energy: call
local_energy_impurity()
Get the impurity reduced density matric: call
rdm_impurity()
Delete MPI environment and deallocate used structures
state_list
anddmft_bath
- Parameters:
bath (•, •) [real, in,required] – user bath input array
- Options:
mpi_lanc [logical] – parallelization strategy flag: if
.false.
each core serially solves an inequivalent site, if.true.
all cores parallely solve each site in sequence. Default.false.
.uloc_ii (size(bath, 1), norb) [real] – site-dependent values for
uloc
, overriding the ones in the input file. It has dimension [nlat
,norb
].ust_ii (size(bath, 1)) [real] – site-dependent values for
ust
, overriding the ones in the input file. It has dimension [nlat
].jh_ii (size(bath, 1)) [real] – site-dependent values for
jh
, overriding the ones in the input file. It has dimension [nlat
].jp_ii (size(bath, 1)) [real] – site-dependent values for
jp
, overriding the ones in the input file. It has dimension [nlat
].jx_ii (size(bath, 1)) [real] – site-dependent values for
jx
, overriding the ones in the input file. It has dimension [nlat
].flag_gf [logical] – flag to calculate (
.true.
) or not (.false.
) Green's functions and susceptibilities. Default.true.
.
- interface e2i_main/ed_finalize_solver(nineq)
Finalize the Exact Diagonalization solver, clean up all the allocated memory.
- Parameters:
nineq [integer] – number of inequivalent impurity sites for real-space DMFT