root / ase / test / neb.py @ 4
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() |