|
|
Line 5: |
Line 5: |
| ==Metallic (9,0) CNT using LCAO== | | ==Metallic (9,0) CNT using LCAO== |
|
| |
|
| *zgnr_lcao.py: | | *cnt9-0_lcao.py: |
|
| |
|
| <pre> | | <pre> |
| from gpaw import GPAW, FermiDirac
| |
| from ase import Atoms
| |
| from ase.io import read, write
| |
| from gpaw import GPAW, PoissonSolver, Mixer
| |
| from ase.structure import graphene_nanoribbon
| |
|
| |
|
| | </pre> |
|
| |
|
| # -------------------------------------------------------------
| | ==Semiconducting (10,0) CNT using LCAO== |
| # Bulk configuration
| |
| # -------------------------------------------------------------
| |
| | |
| zgnr = graphene_nanoribbon(8, 1, type='zigzag', saturated=True,
| |
| C_H=1.1, C_C=1.42086, vacuum=8.0,
| |
| magnetic=False, initial_mag=0.0)
| |
| | |
| zgnr.center()
| |
| write('zgnr.traj', zgnr)
| |
| | |
| | |
| # Make self-consistent calculation and save results
| |
| calc = GPAW(h=0.18,
| |
| mode='lcao',
| |
| xc='PBE',
| |
| basis='szp(dzp)',
| |
| kpts=(1,1,9),
| |
| occupations=FermiDirac(width=0.05, maxiter=2000),
| |
| mixer=Mixer(beta=0.010, nmaxold=8, weight=100.0),
| |
| poissonsolver=PoissonSolver(eps=1e-12),
| |
| txt='band_sc.txt')
| |
| | |
| zgnr.set_calculator(calc)
| |
| zgnr.get_potential_energy()
| |
| calc.write('band_sc.gpw')
| |
| | |
| | |
| # Calculate band structure along Gamma-X
| |
| from ase.dft.kpoints import ibz_points, get_bandpath
| |
| G = (0, 0, 0)
| |
| X = (0, 0, 0.5)
| |
| kpts, x, X = get_bandpath([G, X], zgnr.cell, 60)
| |
| | |
| calc = GPAW('band_sc.gpw',
| |
| mode='lcao',
| |
| xc='PBE',
| |
| basis='szp(dzp)',
| |
| kpts=kpts,
| |
| txt='band_harris.txt',
| |
| fixdensity=True,
| |
| parallel={'domain': 1},
| |
| usesymm=None,
| |
| convergence={'bands': 'all'})
| |
| | |
| if calc.input_parameters['mode'] == 'lcao':
| |
| calc.scf.reset()
| |
|
| |
|
| calc.get_potential_energy()
| |
| calc.write('band_harris.gpw')
| |
| </pre>
| |
|
| |
| *find_band_dat.py
| |
| <pre> | | <pre> |
| from ase.lattice import bulk
| |
| from gpaw import GPAW
| |
|
| |
| calc = GPAW('band_harris', txt=None)
| |
| import numpy as np
| |
|
| |
| eps_skn = np.array([[calc.get_eigenvalues(k,s)
| |
| for k in range(60)]
| |
| for s in range(1)]) + 6.23712
| |
|
| |
|
| for n in range(66):
| |
| for k in range(60):
| |
| print k, eps_skn[0, k, n]
| |
| print
| |
| </pre> | | </pre> |