Momentum summation program/driver




1. Program installation.


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:



The Hamiltonian


The overlap


Correlation index


Brillouin zone data


Space group data


Space group data


Auxiliary index pointer


Factorization of the overlap


Structure constants


The self-energy for correlated block


Hartree-Fock self-energy matrix


The double-counting matrix


Correlation index data (cix.dat).

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.




Correlation index

idnsu (1:ndim)

Energy shift




TheSelf-enery matrix (sigma.dat).

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-energyis read and one needs only 2*ncorr values (real and imaginary parts) of the self-energy diagonal elements.




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)


Hartree-Fock Self-enery matrix (siginf.dat).

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.




Double-countymatrix (dcount.dat).

The file dcount.dat contains the double-counting matrix for related orbitals. The matrix structure is the same as the self-energy.




2. Computational modes.


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:



To compute the density of states.

Eq. (1.8)


To compute the Greenís function.

Eq. (1.6)


To compute the Weiss GF.

Eq. (1.9)


To compute impurity levels & matrix elements.

Eq. (1.11)


To orthogonalize system with overlap matrix O = 1



Spin-orbital case.



To input / output the self-energy, GF,in matrix form


(Attention: all modes parameters are case sensitive!)


3. Data written by the program.


The program writes out several files that contain information about the progress of the program and the results of computations.


1.      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 isequal to ncorr.