[gpaw-users] DFT+U failed to converge for bulk CuO

Honkala Karoliina karoliina.honkala at jyu.fi
Mon Apr 15 13:16:55 CEST 2013


 Hi !

Thanks a lot for the help !!
Now it runs nicely.


best regards,
                        Karoliina
________________________________
Lähettäjä: Marcin Dulak [Marcin.Dulak at fysik.dtu.dk]
Lähetetty: 15. huhtikuuta 2013 13:44
Vastaanottaja: Honkala Karoliina
Cc: gpaw-users at listserv.fysik.dtu.dk
Aihe: Re: [gpaw-users] DFT+U failed to converge for bulk CuO

Hi,

the trick seem to be setting high enough initial afm moments, something like:
for n, a in enumerate(bulk):
  if a.symbol == 'Cu':
     a.magmom=2.0 * (-1) ** (n % 2)  # make sure you need this ordering
     print n, a.magmom

With that it will converge with default parameters, no need for mixers of eigensolvers.
This is a common trick in different programs.

Best regards,

Marcin

On 04/15/2013 10:32 AM, Honkala Karoliina wrote:
Hi !

We are calculating bulk CuO but facing severe problems to get
calculations to converge. CuO is antiferromagnetic material with C2/c
crystal structure, and requires self-interaction correction.
The value for the Hubbard correction, U=4, is taken
from the paper PRB 73, 195107 (2006).


We have tried following things:

- excluded spins, improves  convergence but is not really
  an option because of the antiferromagnetic structure

- played with the eigensolver: cg works better than rmm-diis

- tried different parameters for mixing

- varied the value for Fermi smearing

- varied U value

- used different lattice parameters (in total four: 3 lattice constants
   and one angle) both experimental
  and those given in PRB 73, 235206 (2006)

The calculation does converge with the initial atomic positions (but electronic structure is not antiferromagnetic )but oxygen positions must be optimized and after moving oxygens
once or twice the electronic structure does not converge any more.
So we are not able to optimize the lattice parameters which is our first goal.

The scaled positions for Cu and O are taken from experimental paper J. Phys. Condens. Matter. 3, 8173 (1991).


Does anyone have suggestions how we could get the calculations convergence ?

The script that we are using is below.

Best regards,
                 Karoliina


from numpy import *
from ase.optimize import QuasiNewton
from ase.io.trajectory import PickleTrajectory
from ase.visualize import view
from ase.constraints import FixAtoms
from ase.io import write
from ase import Atoms
from ase.lattice import bulk
from ase.io import read
from ase.lattice.spacegroup import crystal

from gpaw import GPAW
from ase import *
from gpaw import *
from gpaw.mpi import rank
from ase.units import Hartree
from gpaw import GPAW, Mixer
from gpaw.mixer import Mixer, MixerSum

name = 'CuO_bulk_relax_spin'
al = 4.55
bl=  3.34
cl = 4.99
beta=99.507

bulk = crystal(['Cu','O'], [(0.25,0.25,0.0), (0, 0.42, 0.25)], spacegroup=15,setting=1,
                cellpar=[al,bl,cl,90,90,beta],pbc=True)
for a in bulk:
  if a.symbol == 'Cu':
     a.magmom=0.65

U=4.0
U_au = U / Hartree
l=2 # d orbitaali
scale=1
store=0
calc = GPAW(nbands=-50,
                h=0.18,
                xc='PBE',
                maxiter=240,
                width=0.2,
                spinpol= True,
                mixer=MixerSum(0.02, 5, 50),
#                mixer=Mixer(0.02, 5, 50),
                eigensolver='cg',
                kpts=(4,4,4),
                txt=name + '.txt',)

bulk.set_calculator(calc)

calc.initialize(bulk)
for i, a in enumerate(bulk):
    if a.symbol == 'Cu':
        calc.hamiltonian.setups[i].set_hubbard_u(U_au, l, scale, store)

#constraint = FixAtoms(mask=[a.symbol=='Cu' for a in bulk])
#bulk.set_constraint(constraint)

dyn = QuasiNewton(bulk, logfile=name+'.log', trajectory=name+'.traj')

dyn.run(fmax=0.05)
calc.write(name+'.gpw')






_______________________________________________
gpaw-users mailing list
gpaw-users at listserv.fysik.dtu.dk<mailto:gpaw-users at listserv.fysik.dtu.dk>
https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users



--
***********************************

Marcin Dulak
Technical University of Denmark
Department of Physics
Building 307, Room 229
DK-2800 Kongens Lyngby
Denmark
Tel.: (+45) 4525 3157
Fax.: (+45) 4593 2399
email: Marcin.Dulak at fysik.dtu.dk<mailto:Marcin.Dulak at fysik.dtu.dk>

***********************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20130415/fe5c0c95/attachment.html 


More information about the gpaw-users mailing list