[Pw_forum] Eigenvectors in a LDA+U calculation

Matteo Cococcioni matteo at umn.edu
Thu May 22 22:59:00 CEST 2014


Dear Juan

I will try to answer below.


On Thu, May 22, 2014 at 7:13 PM, Juan J. Meléndez <melendez at unex.es> wrote:

>   Dear all:
>
> I am playing with the examples for LDA+U. I think that understand that the
> eigenvalues and eigenvectors refer to the occupation matrix, which is
> calculated from the projections onto the proper states of the atom for
> which U correction is to be applied. However, there are two issues which
> are confusing to me:
>
> 1) If I diagonalize occupation matrix externally to QE, I do get the same
> eigenvalues, but quite different eigenvectors, beyond numerical errors, I
> think. Could anybody explain to my why does this happen?
>


Maybe you have some degeneracies? If so, any linear combination of
eigenvectors corresponding to the same eigenvalue, is also an eigenvector
for the same eigenvalue. I believe that diagonalization routines always
provide orthonormal eigenvectors but in the eigenspace of degenerate
eigenvalues the phase is arbitrary and can change with the specific
routine, machine, compiler, etc.




>
> 2) Suppose that I need to use the “starting_ns_eigenvalue” option to
> correct unreallistic occupations. For that, I have a look at the
> eigenvalues of the occupation matrix at convergence. However, since the
> occupation matrix changes during the calculation (because the d states,
> say, may mix together), the eigenvectors also do. It means that, despite I
> may know which occupation is unphysical at convergence, I cannot know what
> was the corresponding eigenvalue at the first iteration. Am I right? If so,
> how can I apply “starting_ns_eigenvalue” correctly?
>


you can try to restart the calculation from the one that produces the
occupation matrix you don't like, having the code reading the potential
from it. It should read also the occupations in this case. However setting
starting_ns_eigenvalue might not be effective in this case because in
electrons.f90 the code is does not allow you to change the occupations if
you are reading them from file.
Anyway, if you know the eigenvector you want to change the occupation of,
and that eigenvector appears also after the first iteration of the scf
cycle, then you are safe. keep in mind that starting_ns_eigenvalue changes
the occupation matrix eigenvalues only after the first iteration.

regards,

Matteo



>
> Thanks in advance.
>
> Juanjo
>
> Juan J. Meléndez
> Associate Professor
> Department of Physics · University of Extremadura
> Avda. de Elvas, s/n 06006 Badajoz (Spain)
> Phone: +34 924 28 96 55
> Fax: +34 924 28 96 51
> Email: melendez at unex.es
> Web: http://materiales.unex.es/miembros/personal/jj-melendez/Index.html
>
>
> ------------------------------
>    <http://www.avast.com/>
>
> Este mensaje no contiene virus ni malware porque la protección de avast!
> Antivirus <http://www.avast.com/> está activa.
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20140522/ff1e3f80/attachment.html>


More information about the users mailing list