root / ase / test / neb.py @ 1
Historique | Voir | Annoter | Télécharger (695 octet)
1 | 1 | tkerber | from ase.io import PickleTrajectory |
---|---|---|---|
2 | 1 | tkerber | from ase.neb import NEB |
3 | 1 | tkerber | from ase.calculators.lj import LennardJones |
4 | 1 | tkerber | from ase.optimize import QuasiNewton |
5 | 1 | tkerber | |
6 | 1 | tkerber | print [a.get_potential_energy() for a in PickleTrajectory('H.traj')] |
7 | 1 | tkerber | images = [PickleTrajectory('H.traj')[-1]] |
8 | 1 | tkerber | for i in range(4): |
9 | 1 | tkerber | images.append(images[0].copy())
|
10 | 1 | tkerber | images[-1].positions[6, 1] = 2 - images[0].positions[6, 1] |
11 | 1 | tkerber | neb = NEB(images) |
12 | 1 | tkerber | neb.interpolate() |
13 | 1 | tkerber | |
14 | 1 | tkerber | for image in images: |
15 | 1 | tkerber | image.set_calculator(LennardJones()) |
16 | 1 | tkerber | |
17 | 1 | tkerber | for a in neb.images: |
18 | 1 | tkerber | print a.positions[-1], a.get_potential_energy() |
19 | 1 | tkerber | |
20 | 1 | tkerber | dyn = QuasiNewton(neb, trajectory='mep.traj')
|
21 | 1 | tkerber | print dyn.run(fmax=0.01, steps=25) |
22 | 1 | tkerber | for a in neb.images: |
23 | 1 | tkerber | print a.positions[-1], a.get_potential_energy() |