Statistiques
| Révision :

root / ase / test / CO2_Au111.py @ 1

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

1
from math import sqrt, pi
2
from ase import Atoms
3
from ase.calculators.emt import EMT
4
from ase.constraints import FixBondLengths
5
from ase.optimize import BFGS, QuasiNewton
6
from ase.neb import SingleCalculatorNEB
7
from ase.lattice.surface import fcc111, add_adsorbate
8
from math import sqrt, cos, sin
9

    
10

    
11
zpos = cos(134.3/2.0*pi/180.0)*1.197
12
xpos = sin(134.3/2.0*pi/180.0)*1.19
13
co2 = Atoms('COO', positions=[(-xpos+1.2,0,-zpos),
14
                              (-xpos+1.2,-1.1,-zpos),
15
                              (-xpos+1.2,1.1,-zpos)])
16

    
17
slab = fcc111('Au', size=(2, 2, 4), vacuum=2*5, orthogonal=True)
18
slab.center()
19
add_adsorbate(slab,co2,1.5,'bridge')
20
slab.set_pbc((True,True,False))
21
d0 = co2.get_distance(-3, -2)
22
d1 = co2.get_distance(-3, -1)
23

    
24
calc = EMT()
25
slab.set_calculator(calc)
26
constraint = FixBondLengths([[-3,-2],[-3,-1]])
27
slab.set_constraint(constraint)
28
dyn = BFGS(slab, trajectory='relax.traj')
29
dyn.run(fmax=0.05)
30
assert abs(co2.get_distance(-3, -2) - d0) < 1e-14
31
assert abs(co2.get_distance(-3, -1) - d1) < 1e-14