The program is written in Fortran 90 and heavily uses LAPACK libraries. It was tested under Linux SuSe 8.0 with Portland Group (PGF90) and Intel Fortran compilers. Under Windows operating system it is tested using Compaq Visual Fortran 6.6 and CXML library. Download the program from the download section, unpack and run make in the command line (change the first line in Makefile accordingly to the used compiler). It is assumed that LAPACK libraries are installed and available in the standard library path. Once compilation is successful the executable file ksum will appear in the directory with Fortran files. One can execute ksum from any place just specifying the proper path. The data files necessary for the execution can be located anywhere too as the program allows specifying input directory and output directory. The following files should be presented in the data directory in order the program could start successfully:
ham.dat |
The Hamiltonian |
olp.dat |
The overlap |
cix.dat |
Correlation index |
bz.dat |
Brillouin zone data |
grp.dat |
Space group data |
wig.dat |
Space group data |
idx.dat |
Auxiliary index pointer |
opar.dat |
Factorization of the overlap |
Sk.dat |
Structure constants |
sigma.dat |
The self-energy for correlated block |
siginf.dat |
Hartree-Fock self-energy matrix |
dcount.dat |
The double-counting matrix |
The file cix.dat
contains the so called correlation index for each of the orbitals in the
Hamiltonian. This index can be used when the self-energy is added into
calculation. One has to specify to which orbital the self-energy should be
added. Thus the orbitals will be assigned an index from zero to ncorr where zero denotes an uncorrelated orbital and
a nonzero index corresponds to data in the self-energy file. If the file cix.dat does not
exist it is assumed that all orbitals are uncorrelated with the same
correlation index, equal to 0. The file will be generated during the first
attempt to run the program. Once the file is available one can also specify a
constant energy shift (tshift) for a particular
orbital which is the fourth column of the file.
Quantity |
Variable |
Correlation index |
idnsu (1:ndim) |
Energy shift |
tshift(1:ndim) |
The file sigma.dat
contains the self-energy for correlated orbitals. If sigmat option is
ON the self-energy is read as matrix. The self-energy is complex this is why 2*ncorr dimension of temporary array sigma_tmpa
is used. Each element of the self-energy should be presented as two real
numbers (one is real part of the self-energy and the other is imaginary).
Number of rows is equal to ncorr as it should be in
the case of ncorr orbitals defined. If the sigma is
OFF then only diagonal elements of the self-energy is read and one needs only 2*ncorr values (real and imaginary parts) of the self-energy
diagonal elements.
Quantity |
Variable |
Self-energy in infinity (matrix form of the self-energy) |
sigma_tmpa (1:2*ncorr,1:ncorr) (if sigmat is ON) |
Self-energy in infinity (vector) |
Sigma_tmp
(1:2*ncorr) |
The file siginf.dat
contains the Hartree-Fock values of the self-energy for correlated orbitals. Its structure is the same as for the
self-energy.
The file dcount.dat
contains the double-counting matrix for related orbitals. The matrix structure is the same as the
self-energy.
The program can be run in several different computational modes depending on what information is desired. The self-energy is needed for all these modes even in the non-interacting LDA calculations. The self-energy file should contain at least three columns: frequency, real and imaginary parts of the self-energy. But total number of columns will depend on number of correlated orbitals, for each correlated orbital one should add two columns (Re and Im parts) of the self-energy. Possible computational modes are listed below:
dos
|
To compute the density of states. |
Eq. (1.8) |
gf
|
To compute the Green’s function. |
Eq. (1.6) |
gf0
|
To compute the Weiss GF.
|
Eq. (1.9)
|
tay
|
To compute impurity levels & matrix
elements.
|
Eq. (1.11)
|
orth
|
To orthogonalize system with overlap matrix O
= 1
|
|
so
|
Spin-orbital case.
|
|
sigmat |
To input / output the self-energy, GF,
in matrix form
|
|
The program writes out several files that contain information about the progress of the program and the results of computations.
1. sum.info This file contains information about the progress of the program. Most of the information is written out during the preparation process. It contains such things as the dimensions of the Brillouin zone data, information about the Hamiltonian and the overlap matrices.
2. dos.out This file contains the density of states data.
·
Column #1:
Frequency
·
Column #2: Total Density Of States
· Column #n+2: Density of states for the Hamiltonian orbital #n.
3. gloc.out This file contains the local GF.
·
Column #1:
Frequency
·
Column #2: Real part of the
local Green’s function
· Column #3: Imaginary part of the local Green’s function
4. g0.out This file contains the Weiss GF.
·
Column #1:
Frequency
·
Column #2: Real part of the
local Green’s function
· Column #3: Imaginary part of the local Green’s function
5. matel.out This file contains matrix elements, something like
etc, as well as impurity levels
(see Eq. (1.11)) .
Number of columns if equal to 2*ncorr
and number of rows is
equal to ncorr.