Statistiques
| Révision :

root / ase / optimize / test / CO_Au111.py @ 1

Historique | Voir | Annoter | Télécharger (870 octet)

1 1 tkerber
from math import sin, cos, pi
2 1 tkerber
from ase import Atoms
3 1 tkerber
from ase.calculators.emt import EMT
4 1 tkerber
from ase.constraints import FixAtoms
5 1 tkerber
from ase.optimize.test import run_test
6 1 tkerber
from ase.lattice.surface import fcc111, add_adsorbate
7 1 tkerber
8 1 tkerber
name = 'CO_Au111'
9 1 tkerber
10 1 tkerber
def get_atoms():
11 1 tkerber
    zpos = cos(134.3/2.0*pi/180.0)*1.197
12 1 tkerber
    xpos = sin(134.3/2.0*pi/180.0)*1.19
13 1 tkerber
    no2 =Atoms('CO', positions=[(-xpos+1.2,0,-zpos), (-xpos+1.2,-1.1,-zpos)])
14 1 tkerber
15 1 tkerber
    # Surface slab
16 1 tkerber
    slab =fcc111('Au', size=(2, 2, 4),vacuum=2*5, orthogonal = True )
17 1 tkerber
    slab.center()
18 1 tkerber
    add_adsorbate(slab,no2,1.5,'bridge')
19 1 tkerber
    slab.set_pbc((True,True,False))
20 1 tkerber
21 1 tkerber
    #constraints
22 1 tkerber
    constraint = FixAtoms(mask=[(a.tag == 4) or (a.tag == 3) or (a.tag==2) for a in slab])
23 1 tkerber
    slab.set_constraint(constraint)
24 1 tkerber
    return slab
25 1 tkerber
26 1 tkerber
def get_calculator():
27 1 tkerber
    calc = EMT()
28 1 tkerber
    return calc
29 1 tkerber
30 1 tkerber
run_test(get_atoms, get_calculator, name, steps=200)