18.11.2012 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!