Statistiques
| Révision :

root / ase / test / basin.py @ 13

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

1 1 tkerber
import numpy as np
2 1 tkerber
from math import pi, sqrt
3 1 tkerber
from ase import Atoms
4 1 tkerber
from ase.calculators.lj import LennardJones
5 1 tkerber
from ase.optimize.basin import BasinHopping
6 1 tkerber
from ase.io import PickleTrajectory, read
7 1 tkerber
from ase.units import kB
8 1 tkerber
9 1 tkerber
N = 7
10 1 tkerber
R = N**(1./3.)
11 1 tkerber
pos = np.random.uniform(-R, R, (N, 3))
12 1 tkerber
s = Atoms('He' + str(N),
13 1 tkerber
          positions = pos)
14 1 tkerber
s.set_calculator(LennardJones())
15 1 tkerber
16 1 tkerber
ftraj = 'lowest.traj'
17 1 tkerber
traj = PickleTrajectory(ftraj, 'w', s)
18 1 tkerber
bh = BasinHopping(s,
19 1 tkerber
                  temperature=100 * kB, dr=0.5,
20 1 tkerber
                  optimizer_logfile=None)
21 1 tkerber
bh.attach(traj)
22 1 tkerber
bh.run(10)
23 1 tkerber
24 1 tkerber
Emin, smin = bh.get_minimum()
25 1 tkerber
26 1 tkerber
# recalc energy
27 1 tkerber
smin.set_calculator(LennardJones())
28 1 tkerber
E = smin.get_potential_energy()
29 1 tkerber
assert abs(E - Emin) < 1e-15
30 1 tkerber
traj.close()
31 1 tkerber
smim = read(ftraj)
32 1 tkerber
E = smin.get_potential_energy()
33 1 tkerber
assert abs(E - Emin) < 1e-15
34 1 tkerber
35 1 tkerber
#view(smin)