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

# Define DZP basis set for Pt<br />

calc.set_fdf(’PAO.Basis’,<br />

["""\<br />

Pt 2 split 0.00 # Species label, number of l-shells<br />

n=6 0 2 P 1 # n, l, Nzeta, Polarization, NzetaPol<br />

0.00 0.00 # 0.0 => default [6.982 5.935 \n 1.000 1.000]<br />

n=5 2 2 # n, l, zeta<br />

0.00 0.00"""]) # 0.0 => default [5.172 3.060 \n 1.000 1.000]<br />

You can also reuse the basis set of a previous calculation, by copying the .ion files to the new location, and set the<br />

User.Basis tag to True:<br />

# Load basis from previous calc (*.ion files)<br />

calc.set_fdf(’User.Basis’, True)<br />

Warning: Specifying a basis set manually in any way will, for some obscure reason, make Siesta crash if you have<br />

ghost atoms!<br />

Pseudopotentials<br />

Pseudopotential files in the .psf or .vps formats are needed. Pseudopotentials generated from the ABINIT<br />

code and converted to the SIESTA format are available in the SIESTA website . A database of user contributed<br />

pseudopotentials is also available there.<br />

You can also find an on-line pseudopotential generator from the OCTOPUS code.<br />

Example<br />

Here is an example of how to calculate the total energy for bulk Silicon, using a double-zeta basis generated by<br />

specifying a given energy-shift:<br />

#!/usr/bin/env python<br />

from ase import *<br />

a0 = 5.43<br />

bulk = Atoms(’Si2’, [(0, 0, 0),<br />

(0.25, 0.25, 0.25)],<br />

pbc=True)<br />

b = a0 / 2<br />

bulk.set_cell([(0, b, b),<br />

(b, 0, b),<br />

(b, b, 0)], scale_atoms=True)<br />

calc = Siesta(label=’Si’,<br />

xc=’PBE’,<br />

meshcutoff=200 * Ry,<br />

basis=’dz’,<br />

mix=0.01,<br />

kpts=[10, 10, 10])<br />

calc.set_fdf(’PAO.EnergyShift’, 0.01 * Ry)<br />

bulk.set_calculator(calc)<br />

e = bulk.get_potential_energy()<br />

Here, the only input information on the basis set is, that it should be double-zeta (basis=’dz’) and that the confinement<br />

potential should result in an energy shift of 0.01 Rydberg (the PAO.EnergyShift fdf tag). Sometimes<br />

it can be necessary to specify more information on the basis set. For example, the default basis set generation fails<br />

for Pt for some versions of Siesta. To fix this, you must specify the basis set manually. <strong>Manual</strong> basis set specifications<br />

are described in Customized basis-set.<br />

116 Chapter 7. Documentation for modules in <strong>ASE</strong>

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

Saved successfully!

Ooh no, something went wrong!