[QE-users] On-site Hubbard U for background orbitals

Timrov Iurii iurii.timrov at epfl.ch
Mon Aug 24 10:28:46 CEST 2020


Dear Will,


> You are talking about editing 'set_hubbard_l' and 'set_hubbard_l_back' to my desired values? and this is done in 'Modules/set_hubbard_l.f90'


Yes, I meant this. Great that it works now.


Greetings,

Iurii


--
Dr. Iurii TIMROV
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users <users-bounces at lists.quantum-espresso.org> on behalf of William Hewett <williamholmeshewett1 at gmail.com>
Sent: Monday, August 24, 2020 4:18:46 AM
To: Quantum ESPRESSO users Forum
Subject: Re: [QE-users] On-site Hubbard U for background orbitals

Hi Iurii,

Thanks so much for your help. My code is working now, I think there was an error somewhere in

Modules/set_hubbard_l.f90
Modules/set_hubbard_n.f90
PW/src/tabd.f90

As after redownloading / compiling with my new Hubbard channels everything seemed to worked fine.

Thanks also for pointing me to the example with hubbard_back, as this also helped a lot too.

One question, you said:

'This modification must be done for both DFT+U and DFT+U+V machineries'

You are talking about editing 'set_hubbard_l' and 'set_hubbard_l_back' to my desired values? and this is done in 'Modules/set_hubbard_l.f90'

Cheers

Will

On Tue, Aug 18, 2020 at 8:57 PM Timrov Iurii <iurii.timrov at epfl.ch<mailto:iurii.timrov at epfl.ch>> wrote:

> Note that by default the second Hubbard channel per atom is of the "s character".


Sorry, this is true for most elements. But just for a few elements the second Hubbard channel is not of the s character. One should always check "set_hubbard_l_back".


In the (near) future we would like to make it possible to specify the Hubbard channels (i.e. orbitals to which the Hubbard correction is applied) from the input, and not to have it hard-coded in  set_hubbard_l and set_hubbard_l_back.


Greetings,

Iurii


--
Dr. Iurii TIMROV
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users <users-bounces at lists.quantum-espresso.org<mailto:users-bounces at lists.quantum-espresso.org>> on behalf of Timrov Iurii <iurii.timrov at epfl.ch<mailto:iurii.timrov at epfl.ch>>
Sent: Tuesday, August 18, 2020 10:50:28 AM
To: users at lists.quantum-espresso.org<mailto:users at lists.quantum-espresso.org>
Subject: Re: [QE-users] On-site Hubbard U for background orbitals


Dear Will,


The implementation of the multi-channel DFT+U and DFT+U+V codes is in the experimental stage (please use it with caution), we are still working on it to make it more user-friendly and robust. This is why there is no much documentation about it yet.


In principle, yes you can use the DFT+U+V machinery to do what you want: to apply two different U values to 4f and 5d states of Gd and set V to zero. But actually there is a multi-channel implementation also in the DFT+U machinery, but this was not advertised yet for the reasons mentioned above. But you can see some examples in q-e-6.6/test-suite/pw_lda+U (in you case you should check "lda+U_background_one_channel.in").


> Error in routine init_lda_plus_u (1):
>      lda_plus_u calculation but Hubbard_l not set


I presume that you get this problem because there is something wrong in your input. If you share your input it would be useful to find what is wrong.


Note that by default the second Hubbard channel per atom is of the "s character". If you want to change it to something else, then you need to modify the routine "set_hubbard_l_back". The main Hubbard channel is specified in "set_hubbard_l" (in your case for Gd it is hard-coded and it is 4f), and the secondary ("background" [1]) Hubbard channel is specified in "set_hubbard_l_back" (in your case for Gd you need to specify that it is the d channel, i.e. hubbard_l_back = 2). This modification must be done for both DFT+U and DFT+U+V machineries.


Greetings,

Iurii


[1] Note, the terminology "background" is a bit misleading. It should not be called like that (in general), because this is just a second Hubbard channel per atom. It is called "background" for historical reasons: this secondary (background) channel was originally implemented to do something else and hence it has such a name. But we want to change this naming, and only then advertise these features to the QE community.


--
Dr. Iurii TIMROV
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users <users-bounces at lists.quantum-espresso.org<mailto:users-bounces at lists.quantum-espresso.org>> on behalf of William Hewett <williamholmeshewett1 at gmail.com<mailto:williamholmeshewett1 at gmail.com>>
Sent: Tuesday, August 18, 2020 4:35:59 AM
To: users at lists.quantum-espresso.org<mailto:users at lists.quantum-espresso.org>
Subject: [QE-users] On-site Hubbard U for background orbitals

Hi all,

I'm interested in doing DFT+U calculations on the rare earth mono-nitride GdN. The most successful calculations in the past have used multiple Hubbard U terms (U_f and U_d) on the 4f and 5d electron channels on the Gd ion. This has been done before using QE (Comput. Mater. Sci 95 (2014) 263-270).

I suspect that in v6.6 this may now be possible in the stable branch via an onsite Hubbard V term on both the standard and background orbitals?

The pw.x input guide gives that Hubbard_V(na,na,k) will be the onsite Hubbard interaction. After setting the appropriate values for the background n, l and occupations of Gd in:

Modules/set_hubbard_l.f90
Modules/set_hubbard_n.f90
PW/src/tabd.f90

and increasing sc_size = 3 in Modules/parameters.f90

and compiling the code, I've used the following in the &SYSTEM block:

lda_plus_u=.true.
lda_plus_u_kind=2
Hubbard_V(1,1,1)=a
Hubbard_V(1,1,3)=b

I guess there will now be two Hubbard terms on that atom at side na, on the standard and background orbitals.

However, I find the following error:

Error in routine init_lda_plus_u (1):
     lda_plus_u calculation but Hubbard_l not set

Any help is appreciated, I'm running QE 6.6 on Ubuntu 20.04.

Thanks

Will Hewett
Postdoctoral Researcher
Victoria University of Wellington
New Zealand
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso<http://www.max-centre.eu/quantum-espresso>)
users mailing list users at lists.quantum-espresso.org<mailto:users at lists.quantum-espresso.org>
https://lists.quantum-espresso.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20200824/f03e9715/attachment.html>


More information about the users mailing list