[gpaw-users] Band structure calculation
Jakob Arendt Rasmussen
jar at inano.au.dk
Wed Feb 1 11:21:18 CET 2012
Hi
I'm doing a band structure calculation along the second axis in the
brillouin zone where I do one k-point at a time. this works fine in
fd-mode, but in lcao-mode I get weird (i.e. large (numerically))
eigenvalues for the gamma-point - giving an ugly spaghetti-plot... The
eigenvalues for the gamma-point spans from -520000 eV to -120 eV jumping
tens of eV in the valence end whereas for the other k-points the
eigenvalues spans from -22 eV to 1.8 eV jumping tens of meV.
The structure optimization was done like this:
###########################
from ase.io.trajectory import PickleTrajectory
from ase.optimize import BFGS
from gpaw import GPAW
id='3x9_con'
traj=PickleTrajectory(id+'.traj')
atoms=traj[-1]
calc=GPAW(nbands=170,
mode='lcao',
basis='dzp',
h=0.16,
kpts=(1,8,1),
xc='PBE',
spinpol=True,
txt=id+'_opt.txt')
atoms.set_calculator(calc)
dyn=BFGS(atoms,trajectory=id+'_opt.traj',logfile=id+'_opt.log')
dyn.run(fmax=0.05)
calc.write(id+'_opt.gpw')
###########################
and the band structure like this:
###########################
from gpaw import GPAW
from gpaw.mixer import MixerSum
import os
id='3x9_con'
nkpt = 40
kpts = [(0, 0.5 * k / (nkpt - 1), 0) for k in range(nkpt)]
for kpt in kpts:
if id+'_%1.2f_band.gpw' %kpt[1] in os.listdir('./'):
continue
else:
calc = GPAW(id+'_opt.gpw',
txt=id+'_%1.2f_band.txt' %kpt[1],
kpts=[kpt],
fixdensity=True,
usesymm=None,
maxiter=500,
mixer=MixerSum(),
convergence={'bands': -5})
calc.scf.converged=False
calc.get_potential_energy()
calc.write(id+'_%1.2f_band.gpw' %kpt[1])
###########################
Best,
Jakob
More information about the gpaw-users
mailing list