EDIpack Fortran-C interface: Functions
The following is a list of EDIpack functions which are accessible from the C interface
Functions
-
void read_input(char *instr)
This function reads the input. Interfaces to
ed_read_input()
- Parameters:
instr – the input file name
-
void ed_set_Hloc_single_N2(std::complex<double> *Hloc, int64_t *d)
This function sets the local Hamiltonian. Interfaces to
f/ed_aux_funx/ed_set_Hloc()
. Rank-2 array variant for single-site DMFT- Parameters:
Hloc – the local Hamiltonian
d – array of dimensions of the local Hamiltonian
-
void ed_set_Hloc_single_N4(std::complex<double> *Hloc, int64_t *d)
This function sets the local Hamiltonian. Interfaces to
f/ed_aux_funx/ed_set_Hloc()
. Rank-4 array variant for single-site DMFT.- Parameters:
Hloc – the local Hamiltonian
d – array of dimensions of the local Hamiltonian
-
void ed_set_Hloc_lattice_N2(std::complex<double> *Hloc, int64_t *d, int Nlat)
This function sets the local Hamiltonian. Interfaces to
f/e2i_aux_funx/ed_set_Hloc()
. Rank-2 array variant for real-space DMFT.- Parameters:
Hloc – the local Hamiltonian
d – array of dimensions of the local Hamiltonian
Nlat – number of inequivalent sites
-
void ed_set_Hloc_lattice_N3(std::complex<double> *Hloc, int64_t *d, int Nlat)
This function sets the local Hamiltonian. Interfaces to
f/e2i_aux_funx/ed_set_Hloc()
. Rank-3 array variant for real-space DMFT.- Parameters:
Hloc – the local Hamiltonian
d – array of dimensions of the local Hamiltonian
Nlat – number of inequivalent sites
-
void ed_set_Hloc_lattice_N5(std::complex<double> *Hloc, int64_t *d, int Nlat)
This function sets the local Hamiltonian. Interfaces to
f/e2i_aux_funx/ed_set_Hloc()
. Rank-5 array variant for real-space DMFT.- Parameters:
Hloc – the local Hamiltonian
d – array of dimensions of the local Hamiltonian
Nlat – number of inequivalent sites
-
int get_bath_dimension_direct(void)
This function gets the dimension of the user-accessible bath array. Interfaces to
get_bath_dimension()
.- Returns:
the dimension of the bath array
-
int get_bath_dimension_symmetries(int Nsym)
This function gets the dimension of the user-accessible bath array. Specific for replica and general baths. Interfaces to
get_bath_dimension()
.- Parameters:
Nsym – the number of components of the replica matrix linear combination
- Returns:
the dimension of the bath array
-
void search_variable(double *var, double *ntmp, int64_t *converged)
This function updates a variable (usually the chemical potential) trying to achieve a desired density set by
nread
. Interfaces toed_search-variable()
.- Parameters:
var – the variable to be adjusted
ntmp – the density value at a given iteration
converged – the DMFT loop convergence status.
-
void init_Hreplica_symmetries_d3(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the replica bath H. Interfaces to
f/ed_bath_replica/set_hreplica()
. Rank-3 array case for single-site DMFT.- Parameters:
Hvec – array of matrices summing up to the replica H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hreplica_symmetries_d5(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the replica bath H. Interfaces to
f/ed_bath_replica/set_hreplica()
. Rank-5 array case for single-site DMFT.- Parameters:
Hvec – array of matrices summing up to the replica H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hgeneral_symmetries_d3(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the general bath H. Interfaces to
f/ed_bath_replica/set_hgeneral()
. Rank-3 array case for single-site DMFT.- Parameters:
Hvec – array of matrices summing up to the general H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hgeneral_symmetries_d5(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the general bath H. Interfaces to
f/ed_bath_replica/set_hgeneral()
. Rank-5 array case for single-site DMFT.- Parameters:
Hvec – array of matrices summing up to the general H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hreplica_symmetries_lattice_d3(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the replica bath H. Interfaces to
f/e2i_bath_replica/set_hreplica()
. Rank-3 array case for real-space DMFT.- Parameters:
Hvec – array of matrices summing up to the replica H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hreplica_symmetries_lattice_d5(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the replica bath H. Interfaces to
f/e2i_bath_replica/set_hreplica()
. Rank-5 array case for real-space DMFT.- Parameters:
Hvec – array of matrices summing up to the replica H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hgeneral_symmetries_lattice_d3(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the general bath H. Interfaces to
f/e2i_bath_replica/set_hgeneral()
. Rank-3 array case for real-space DMFT.- Parameters:
Hvec – array of matrices summing up to the general H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void init_Hgeneral_symmetries_lattice_d5(std::complex<double> *Hvec, int64_t *d_hvec, double *lambdavec, int64_t *d_lambdavec)
This function sets the general bath H. Interfaces to
f/e2i_bath_replica/set_hgeneral()
. Rank-5 array case for real-space DMFT.- Parameters:
Hvec – array of matrices summing up to the general H
d_hvec – dimensions of the array of matrices
lambdavec – array of coefficients of the array linear combination
d_lambdavec – dimensions of the array of coefficients
-
void break_symmetry_bath_site(double *bath, int64_t *dim_bath, double field, double sgn, int sav)
This function breaks the bath symmetry. Interfaces to
f/ed_bath_user/break_symmetry_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
field – symmetry breaking field
sgn – sign of the symmetry breaking field
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void break_symmetry_bath_ineq(double *bath, int64_t *dim_bath, double field, double *sgn, int sav)
This function breaks the bath symmetry. Interfaces to
f/e2i_bath_user/break_symmetry_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath and sign array
field – symmetry breaking field
sgn – array of signs of the symmetry breaking field
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void spin_symmetrize_bath_site(double *bath, int64_t *dim_bath, int sav)
This function enforces a paramagnetic bath Interfaces to
f/ed_bath_user/spin_symmetrize_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath and sign array
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void spin_symmetrize_bath_ineq(double *bath, int64_t *dim_bath, int sav)
This function enforces a paramagnetic bath Interfaces to
f/e2i_bath_user/spin_symmetrize_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void orb_symmetrize_bath_site(double *bath, int64_t *dim_bath, int orb1, int orb2, int sav)
This function enforces an orbital-symmetric bath. Interfaces to
f/ed_bath_user/orb_symmetrize_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
orb1 – first orbital to symmetrize
orb2 – second orbital to symmetrize
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void orb_symmetrize_bath_ineq(double *bath, int64_t *dim_bath, int orb1, int orb2, int sav)
This function enforces an orbital-symmetric bath. Interfaces to
f/e2i_bath_user/orb_symmetrize_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
orb1 – first orbital to symmetrize
orb2 – second orbital to symmetrize
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void orb_equality_bath_site(double *bath, int64_t *dim_bath, int indx, int sav)
This function enforces an orbita-symmetric bath. Interfaces to
f/ed_bath_user/orb_symmetrize_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
indx – index of the orbital to copy
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void orb_equality_bath_ineq(double *bath, int64_t *dim_bath, int indx, int sav)
This function enforces an orbita-symmetric bath. Interfaces to
f/e2i_bath_user/orb_symmetrize_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
indx – index of the orbital to copy
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void ph_symmetrize_bath_site(double *bath, int64_t *dim_bath, int sav)
This function enforces a particle-hole symmetric bath. Interfaces to
f/ed_bath_user/ph_symmetrize_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void ph_symmetrize_bath_ineq(double *bath, int64_t *dim_bath, int sav)
This function enforces a particle-hole symmetric bath. Interfaces to
f/e2i_bath_user/ph_symmetrize_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
sav – integer flag to save the output bath.
1
if true,0
if false.
-
void save_array_as_bath_site(double *bath, int64_t *dim_bath)
This function saves the bath array in a properly formatted file. Interfaces to
f/ed_bath_user/save_array_as_bath()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
-
void save_array_as_bath_ineq(double *bath, int64_t *dim_bath)
This function saves the bath array in a properly formatted file. Interfaces to
f/e2i_bath_user/save_array_as_bath()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
-
void chi2_fitgf_single_normal_n3(std::complex<double> *g, int64_t *dim_g, double *bath, int64_t *dim_bath, int ispin, int iorb, int fmpi)
This function fits the Weiss field or hybridization function. Interfaces to
f/ed_bath_fit/ed_chi2_fitgf()
. Single-site DMFT variant forED_MODE
=NORMAL/NONSU2
and rank-3 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
iorb – orbital index. If
0
, the fortran function is called withoutiorb
fmpi – integer flag to enable mpi.
1
forTrue
,0
forFalse
-
void chi2_fitgf_single_normal_n5(std::complex<double> *g, int64_t *dim_g, double *bath, int64_t *dim_bath, int ispin, int iorb, int fmpi)
This function fits the Weiss field or hybridization function. Interfaces to
f/ed_bath_fit/ed_chi2_fitgf()
. Single-site DMFT variant forED_MODE
=NORMAL/NONSU2
and rank-5 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
iorb – orbital index. If
0
, the fortran function is called withoutiorb
fmpi – integer flag to enable mpi.
1
forTrue
,0
forFalse
-
void chi2_fitgf_single_superc_n3(std::complex<double> *g, int64_t *dim_g, std::complex<double> *f, int64_t *dim_f, double *bath, int64_t *dim_bath, int ispin, int iorb, int fmpi)
This function fits the Weiss field or hybridization function. Interfaces to
f/ed_bath_fit/ed_chi2_fitgf()
. Single-site DMFT variant forED_MODE
=SUPERC
and rank-3 arrays.- Parameters:
g – function to fit, normal component
dim_g – dimensions of the function to fit, normal component
f – function to fit, anomalous component
dim_f – dimensions of the function to fit, anomalous component
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
iorb – orbital index. If
0
, the fortran function is called withoutiorb
fmpi – integer flag to enable mpi.
1
forTrue
,0
forFalse
-
void chi2_fitgf_single_superc_n5(std::complex<double> *g, int64_t *dim_g, std::complex<double> *f, int64_t *dim_f, double *bath, int64_t *dim_bath, int ispin, int iorb, int fmpi)
This function fits the Weiss field or hybridization function. Interfaces to
f/ed_bath_fit/ed_chi2_fitgf()
. Single-site DMFT variant forED_MODE
=SUPERC
and rank-5 arrays.- Parameters:
g – function to fit, normal component
dim_g – dimensions of the function to fit, normal component
f – function to fit, anomalous component
dim_f – dimensions of the function to fit, anomalous component
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
iorb – orbital index. If
0
, the fortran function is called withoutiorb
fmpi – integer flag to enable mpi.
1
forTrue
,0
forFalse
-
void chi2_fitgf_lattice_normal_n3(std::complex<double> *g, int64_t *dim_g, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=NORMAL/NONSU2
and rank-3 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void chi2_fitgf_lattice_normal_n4(std::complex<double> *g, int64_t *dim_g, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=NORMAL/NONSU2
and rank-4 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void chi2_fitgf_lattice_normal_n6(std::complex<double> *g, int64_t *dim_g, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=NORMAL/NONSU2
and rank-6 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void chi2_fitgf_lattice_superc_n3(std::complex<double> *g, int64_t *dim_g, std::complex<double> *f, int64_t *dim_f, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=SUPERC
and rank-3 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
f – function to fit, anomalous component
dim_f – dimensions of the function to fit, anomalous component
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void chi2_fitgf_lattice_superc_n4(std::complex<double> *g, int64_t *dim_g, std::complex<double> *f, int64_t *dim_f, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=SUPERC
and rank-4 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
f – function to fit, anomalous component
dim_f – dimensions of the function to fit, anomalous component
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void chi2_fitgf_lattice_superc_n6(std::complex<double> *g, int64_t *dim_g, std::complex<double> *f, int64_t *dim_f, double *bath, int64_t *dim_bath, int ispin)
This function fits the Weiss field or hybridization function. Interfaces to
f/e2i_bath_fit/ed_chi2_fitgf()
. Real-space DMFT variant forED_MODE
=SUPERC
and rank-6 arrays.- Parameters:
g – function to fit
dim_g – dimensions of the function to fit
f – function to fit, anomalous component
dim_f – dimensions of the function to fit, anomalous component
bath – user-accessible bath array
dim_bath – dimensions of the bath array
ispin – spin index
-
void ed_get_dens_n1(std::complex<double> *self)
This function obtains the density. Interfaces to
f/ed_io/ed_get_dens()
. Single-site DMFT version- Parameters:
self – orbitally-resolved density array
-
void ed_get_dens_n2(std::complex<double> *self, int Nlat)
This function obtains the density. Interfaces to
f/e2i_io/ed_get_dens()
. Real-space DMFT version- Parameters:
self – density array
Nlat – number of inequivalent sites
-
void ed_get_mag_n2(std::complex<double> *self)
This function obtains the magnetization. Interfaces to
f/ed_io/ed_get_mag()
. Single-site DMFT version- Parameters:
self – magnetization array
-
void ed_get_mag_n3(std::complex<double> *self, int Nlat)
This function obtains the magnetization. Interfaces to
f/e2i_io/ed_get_mag()
. Real-space DMFT version- Parameters:
self – magnetization array
Nlat – number of inequivalent sites
-
void ed_get_docc_n1(std::complex<double> *self)
This function obtains the double-occupation. Interfaces to
f/ed_io/ed_get_docc()
. Single-site DMFT version- Parameters:
self – double-occupation array
-
void ed_get_docc_n2(std::complex<double> *self, int Nlat)
This function obtains the double occupation. Interfaces to
f/e2i_io/ed_get_docc()
. Real-space DMFT version- Parameters:
self – double-occupation array
Nlat – number of inequivalent sites
-
void ed_get_phisc_n2(std::complex<double> *self)
This function obtains the superconductive order parameter. Interfaces to
f/ed_io/ed_get_phi()
. Single-site DMFT version- Parameters:
self – superconductive order parameter array
-
void ed_get_phisc_n3(std::complex<double> *self, int Nlat)
This function obtains the superconductive order parameter. Interfaces to
f/e2i_io/ed_get_phi()
. Real-space DMFT version- Parameters:
self – superconductive order parameter array
Nlat – number of inequivalent sites
-
void ed_get_eimp_n1(std::complex<double> *self)
This function obtains the local energy. Interfaces to
f/ed_io/ed_get_eimp()
. Single-site DMFT version- Parameters:
self – energy array
-
void ed_get_eimp_n2(std::complex<double> *self, int Nlat)
This function obtains the local energy. Interfaces to
f/e2i_io/ed_get_eimp()
. Real-space DMFT version- Parameters:
self – energy array
Nlat – number of inequivalent sites
-
void get_sigma_site_n3(std::complex<double> *self, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the self-energy. Interfaces to
f/ed_io/ed_get_sigma()
for a rank-3 array. Single-site DMFT variant.- Parameters:
self – the self-energy array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_sigma_site_n5(std::complex<double> *self, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the self-energy. Interfaces to
f/ed_io/ed_get_sigma()
for a rank-5 array. Single-site DMFT variant.- Parameters:
self – the self-energy array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_sigma_lattice_n3(std::complex<double> *self, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the self-energy. Interfaces to
f/e2i_io/ed_get_sigma()
for a rank-3 array. Real-space DMFT variant.- Parameters:
self – the self-energy array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_sigma_lattice_n4(std::complex<double> *self, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the self-energy. Interfaces to
f/e2i_io/ed_get_sigma()
for a rank-4 array. Real-space DMFT variant.- Parameters:
self – the self-energy array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_sigma_lattice_n6(std::complex<double> *self, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the self-energy. Interfaces to
f/e2i_io/ed_get_sigma()
for a rank-6 array. Real-space DMFT variant.- Parameters:
self – the self-energy array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_gimp_site_n3(std::complex<double> *gimp, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the impurity Green's function. Interfaces to
f/ed_io/ed_get_gimp()
for a rank-3 array. Single-site DMFT variant.- Parameters:
gimp – the impurity Green's function array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_gimp_site_n5(std::complex<double> *gimp, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the impurity Green's function. Interfaces to
f/ed_io/ed_get_gimp()
for a rank-5 array. Single-site DMFT variant.- Parameters:
gimp – the impurity Green's function array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_gimp_lattice_n3(std::complex<double> *gimp, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the impurity Green's function. Interfaces to
f/e2i_io/ed_get_gimp()
for a rank-3 array. Real-space DMFT variant.- Parameters:
gimp – the impurity Green's function array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_gimp_lattice_n4(std::complex<double> *gimp, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the impurity Green's function. Interfaces to
f/e2i_io/ed_get_gimp()
for a rank-4 array. Real-space DMFT variant.- Parameters:
gimp – the impurity Green's function array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_gimp_lattice_n6(std::complex<double> *gimp, int Nineq, int axis, int typ, std::complex<double> *zeta, int dz, int zflag)
This function obtains the impurity Green's function. Interfaces to
f/e2i_io/ed_get_gimp()
for a rank-6 array. Real-space DMFT variant.- Parameters:
gimp – the impurity Green's function array
Nineq – numer of inequivalent sites
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
zeta – frequency array
dz – dimension of the frequency array
zflag – flag to set (
1
) or not (0
) calculation with internal frequency array
-
void get_g0and_n3(std::complex<double> *warray, int64_t *dim_warray, double *bath, int dim_bath, std::complex<double> *G0and, int64_t *dim_g0and, char *axis, char *typ)
This function obtains the Weiss field. Interfaces to
f/ed_io/ed_get_g0and()
for a rank-3 array. Single-site DMFT variant.- Parameters:
warray – Array of frequencies
dim_warray – Dimension of the array of frequencies
bath – User-accessible bath array
dim_bath – Dimension of the bath array
G0and – the Weiss field array
dim_g0and – the dimensions of the Weiss field array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
-
void get_g0and_n5(std::complex<double> *warray, int64_t *dim_warray, double *bath, int dim_bath, std::complex<double> *G0and, int64_t *dim_g0and, char *axis = (char*)"m", char *typ = (char*)"n")
This function obtains the Weiss field. Interfaces to
f/ed_io/ed_get_g0and()
for a rank-5 array. Single-site DMFT variant.- Parameters:
warray – Array of frequencies
dim_warray – Dimension of the array of frequencies
bath – User-accessible bath array
dim_bath – Dimension of the bath array
G0and – the Weiss field array
dim_g0and – the dimensions of the Weiss field array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
-
void get_delta_n3(std::complex<double> *warray, int64_t *dim_warray, double *bath, int dim_bath, std::complex<double> *Delta, int64_t *dim_delta, char *axis, char *typ)
This function obtains the hybridization function. Interfaces to
f/ed_io/ed_get_delta()
for a rank-3 array. Single-site DMFT variant.- Parameters:
warray – Array of frequencies
dim_warray – Dimension of the array of frequencies
bath – User-accessible bath array
dim_bath – Dimension of the bath array
Delta – the Weiss field array
dim_delta – the dimensions of the Weiss field array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
-
void get_delta_n5(std::complex<double> *warray, int64_t *dim_warray, double *bath, int dim_bath, std::complex<double> *Delta, int64_t *dim_delta, char *axis, char *typ)
This function obtains the hybridization function. Interfaces to
f/ed_io/ed_get_delta()
for a rank-5 array. Single-site DMFT variant.- Parameters:
warray – Array of frequencies
dim_warray – Dimension of the array of frequencies
bath – User-accessible bath array
dim_bath – Dimension of the bath array
Delta – the Weiss field array
dim_delta – the dimensions of the Weiss field array
axis – integer flag for axis:
1
=r
, otherwisem
typ – integer flag for type:
1
=a
, otherwisen
-
void ed_get_spinchi(std::complex<double> *self, std::complex<double> *zeta, int dim_zeta, int zetaflag, char *axis, int Nsites, int latticeflag)
This function obtains the spin susceptibility. Interfaces to
f/ed_io/ed_spinchi()
orf/e2i_io/ed_spinchi()
.- Parameters:
self – susceptibility array
zeta – frequency array
dim_zeta – dimension of the frequency array
zetaflag – flag to set (
1
) or not (0
) calculation with internal frequency/time arrayaxis – flag for axis
Nsites – number of inequivalent sites (
1
for single-impurity)latticeflag – flag to set (
1
) or not (0
) calculation with real-space DMFT
-
void ed_get_denschi(std::complex<double> *self, std::complex<double> *zeta, int dim_zeta, int zetaflag, char *axis, int Nsites, int latticeflag)
This function obtains the charge susceptibility. Interfaces to
f/ed_io/ed_denschi()
orf/e2i_io/ed_denschi()
.- Parameters:
self – susceptibility array
zeta – frequency array
dim_zeta – dimension of the frequency array
zetaflag – flag to set (
1
) or not (0
) calculation with internal frequency/time arrayaxis – flag for axis
Nsites – number of inequivalent sites (
1
for single-impurity)latticeflag – flag to set (
1
) or not (0
) calculation with real-space DMFT
-
void ed_get_pairchi(std::complex<double> *self, std::complex<double> *zeta, int dim_zeta, int zetaflag, char *axis, int Nsites, int latticeflag)
This function obtains the pairing susceptibility. Interfaces to
f/ed_io/ed_pairchi()
orf/e2i_io/ed_pairchi()
.- Parameters:
self – susceptibility array
zeta – frequency array
dim_zeta – dimension of the frequency array
zetaflag – flag to set (
1
) or not (0
) calculation with internal frequency/time arrayaxis – flag for axis
Nsites – number of inequivalent sites (
1
for single-impurity)latticeflag – flag to set (
1
) or not (0
) calculation with real-space DMFT
-
void ed_get_exctchi(std::complex<double> *self, std::complex<double> *zeta, int dim_zeta, int zetaflag, char *axis, int Nsites, int latticeflag)
This function obtains the excitonic susceptibility. Interfaces to
f/ed_io/ed_exctchi()
orf/e2i_io/ed_exctchi()
.- Parameters:
self – susceptibility array
zeta – frequency array
dim_zeta – dimension of the frequency array
zetaflag – flag to set (
1
) or not (0
) calculation with internal frequency/time arrayaxis – flag for axis
Nsites – number of inequivalent sites (
1
for single-impurity)latticeflag – flag to set (
1
) or not (0
) calculation with real-space DMFT
-
void init_solver_site(double *bath, int64_t *dim_bath)
This function initializes the solver. Interfaces to
f/ed_main/ed_init_solver()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
-
void init_solver_ineq(double *bath, int64_t *dim_bath)
This function initializes the solver. Interfaces to
f/ed_main/ed_init_solver()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
-
void solve_site(double *bath, int64_t *dim_bath, int flag_gf, int flag_mpi)
This function initializes the solver. Interfaces to
f/ed_main/solve()
. Single-site DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
flag_gf – Green's function calculation flag (
1
=True
,0
=False
)flag_mpi – mpi setting flag (
1
=True
,0
=False
)
-
void solve_ineq(double *bath, int64_t *dim_bath, int flag_gf, int mpi_lanc)
This function initializes the solver. Interfaces to
f/e2i_main/solve()
. Real-space DMFT variant.- Parameters:
bath – user-accessible bath array
dim_bath – dimensions of the bath array
flag_gf – Green's function calculation flag (
1
=True
,0
=False
)mpi_lanc – parallelization setting flag (
1
=True
,0
=False
)
-
void finalize_solver(int Nineq)
This function finalizes the solver. Interfaces to
f/ed_main/finalize_solver()
andf/e2i_main/finalize_solver()
.- Parameters:
Nineq – number of inequivalent sites. Set to
0
for single-site DMFT.
-
void reset_umatrix()
This function resets the interaction coefficients and user-provided terms Interfaces to
f/ed_parse_umatrix/reset_umatrix()
.
-
void add_twobody_operator(int o1, int s1, int o2, int s2, int o3, int s3, int o4, int s4, double U)
This function sets the a two-body interaction term Interfaces to
f/ed_parse_umatrix/add_twobody_operator()
.- Parameters:
o1 – orbital index of first creation operator
s1 – spin index of first creation operator
o2 – orbital index of second creation operator
s2 – spin index of second creation operator
o3 – orbital index of first annihilation operator
s3 – spin index of first annihilation operator
o4 – orbital index of second annihilation operator
s4 – spin index of second annihilation operator
U – interaction coefficient