Statistiques
| Révision :

root / ase / gui / neb.py @ 19

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

1 1 tkerber
# -*- coding: utf-8 -*-
2 1 tkerber
from math import sqrt
3 1 tkerber
4 1 tkerber
import numpy as np
5 1 tkerber
6 1 tkerber
from ase.neb import fit0
7 1 tkerber
8 1 tkerber
def NudgedElasticBand(images):
9 1 tkerber
    N = images.repeat.prod()
10 1 tkerber
    natoms = images.natoms // N
11 1 tkerber
12 1 tkerber
    R = images.P[:, :natoms]
13 1 tkerber
    E = images.E
14 1 tkerber
    F = images.F[:, :natoms]
15 1 tkerber
16 1 tkerber
    s, E, Sfit, Efit, lines = fit0(E, F, R)
17 1 tkerber
    import pylab
18 1 tkerber
    import matplotlib
19 1 tkerber
    #matplotlib.use('GTK')
20 1 tkerber
    pylab.ion()
21 1 tkerber
    x = 2.95
22 1 tkerber
    pylab.figure(figsize=(x * 2.5**0.5, x))
23 1 tkerber
    pylab.plot(s, E, 'o')
24 1 tkerber
    for x, y in lines:
25 1 tkerber
        pylab.plot(x, y, '-g')
26 1 tkerber
    pylab.plot(Sfit, Efit, 'k-')
27 1 tkerber
    pylab.xlabel(u'path [Å]')
28 1 tkerber
    pylab.ylabel(u'energy [eV]')
29 1 tkerber
    pylab.title('Maximum: %.3f eV' % max(Efit))
30 1 tkerber
    pylab.show()