ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
6.2.14 Partly occupied Wannier Functions<br />
from ase.data.molecules import molecule<br />
from gpaw import GPAW<br />
atoms = molecule(’C6H6’)<br />
atoms.center(vacuum=3.5)<br />
calc = GPAW(h=.21, xc=’PBE’, txt=’benzene.txt’, nbands=18)<br />
atoms.set_calculator(calc)<br />
atoms.get_potential_energy()<br />
calc.set(fixdensity=True, txt=’benzene-harris.txt’,<br />
nbands=40, eigensolver=’cg’, convergence={’bands’: 35})<br />
atoms.get_potential_energy()<br />
calc.write(’benzene.gpw’, mode=’all’)<br />
from gpaw import restart<br />
from ase.dft import Wannier<br />
atoms, calc = restart(’benzene.gpw’, txt=None)<br />
# Make wannier functions of occupied space only<br />
wan = Wannier(nwannier=15, calc=calc)<br />
wan.localize()<br />
for i in range(wan.nwannier):<br />
wan.write_cube(i, ’benzene15_%i.cube’ % i)<br />
# Make wannier functions using (three) extra degrees of freedom.<br />
wan = Wannier(nwannier=18, calc=calc, fixedstates=15)<br />
wan.localize()<br />
wan.save(’wan18.pickle’)<br />
for i in range(wan.nwannier):<br />
wan.write_cube(i, ’benzene18_%i.cube’ % i)<br />
from ase.dft import Wannier<br />
from gpaw import restart<br />
<strong>ASE</strong> <strong>Manual</strong>, <strong>Release</strong> 3.6.1.2828<br />
atoms, calc = restart(’benzene.gpw’, txt=None)<br />
wan = Wannier(nwannier=18, calc=calc, fixedstates=15, file=’wan18.pickle’)<br />
import pylab as pl<br />
weight_n = pl.sum(abs(wan.V_knw[0])**2, 1)<br />
N = len(weight_n)<br />
F = wan.fixedstates_k[0]<br />
pl.figure(1, figsize=(12, 4))<br />
pl.bar(range(1, N+1), weight_n, width=0.65, bottom=0,<br />
color=’k’, edgecolor=’k’, linewidth=None,<br />
align=’center’, orientation=’vertical’)<br />
pl.plot([F+.5, F+.5], [0, 1], ’k--’)<br />
pl.axis(xmin=.32, xmax=N+1.33, ymin=0, ymax=1)<br />
pl.xlabel(’Eigenstate’)<br />
pl.ylabel(’Projection of wannier functions’)<br />
pl.savefig(’spectral_weight.png’)<br />
pl.show()<br />
import numpy as np<br />
from ase import Atoms<br />
from ase.dft.kpoints import monkhorst_pack<br />
from gpaw import GPAW<br />
6.2. <strong>ASE</strong> 43