Statistiques
| Révision :

root / ase / test / basin.py @ 13

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

1
import numpy as np
2
from math import pi, sqrt
3
from ase import Atoms
4
from ase.calculators.lj import LennardJones
5
from ase.optimize.basin import BasinHopping
6
from ase.io import PickleTrajectory, read
7
from ase.units import kB
8

    
9
N = 7
10
R = N**(1./3.)
11
pos = np.random.uniform(-R, R, (N, 3))
12
s = Atoms('He' + str(N),
13
          positions = pos)
14
s.set_calculator(LennardJones())
15

    
16
ftraj = 'lowest.traj'
17
traj = PickleTrajectory(ftraj, 'w', s)
18
bh = BasinHopping(s, 
19
                  temperature=100 * kB, dr=0.5, 
20
                  optimizer_logfile=None)
21
bh.attach(traj)
22
bh.run(10)
23

    
24
Emin, smin = bh.get_minimum()
25

    
26
# recalc energy
27
smin.set_calculator(LennardJones())
28
E = smin.get_potential_energy()
29
assert abs(E - Emin) < 1e-15
30
traj.close()
31
smim = read(ftraj)
32
E = smin.get_potential_energy()
33
assert abs(E - Emin) < 1e-15
34

    
35
#view(smin)