Page 1 of 1

About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Sat Apr 01, 2017 1:12 pm
by identation
Dear all,
I am testing the DMFT calculations (using Hubbard I solver) for BiFeO3. My input is attached at the end of this topic (I use the LDA paw). Here, I use two datasets, with the first one for a normal lda calculation, and the second one for dmft calculation.
The calculation for the first dataset converges quite well, with the output like below (the magnetic moments are also reasonable within lda):

Code: Select all

 ETOT 29  -357.51528896451    -3.98E-13 8.42E-13 4.70E-10 0.000
 ETOT 30  -357.51528896451    -1.31E-12 3.64E-13 4.89E-10 0.000
 ETOT 31  -357.51528896451    -3.41E-13 1.74E-13 1.45E-11 0.000
 ETOT 32  -357.51528896451    -6.25E-13 7.75E-14 2.28E-12 0.000
 ETOT 33  -357.51528896451    -1.14E-12 3.49E-14 8.63E-13 0.000
 At SCF step   33       nres2   =  8.63E-13 < tolvrs=  1.00E-12 =>converged. 

However, when doing the dmft calculations, the convergence is very very slow. After more than 50 steps (nstep), the energy vibrates within 1.0e-5~1.0e-4 Ha, and the tolvrs vibrates with 1.0e-3~1.0e-2. But they never converge. See below:

Code: Select all

 ETOT 49  -357.19641407394    -1.01E-03 2.78E-27 1.04E-01 0.037
 ETOT 50  -357.19626430092     1.50E-04 5.71E-27 7.54E-02 0.036
 ETOT 51  -357.19681811339    -5.54E-04 1.17E-27 1.16E-01 0.029
 ETOT 52  -357.19623599895     5.82E-04 2.83E-26 5.73E-02 0.027
 ETOT 53  -357.19501755410     1.22E-03 5.77E-24 6.44E-03 0.020
 ETOT 54  -357.19440421471     6.13E-04 7.77E-28 2.46E-02 0.028
 ETOT 55  -357.19463694618    -2.33E-04 4.34E-25 1.05E-02 0.021
 ETOT 56  -357.19492195978    -2.85E-04 4.08E-26 5.49E-03 0.018
 ETOT 57  -357.19488139786     4.06E-05 6.14E-27 2.13E-02 0.014
 ETOT 58  -357.19461010481     2.71E-04 6.67E-28 6.97E-03 0.018


So, I have the following questions:
(1) how to converge the dmft loops (i.e. to change which parameters)?
(2) Is my input file reasonable? Or there is something wrong with my input?
I appreciate it very much for your answers. Thank you very much!

Code: Select all

# -- DATASETS AND OPTIONS
ndtset 2
jdtset 1 2
fftalg 112  # Needed to preserve old behaviour
prtvol 4
pawprtvol -1
getwfk -1

##### CONVERGENCE PARAMETERS
nstep1 100
nstep 60
nline1 8
nnsclo1 8
nline2 16
nnsclo2 16
ecut  25
pawecutdg 50
tolvrs 1.0d-12
nband  45
occopt 3 tsmear 100 K


##### PHYSICAL PARAMETERS
nsppol 2
nspden 2
nspinor 1
spinat 0 0 0
       0 0 0
       0 0 9
       0 0 -9
       0 0 0
       0 0 0
       0 0 0
       0 0 0
       0 0 0
       0 0 0

natom 10
ntypat 3
typat 1 1 2 2 3 3 3 3 3 3
znucl 83 26 8

xred  0.000000000         0.000000000         0.000000000
      0.500000000         0.500000000         0.500000000
      0.221200004         0.221200004         0.221200004
      0.721199989         0.721199989         0.721199989
      0.397300005         0.523299992         0.942299962
      0.942299962         0.397300005         0.523299992
      0.523299992         0.942299962         0.397300005
      0.023299992         0.897300005         0.442299962
      0.897300005         0.442299962         0.023299992
      0.442299962         0.023299992         0.897300005

acell   3*1.889727

rprim   5.6367592812         0.0000000000         0.0000000000
        2.8673243001         4.8529894449         0.0000000000
        2.8673243001         1.6362838430         4.5688162293

##### K-POINTS
ngkpt 4 4 4
nshiftk 1
shiftk 0.5 0.5 0.5
istwfk *1

## == LDA+DMFT
usedmft1 0
usedmft 1
dmftbandi  1
dmftbandf  45
dmft_solv 2
dmft_iter 50
dmft_nwli 100000
dmft_nwlo 1000
dmftcheck 0
dmft_rslf 1
dmft_mxsf 0.7
dmft_dc 1

##### LDA+U
usepawu    1   # LDA+U is not used.
dmatpuopt  2   # choose expression of the density matrix
lpawu   -1   2   -1   # U on d-orbitals of Ni, no U on oxygen
upawu1  0.0 0.0  0.0   # values in Hartree
jpawu1  0.0 0.0  0.0   # values in Hartree
upawu  0.0 0.3  0.0   # values in Hartree
jpawu  0.0 0.0  0.0   # values in Hartree
f4of2_sla 0.0 0.0 0.0

prtdos 1


Re: About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Wed Apr 05, 2017 1:44 am
by pipidog
Hello,

you should begin with much rough convergence criterion to perform quick calculation
and then fine tune the parameters to see how to improve your calculation. ecut 25 is too
high for PAW. I would suggest a value around 15 is a reasonable choice. tolvrs 1d-12 is
also too high. For a quick test, set it to 1d-4, then increase it to have convergence test.

* Question: Why is my DMFT loop not convergent?

Here is what happened when performing a DFT+DMFT calculation.
DFT loop --> Wannier --> DMFT loop

Therefore, DMFT loop begins with the trial wave functions from DFT. If your DFT wave functions
are very far away from the ground state of DMFT, you can expect the problem will become hard
to converge.

* How to improve the issue?
You should set dmft_iter to smaller value. For a complete DFT+DMFT calculation, you don't need
every DMFT loop to converge. You only set dmft_iter to a small value, say 5 or 10, and let the wave
functions to "feel" Hubbard U in the solver, that's enough. Then return the DMFT wave function back
to DFT. DFT will goes to a new ground state based the DMFT outputs. Repeat the procedure, DFT
will continue to improve itsself to the DMFT ground state. Also, the DMFT loop will as make itself as
close to DFT as possible. So you should let DFT and DMFT do the job collaboratively.

You should not expect the DFT ground state is already close to DMFT (except for certain simple systems)
unless you really know what are ground states. If your DMFT loop is stuck, reduce dmft_iter so DFT and
DFMT can talk to each other more frequently. In most case, a self-consistency with tolvrs ~ 1d-4 should not
be difficult.

* How about one-shot calculation?

In some case, people may just want a one-shot calculation. That is a good and fast approximation. However,
it depends how you guess your DFT ground state. If your DFT ground state is far away from DMFT ground
state, you will certainly get stuck. Therefore, a better way is to properly design your DFT ground state.
For example, use DFT+U to generate the input DMFT wave functions. Usually if your Wannier energy window
is much smaller than DFT band width, U in DMFT is usually much smaller than DFT+U.

Therefore, if you use U=3eV in DMFT, you may try U=3 or 4 or 5 eV in DFT+U to generate the input wave functions.
If you still cannot get a one-shot calculation converge, tune other parameters, e.g. magnetic moments, U, J ...etc,
in your DFT calculation to generate new ground state until one-shot DMFT is convergent.

If one-shot DMFT can converge, usually they are very good approximation to the full DFT+DMFT self-consistent
calculation. However, it also requires more experience.

Hopefully my comments can help.
Again, these are just my personal comments, you should check yourself.

Shu-Ting Pi
UC Davis

Re: About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Thu Apr 06, 2017 1:24 pm
by identation
Dear Dr. Shu-Ting Pi,
Thanks a lot for your reply. It helps me quite a lot.
I have tested my case following your suggestions, and the convergence is improved. For the DMFT calculations, it shows:

Code: Select all

 ETOT 60  -357.19228934472    -9.64E-05 5.39E-28 8.37E-03 0.037

 Cartesian components of stress tensor (hartree/bohr^3)
  sigma(1 1)=  2.48097347E-04  sigma(3 2)=  1.15608478E-05
  sigma(2 2)=  2.14095877E-04  sigma(3 1)=  2.02585268E-05
  sigma(3 3)=  2.05815033E-04  sigma(2 1)=  2.87739997E-05

 scprqt:  WARNING -
  nstep=   60 was not enough SCF cycles to converge;

Although it have not been converged, I guess it have the trends to converge. Then, another problems about my calculations are that, the output magnetic moment after the DMFT is always ~3.01 uB for Fe, it is even smaller than the value obtained from LDA (~3.57 uB). I tried to change the value of Hubbard U for DMFT, but the magnetic moment for Fe is still close to 3.0 uB. It seems that the system have not felt the "Hubbard U". Could you please tell me how to solve this problems?
Thank you very much for your help.
Best wishes,
identation

PS: this time, I use the input as:

Code: Select all

# -- DATASETS AND OPTIONS
ndtset 2
jdtset 1 2
fftalg 112  # Needed to preserve old behaviour
prtvol 4
pawprtvol -1
getwfk -1

##### CONVERGENCE PARAMETERS
nstep1 100
nstep 60
nline1 8
nnsclo1 8
nline2 16
nnsclo2 16
ecut  20
pawecutdg 40
tolvrs 1.0d-10
nband  50
occopt 3 tsmear 100 K


##### PHYSICAL PARAMETERS
nsppol 2
nspden 2
nspinor 1
spinat 0 0 0
       0 0 0
       0 0 9
       0 0 -9
       0 0 0
       0 0 0
       0 0 0
       0 0 0
       0 0 0
       0 0 0

natom 10
ntypat 3
typat 1 1 2 2 3 3 3 3 3 3
znucl 83 26 8

xred  0.000000000         0.000000000         0.000000000
      0.500000000         0.500000000         0.500000000
      0.221200004         0.221200004         0.221200004
      0.721199989         0.721199989         0.721199989
      0.397300005         0.523299992         0.942299962
      0.942299962         0.397300005         0.523299992
      0.523299992         0.942299962         0.397300005
      0.023299992         0.897300005         0.442299962
      0.897300005         0.442299962         0.023299992
      0.442299962         0.023299992         0.897300005

acell   3*1.889727

rprim   5.6367592812         0.0000000000         0.0000000000
        2.8673243001         4.8529894449         0.0000000000
        2.8673243001         1.6362838430         4.5688162293

##### K-POINTS
ngkpt 4 4 4
nshiftk 1
shiftk 0.5 0.5 0.5
istwfk *1

## == LDA+DMFT
usedmft1 0
usedmft 1
dmftbandi  1
dmftbandf  50
dmft_solv 2
dmft_iter 2
dmft_nwli 100000
dmft_nwlo 1000
dmftcheck 1
dmft_rslf 1
dmft_mxsf 0.5
dmft_tollc 0.00001
dmft_dc 1

##### LDA+U
usepawu    1   # LDA+U is not used.
dmatpuopt  2   # choose expression of the density matrix
lpawu   -1   2   -1   # U on d-orbitals of Ni, no U on oxygen
upawu1  0.0 0.0  0.0   # values in Hartree
jpawu1  0.0 0.0  0.0   # values in Hartree
upawu  0.0 0.3  0.0   # values in Hartree
jpawu  0.0 0.0  0.0   # values in Hartree
f4of2_sla 0.0 0.0 0.0

prtdos 1


Re: About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Fri Apr 07, 2017 10:37 pm
by pipidog
Hi,

There is no clear answer to your problem. If you believe the magnetic moments should be larger in DMFT but they are not,
there are several reasons. You have to try it yourself. Just give you some simple comments:

1. Try to give J a reasonable value, say, 10~30% of U. It might help.

2. Typically, using an ever larger energy window for your Wannierization could be helpful. The larger energy window is, the
more localized Wannier functions. It could be helpful to achieve a more localized ground states. As a result, larger magnetic
moments are possible.

3. fine tuning your DFT ground state is another choice.
If your system is Ferromagnetic, I would suggest to use DFT+U calculation in your DFT SCF loop but set U=0 (or very small U, e.g 1e-3)
for Fe. Then use the variables "usedmatpu" and "dmatpawu" to assign the density of the d-orbital of Fe. Usually the density matrix
is chosen to satisfy the Hund's rules, so that you will get a more physically ground states. At the same time,
the DMFT loop will also output the density matrix in DMFT. All you have to do is to make sure the density matrices
in DMFT are also your expected solutions. if they are indeed what you want, I don't see any reason that you cannot
get correct magnetic moments.

Hopefully it helps.

Shu-Ting Pi
UC Davis

Re: About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Wed Apr 12, 2017 2:54 pm
by identation
Dear Dr. Shu-Ting Pi,
Thank you so much for your suggestions. I will test that.
Best wishes,
identation

Re: About the DMFT calculations for BiFeO3 using Hubbard I

Posted: Fri Aug 04, 2017 3:53 pm
by Markk786