Statistiques
| Révision :

root / ase / test / emt1.py @ 1

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

1 1 tkerber
from ase import Atoms
2 1 tkerber
from ase.calculators.emt import EMT
3 1 tkerber
from ase.constraints import FixBondLength
4 1 tkerber
from ase.io import PickleTrajectory
5 1 tkerber
from ase.optimize import BFGS
6 1 tkerber
7 1 tkerber
a = 3.6
8 1 tkerber
b = a / 2
9 1 tkerber
cu = Atoms('Cu2Ag',
10 1 tkerber
           positions=[(0, 0, 0),
11 1 tkerber
                      (b, b, 0),
12 1 tkerber
                      (a, a, b)],
13 1 tkerber
           calculator=EMT())
14 1 tkerber
e0 = cu.get_potential_energy()
15 1 tkerber
print e0
16 1 tkerber
17 1 tkerber
d0 = cu.get_distance(0, 1)
18 1 tkerber
cu.set_constraint(FixBondLength(0, 1))
19 1 tkerber
t = PickleTrajectory('cu2ag.traj', 'w', cu)
20 1 tkerber
qn = BFGS(cu)
21 1 tkerber
qn.attach(t.write)
22 1 tkerber
def f(): print cu.get_distance(0,1)
23 1 tkerber
qn.attach(f)
24 1 tkerber
qn.run(fmax=0.01)
25 1 tkerber
assert abs(cu.get_distance(0, 1) - d0) < 1e-14