quantum-espresso/examples/example25
giannozz b7ce3b7f77 Examples updated - please verify if everything is good
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3520 c92efa57-630b-4861-b058-cf58834340f0
2006-11-08 09:12:57 +00:00
..
reference Examples updated - please verify if everything is good 2006-11-08 09:12:57 +00:00
README example25 (LDA+U) slightly modified, reference output updated. 2006-07-04 13:50:03 +00:00
run_example example25 (LDA+U) slightly modified, reference output updated. 2006-07-04 13:50:03 +00:00

README

A simplified rotational invariant LDA+U method is presently implemented in
the pw.x code of the ESPRESSO package. The implemented functional is the
one proposed, among others, by S.L.Dudarev et al. in PRB, 57, 1505 (1998).

A discussion of the method, more details about the current implementation
and a description of a method to compute the crucial U parameter
are contained in Matteo Cococcioni's PhD thesis at SISSA and in the
paper "Linear-response approach to the calculation of the effective"
interaction parameters in the LDA+U method" by Matteo Cococcioni and
Stefano de Gironcoli, PRB 71, 035105 (2005).

A classical example for LDA+U method is FeO that is incorrectly predicted
to be a metal by LDA and GGA while it is an insulating antiferromagnetic
material in real world.

In this example we use FeO in order to illustrate some of the input
variables involved in LDA+U calculations.

Computational parameters (as wfc and density cutoff, k-points grid etc.) 
are set so as to make the example reasonably fast and the results are
NOT meant to be converged in any sense.

The first run is just plain LDA calculation for FeO in the rhombohedral
(antiferromagnetic) cell. There are 2 types of Fe atoms in the input
because the desired magnetic structure is antiferromagnetic and opposite
starting_magnetization for the two types is suggested.  

The lda_plus_u flag is enabled in the input and a tiny value is set
for the Hubbard_U of the two Iron types in order to force the code to
write out the occupation matrices for the localized Fe d-levels without
affecting the LDA result.

Looking at the output it is clear that the resulting solution is metallic:
the "correction for metal" energy term is clearly non zero and the Fermi
energy falls in the middle of the bands.

Coming to the occupation of the localized d-level one can see that
they are completely filled for the majority spin [spin 1(up) for atom
3 and spin 2(down) for atom 4] while minority-spin components only are
partially filled and with FRACTIONAL occupations.

In the second run of the example a realistic value for the Hubbard_U
parameter is adopted and the calculation is repeated. The LDA+U functional
is now active and disfavors fractional occupations.

In spite of that the system still, painfully, converges to a metallic
solution with similar fractional occupations as the LDA solution.  
This is due to the fact that LDA+U calculations can exhibit---even more
than spin polarized calculations do---several solutions and one is not
guaranteed to fall in the desired global minimum automatically.
Though live! 

We have to live with that and manage to explore several possibilities by 
suggesting to the system different starting points.
This can be done by setting the starting occupation matrices of the
system in a user defined way. 

This is done by exploiting the starting_ns_eigenvalue input variable as
in the third calculation of this example.

From literature or simple electron counting, one knows that in the
minority spin component one would like to occupy completely a single state 
leaving the other as empty as possible.

So, in the third run, by mean of the starting_ns_eigenvalue variable,
one enforces the complete occupation of the third eigenvalue of the
minority spin components of each Fe atomic type.

Why the third eigenvalue ? Because from the "standard LDA+U" run we know
that at the first iteration this is the one that is non-degenerate and 
if occupied completely could lead to an insulating result.

This calculation converges rather easily to the desired insulating solution.
In the output we can see that the "correction for metal" energy term is
essentially zero and Fermi energy falls in a gap.

A comment about energetics:
Plain LDA calculation has the lowest energy, as expected, since the +U
term is a positive defined penalty function added to it and energy can
only go up.
Notice however that the "standard LDA+U" calculation, the one with
fractional occupation of minority-spin levels, has an higher energy than
the "user defined ns" one, where one manages to completely fill the
desired level. This shows that this later one is indeed the ground state,
or at least, a better solution of the problem (still higher than plain
LDA, of course).

Looking at the output of these calculation one can notice that even in
the insulating solution obtained starting with user-defined ns matrices,
many of the minority spin occupations are still fractional while LDA+U
functional would like them to be either 0 or 1.

This is because the projector on localized d-level used in the calculation
are based on atomic orbitals that are somehow different from the crystal
wavefunctions. So some "spurious" d-level occupation comes from Oxygen
2s and 2p states that protrude toward Iron sites.

This is not wrong in general, the important thing is to be consistent
and use the U parameter appropriate for the chosen projector, but for
some applications it may be disturbing and one could like to have a
"better" projector.

A better projector would involve some localized Wannier functions of
the relevant bands around the Fermi energy. See for instance N.Marzari
and D.Vanderbilt, PRB 56, 12847 (1997) and I. Sousa, N. Marzari, and
D.Vanderbilt, PRB 65, 035109 (2001) for the definition and construction
of Maximally Localized Wannier Functions (MLWF).

Although it is possible to generate MLWF with the software distributed by
Nicola Marzari at www.wannier.org, here we follow a simpler prescription
and fix the phase-factor freedom---intrinsic in any Wannier function
determination---in a sub-optimal but simple way using the atomic
wavefunction as a guide.

This is done as a post-processing step with a poormanwannier tool (pmw.x)
that reads atomic wavefunctions and band structure of an LDA calculation
and replaces the atomic wavefunctions with our simple Wannier functions.

The subsequent LDA+U calculation is performed specifying in the system
namelist U_projection_type='file' so that the freshly produced Wannier
functions are used in the projection.
The outcome of this calculation is an insulating state with d-level
occupations really close to 0 or 1.