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://pwscf.org/pipermail/pw_forum/attachments/20140526/38f0cde2/attachment.html
 

Reply via email to