[Pw_forum] Eigenvectors in a LDA+U calculation

Juan J. Meléndez melendez at unex.es
Mon May 26 10:35:52 CEST 2014


Thank you, Mateo. You helped me a lot.

Take care

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


From: Matteo Cococcioni 
Sent: Thursday, May 22, 2014 10:59 PM
To: PWSCF Forum 
Subject: Re: [Pw_forum] Eigenvectors in a LDA+U calculation


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



------------------------------------------------------------------------------
          Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa. 
       



  _______________________________________________
  Pw_forum mailing list
  Pw_forum at pwscf.org
  http://pwscf.org/mailman/listinfo/pw_forum




--------------------------------------------------------------------------------
_______________________________________________
Pw_forum mailing list
Pw_forum at pwscf.org
http://pwscf.org/mailman/listinfo/pw_forum

---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20140526/38f0cde2/attachment.html>


More information about the users mailing list