electronic-structure / SIRIUS

Domain specific library for electronic structure calculations
BSD 3-Clause "New" or "Revised" License
122 stars 40 forks source link

how to use LDA+U in cp2k with sirius #744

Open GengSS opened 2 years ago

GengSS commented 2 years ago

Dear SIRIUS developers, I am trying to use Hubbard correction with CP2K/sirius,

The HUBBARD_CORRECTION T is set in the input under the &PARAMETERS section In the meanwhile, I also set up the U value under the &KIND section.

      &DFT_PLUS_U
          U_MINUS_J [eV] 3.0
          L 2
      &END DFT_PLUS_U

However, I found that all the energies are the same regardless of the Hubbard U value I set in the &DFT_PLUS_U section. This is a bulk Cu2O system, and computed energies are supposed to vary a little bit with different U values.

grep 'ENERGY| Total' subdir_hubbard_U?/joblog*

subdir_hubbard_U0/joblog.2344991: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U1/joblog.2344992: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U2/joblog.2344993: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U3/joblog.2344994: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U4/joblog.2344995: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U5/joblog.2344996: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U6/joblog.2344997: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U7/joblog.2344998: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U8/joblog.2344999: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887
subdir_hubbard_U9/joblog.2345000: ENERGY| Total FORCE_EVAL ( SIRIUS ) energy [a.u.]:         -755.840261090023887

Is there anything wrong with the way I set up the Hubbard U correction?

Thank you very much in advance, Best, Geng

toxa81 commented 2 years ago

@mtaillefumier can you have a look, please? We probably need to tag the new version, because latest lda+u+v is just merged into develop branch.

mtaillefumier commented 2 years ago

Hi geng, thank you very much for this report. SIRIUS supports LDA+U (+V) types of calculations but this support is not activated in cp2k. Turning on hubbard correction (which I am a bit surprised it even shows up) is not enough as the information about atoms and constants should be given to sirius. The necessary bit of code is not present in cp2k at the time of this reply. I would suggest you to open an issue in cp2k repository to get this feature added to cp2k.

mtaillefumier commented 2 years ago

Hi geng,

Short question. Do you use cp2k pseudo-potentials or external one. The integration of the hubbard sirius functionality will only work with external pp for the time being. I am preparing a patch to support this in cp2k.

GengSS commented 2 years ago

Hi geng,

Short question. Do you use cp2k pseudo-potentials or external one. The integration of the hubbard sirius functionality will only work with external pp for the time being. I am preparing a patch to support this in cp2k.

Dear mtailefumier, Thank you very much for your reply. I am using the cp2k pseudo-potentials provided in the GTH_POTENTIALS file. Best, Geng

mtaillefumier commented 1 year ago

Hi geng,

You can try cp2k master if you want to test lda+U+cp2k+sirius. The necessary code was merged during the summer.