Band structure of bulk graphene

From phys824
Revision as of 08:23, 25 October 2012 by Bnikolic (talk | contribs) (Created page with "<pre> import numpy as np 2 from math import sqrt 3 from sys import argv 4 from ase import Atoms 5 from ase.lattice.surface import hcp0001 6 from gpaw import GPA...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
import numpy as np 
 2  from math import sqrt 
 3  from sys import argv 
 4  from ase import Atoms 
 5  from ase.lattice.surface import hcp0001 
 6  from gpaw import GPAW, restart, Mixer 
 7   
 8  a = 2.4437 
 9  # Set up graphene structure 
10  vacuum = 3 
11  atoms = Atoms(symbols='C2', positions=[(0.5*a,-sqrt(3)/6*a,vacuum),(0.5*a, +sqrt(3)/6*a, vacuum)],  
12                cell=[(0.5*a,-0.5*3**0.5*a,0),  
13                      (0.5*a,+0.5*3**0.5*a,0), 
14                      (0.0,0.0,2*vacuum)]) 
15  atoms.set_pbc((True,True,False)) 
16   
17  # Gamma-point calculation of graphene 
18  calc = GPAW(h=0.2, width=0.15, kpts=(1,1,1), xc='LDA')  
19  atoms.set_calculator(calc) 
20  atoms.get_potential_energy() 
21   
22   
23  kpts = [ (1/2.0, 1/3.0, 0) ] 
24   
25  # Calculate one K-point with usesymm=True 
26  calc.set(kpts = kpts, usesymm=True, fixdensity=True) 
27  calc.get_potential_energy() 
28  eigs_True = calc.get_eigenvalues(kpt=0) 
29   
30  # Redo with the same K-point with usesymm=False 
31  calc.set(kpts = kpts, usesymm=False, fixdensity=True) 
32  calc.get_potential_energy() 
33  eigs_False = calc.get_eigenvalues(kpt=0) 
34   
35  print eigs_True 
36  print eigs_False 
37  assert abs(eigs_True[0]-eigs_False[0])<1e-4