To be specific, we concentrate on the Anderson impurity Hamiltonian

_{} (1)

describing the
interaction of the impurity level _{} with bands of
conduction electrons _{} via hybridization _{}. _{} is
the Coulomb repulsion between different orbitals in the _{}–band.

Now we turn to
the Hubbard I approximation [1] which is closely related to the moments expansion
method [2]. Consider many–body atomic states _{} which in _{} are
all degenerate with index _{} numerating these
states for a given number of electrons _{} The impurity Green
function is defined as the average

_{} (2)

and becomes
diagonal with all equal elements in _{}. It is convenient to
introduce the Hubbard operators

_{} (3)

and represent the one–electron creation and destruction operators as follows

_{} (4)

_{} (5)

The impurity Green function (2) is given by

_{} (6)

where the
matrix _{} is defined as

_{} (7)

Establishing
the equations for _{} can be performed using
the method of equations of motion for the _{} operators. Performing
their decoupling due to Hubbard [1,3], carrying out the Fourier transformation
and analytical continuation to the real frequency axis, and summing over _{} and
_{} after (6) we arrive to the main result

_{} (8)

where
hybridization _{} satisfies the DMFT
self–consistency condition of the Hubbard model on a Bethe lattice

_{} (9)

with _{} being
the bandwidth.

The _{} can
be viewed in the matrix form (6) with the following definition of a diagonal
atomic Green function

_{} (10)

with _{} being
the total energies of the atom with _{} electrons in _{} The
coefficients _{} are the probabilities
to find atom with _{} electrons while
combinatorial factor _{} arrives due to
equivalence of all states with _{} electrons in _{}.

The
coefficients _{} are normalized to
unity, _{} and are expressed via diagonal elements of _{} as
follows:

_{} (11)

Their
determination in principle assumes solving a non–linear set of equations while
determining _{} The mean number of
electrons can be measured as follows: _{} or as follows _{} The
numbers _{} can be also used to find the averages _{} _{}: density–density
correlation function _{} for local states with _{} electrons
is proportional to the number of pairs formed by _{} particles _{}.
Since the probability for _{} electrons to be
occupied is given by: _{}, the physical
density–density correlator can be deduced from: _{}. Similarly,
the triple occupancy can be calculated from _{}.

If we neglect
by the hybridization _{} in Eq. (8), the
probabilities _{} become simply
statistical weights:

_{} (12)

We thus see
that in principle there are several different ways to determine the
coefficients _{}, either via
self–consistent determination (11), or using statistical formula (12). To
determine the best procedure let us first consider limits of large and small _{}’s.
When _{}, _{} is reduced to _{} i.e.
the Hubbard I method reproduces the atomic limit. Setting _{} gives
_{}, which is the correct band limit. Unfortunately, at half–filling
this limit has a pathology connected to the instability towards Mott transition
at any interaction strength _{}.

0.6cm

[1] J.
Hubbard, Proc. Roy. Soc. (London) A**281**,
401 (1964).

[2] W. Nolting,
and W. Borgiel, Phys. Rev. B **39**,
6962(1989).

[3] L. M.
Roth, Phys. Rev. **184**,
451 (1969).

· compile program typing "make" at the source files location. Makefile was tested on Linux OS using PGI compiler. Please adjust it depending on operating system and compiler used.

·
Edit “**input**" file which has the following structure:

1 |
IMOD |

0.0 |
EF |

2.0 |
U |

0.016 |
TEMP |

4 |
NDEG |

500 |
NMSB |

500 |
OMAX |

500 |
NOMG |

50 |
WEND |

F |
COMPUTE_REAL |

where IMOD = 1 is the Hubbard Model, IMOD=3 the Anderson impurity model, EF is the impurity level, U is value of Coulomb repulsion, TEMP is temperature to be used used to create for Matsubara points grid, NDEG is the degeneracy, NMSB is the number of Matsubara point, OMAX is the imaginary frequency cutoff, NOMG is the number is real frequency points, WEND is the real frequency cutoff, COMPUTE_REAL is flag once is “True" tell program to produce the self-consistent solution (last iteration) on real axis.

1.
Program’s input consists from one
more file (provided the Anderson impurity model item is chosen in “**input**" file):

“**delta.dat**" containing the
hybridization function.

The structure is the following:

Column # |
Value |

1 |
Frequency |

2 |
Re Delta |

3 |
Im Delta |

1. Run the program executable (“main" is the default name).

2. Program’s output consists from the following files:

1) “**gfsig_iw.dat**" containing Green’s
function (GF) and the self-energy (SE) on Matsubara axis

2) “**gfsig_re.dat**" containing Green’s
function (GF) and the self-energy (SE) on real axis provided flag
"COMPUTE_REAL" is “TRUE".

They have the same structure:

Column # |
Value |

1 |
Frequency |

2 |
Re GF |

3 |
Im GF |

4 |
Re SE |

5 |
Im SE |

3) “**grid_re.dat**" containing real frequency
grid for the hybridization function (delta).

4) “**grid_im.dat**" containing Matsubara
frequency grid for the hybridization function (delta).

Both files have the same structure:

Column # |
Value |

1 |
Frequency |

Makefile |
main make file |

dmf_cmpdiag.f |
The solution of the generalized eigenvalue problem |

imp_sunatm.f |
Solves Anderson impurity model, returns GF and SE. |

lib_broy6.f |
Broyden mixing. |

lib_cinv.f |
Finds inverse of square matrix. |

lib_csplines.f |
Splines complex function from one to another grid. |

lib_deriv1.f |
Calculates radial derivative. |

lib_morefun.f |
Calculations of a few auxiliary functions |

lib_pade.f |
Realization of Páde procedure. |

lib_splin3.f |
Computed a natural spline approximation of third order. |

mod_common.f |
File containing common modules used across the program. |

mod_dimart.f |
File containing common modules used across the program. |

mod_init.f |
File containing common modules used across the program. |

sunhub1.f |
Main program. |