[gpaw-users] DFT+U failed to converge for bulk CuO
Marcin Dulak
Marcin.Dulak at fysik.dtu.dk
Mon Apr 15 12:44:29 CEST 2013
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
> 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
***********************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20130415/e516bf71/attachment.html
More information about the gpaw-users
mailing list