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.

<strong>ASE</strong> <strong>Manual</strong>, <strong>Release</strong> 3.6.1.2828<br />

kpts = monkhorst_pack((13, 1, 1)) + [1e-5, 0, 0]<br />

calc = GPAW(h=.21, xc=’PBE’, kpts=kpts, nbands=12, txt=’poly.txt’,<br />

eigensolver=’cg’, convergence={’bands’: 9})<br />

CC = 1.38<br />

CH = 1.094<br />

a = 2.45<br />

x = a / 2.<br />

y = np.sqrt(CC**2 - x**2)<br />

atoms = Atoms(’C2H2’, pbc=(True, False, False), cell=(a, 8., 6.),<br />

calculator=calc, positions=[[0, 0, 0],<br />

[x, y, 0],<br />

[x, y+CH, 0],<br />

[0, -CH, 0]])<br />

atoms.center()<br />

atoms.get_potential_energy()<br />

calc.write(’poly.gpw’, mode=’all’)<br />

import numpy as np<br />

from ase.dft import Wannier<br />

from gpaw import restart<br />

atoms, calc = restart(’poly.gpw’, txt=None)<br />

# Make wannier functions using (one) extra degree of freedom<br />

wan = Wannier(nwannier=6, calc=calc, fixedenergy=1.5)<br />

wan.localize()<br />

wan.save(’poly.pickle’)<br />

wan.translate_all_to_cell((2, 0, 0))<br />

for i in range(wan.nwannier):<br />

wan.write_cube(i, ’polyacetylene_%i.cube’ % i)<br />

# Print Kohn-Sham bandstructure<br />

ef = calc.get_fermi_level()<br />

f = open(’KSbands.txt’, ’w’)<br />

for k, kpt_c in enumerate(calc.get_ibz_k_points()):<br />

for eps in calc.get_eigenvalues(kpt=k):<br />

print >> f, kpt_c[0], eps - ef<br />

# Print Wannier bandstructure<br />

f = open(’WANbands.txt’, ’w’)<br />

for k in np.linspace(-.5, .5, 100):<br />

for eps in np.linalg.eigvalsh(wan.get_hamiltonian_kpoint([k, 0, 0])).real:<br />

print >> f, k, eps - ef<br />

import pylab as pl<br />

fig = pl.figure(1, dpi=80, figsize=(4.2, 6))<br />

fig.subplots_adjust(left=.16, right=.97, top=.97, bottom=.05)<br />

# Plot KS bands<br />

k, eps = pl.load(’KSbands.txt’, unpack=True)<br />

pl.plot(k, eps, ’ro’, label=’DFT’, ms=9)<br />

# Plot Wannier bands<br />

k, eps = pl.load(’WANbands.txt’, unpack=True)<br />

pl.plot(k, eps, ’k.’, label=’Wannier’)<br />

pl.plot([-.5, .5], [1, 1], ’k:’, label=’_nolegend_’)<br />

pl.text(-.5, 1, ’fixedenergy’, ha=’left’, va=’bottom’)<br />

pl.axis(’tight’)<br />

pl.xticks([-.5, -.25, 0, .25, .5],<br />

44 Chapter 6. Tutorials

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

Saved successfully!

Ooh no, something went wrong!