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.
<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