DMFT
Wrapper for dynamical mean-field theory engine. It also provides some essential tools to deal with (read and write) the fermi level $\mu$, hybridization functions $\Delta$, local impurity levels $\epsilon_i$, and correlation-induced correction for density matrix $\Gamma$.
Source: dmft.jl
Contents
Index
ZenCore.dmft_exec
ZenCore.dmft_init
ZenCore.dmft_save
ZenCore.read_delta
ZenCore.read_eimpx
ZenCore.read_fermi
ZenCore.read_gamma
ZenCore.write_delta
ZenCore.write_eimpx
ZenCore.write_gamma
Functions
ZenCore.dmft_init
— Functiondmft_init(it::IterInfo, task::I64)
Initialize the dynamical mean-field theory engine. Prepare the necessary files, and generate the configuration file.
ZenCore.dmft_exec
— Functiondmft_exec(it::IterInfo, task::I64)
Execute the dynamical mean-field theory engine.
ZenCore.dmft_save
— Functiondmft_save(it::IterInfo, task::I64)
Backup the files outputed by the dynamical mean-field theory engine.
ZenCore.read_fermi
— Functionread_fermi()
Parse the dmft?/dmft.fermi
file to extract the chemical potential. The lattice occupancy and correction to the DFT band energy will be extracted and returned at the same time.
Note that if lfermi
in dmft.in
is false, the chemical potential and lattice occupancy will not be calculated by the DMFT engine. On the other hand, if the DMFT engine works on non-self-consistent mode, the correction to DFT band energy will be zero as well.
See also: dmft_save
.
ZenCore.read_delta
— Functionread_delta(imp::Impurity)
Extract hybridization functions Δ from impurity.i/dmft.delta
file, which is generated by sigma_split()
. Then the data will be written into solver.hyb.in
file (or someting else) by write_delta()
. These data are essential for quantum impurity solvers. The working directory of this function must be equal to impurity.i
.
The frequency mesh is also extracted in this function.
See also: Impurity
, read_eimpx
.
read_delta(ai::Array{Impurity,1}, fhyb::String = "dmft1/dmft.delta")
Read the dmft1/dmft.delta
file, extract the hybridization functions Δ and the corresponding frequency mesh ω. The working directory of this function must be the root folder. Usually, this function is called by the mixer_delta()
function and the sigma_split()
function.
See also: sigma_split
, read_eimpx
.
ZenCore.read_eimpx
— Functionread_eimpx(imp::Impurity)
Extract local impurity levels ε from impurity.i/dmft.eimpx
file, which is generated by sigma_split()
. Then the data will be written into solver.eimp.in
(or something else) by write_eimpx()
. These data are essential for quantum impurity solvers. The working directory for this function must be equal to impurity.i
.
See also: Impurity
, read_delta
.
read_eimpx(ai::Array{Impurity,1}, flev::String = "dmft1/dmft.eimpx")
Read the dmft1/dmft.eimpx
file, extract the local impurity levels εᵢ. The working directory of this function must be the root folder. Usually, this function is called by the mixer_eimpx()
function and the sigma_split()
function.
See also: sigma_split
, read_delta
.
ZenCore.read_gamma
— Functionread_gamma(fgamma::String = "dmft2/dmft.gamma")
Read the dmft2/dmft.gamma
file. It contains the correlation-induced correction for density matrix. The correction will be fed back to the DFT engine, and then the DFT engine will generate new Kohn-Sham dataset.
This function also return the 𝑘-mesh, which is useful for mixing the Γ matrix with the Kerker
mixing algorithm.
The working directory of this function must be the root folder.
See also: write_gamma
.
ZenCore.write_delta
— Functionwrite_delta(fmesh::Array{F64,1}, Delta::Array{C64,5}, ai::Array{Impurity,1})
Split hybridization functions Δ and the corresponding frequency mesh ω into the impurity.i/dmft.delta
file, which is important for the chosen quantum impurity solver. The working directory of this function must be the root folder.
This function is usually called by the sigma_split()
function.
See also: Impurity
, read_delta
, write_eimpx
.
write_delta(fmesh::Array{F64,1}, Delta::Array{C64,5}, ai::Array{Impurity,1}, fhyb::String)
Write hybridization functions Δ into the fhyb
file. This function is usually called by mixer_delta()
function to update the hybridization files stored in dmft1/dmft.delta
file. The working directory of this function must be the root folder.
See also: Impurity
, read_delta
, write_eimpx
.
ZenCore.write_eimpx
— Functionwrite_eimpx(Eimpx::Array{C64,4}, ai::Array{Impurity,1})
Split local impurity levels ε into the impurity.i/dmft.eimpx
file, which is important for the chosen quantum impurity solver. The working directory of this function must be the root folder.
This function is usually called by the sigma_split()
function.
See also: Impurity
, read_eimpx
, write_delta
.
write_eimpx(Eimpx::Array{C64,4}, ai::Array{Impurity,1}, flev::String)
Write local impurity levels ε into the flev
file. This function is usually called by mixer_eimpx()
function to update the local impurity levels stored in dmft1/dmft.eimpx
file. The working directory of this function must be the root folder.
See also: Impurity
, read_eimpx
, write_delta
.
ZenCore.write_gamma
— Functionwrite_gamma(kmesh::Array{F64,2}, kwin::Array{I64,3}, gamma::Array{C64,4}, fgamma::String)
Write correction for density matrix Γ into fgamma
file. This function is usually called by mixer_gamma()
function to update the correction for density matrix stored in the dmft2/dmft.gamma
file. The working directory of this function must be the root folder.
See also: read_gamma
, write_delta
, write_eimpx
.