Statistiques
| Révision :

root / ase / test / io.py @ 13

Historique | Voir | Annoter | Télécharger (1,4 ko)

1 1 tkerber
import numpy as np
2 1 tkerber
from ase import Atoms
3 1 tkerber
from ase.io import write, read
4 1 tkerber
5 1 tkerber
a = 5.0
6 1 tkerber
d = 1.9
7 1 tkerber
c = a / 2
8 1 tkerber
atoms = Atoms('AuH',
9 1 tkerber
              positions=[(c, c, 0), (c, c, d)],
10 1 tkerber
              cell=(a, a, 2 * d),
11 1 tkerber
              pbc=(0, 0, 1))
12 1 tkerber
extra = np.array([ 2.3, 4.2 ])
13 1 tkerber
atoms.set_array("extra", extra)
14 1 tkerber
atoms *= (1, 1, 2)
15 1 tkerber
images = [atoms.copy(), atoms.copy()]
16 1 tkerber
r = ['xyz', 'traj', 'cube', 'pdb', 'cfg', 'struct']
17 1 tkerber
w = r + ['xsf']
18 1 tkerber
try:
19 1 tkerber
    import matplotlib
20 1 tkerber
except ImportError:
21 1 tkerber
    pass
22 1 tkerber
else:
23 1 tkerber
    w += ['png', 'eps']
24 1 tkerber
25 1 tkerber
for format in w:
26 1 tkerber
    print format, 'O',
27 1 tkerber
    fname1 = 'io-test.1.' + format
28 1 tkerber
    fname2 = 'io-test.2.' + format
29 1 tkerber
    write(fname1, atoms, format=format)
30 1 tkerber
    if format not in ['cube', 'png', 'eps', 'cfg', 'struct']:
31 1 tkerber
        write(fname2, images, format=format)
32 1 tkerber
33 1 tkerber
    if format in r:
34 1 tkerber
        print 'I'
35 1 tkerber
        a1 = read(fname1)
36 1 tkerber
        assert np.all(np.abs(a1.get_positions() -
37 1 tkerber
                             atoms.get_positions()) < 1e-6)
38 1 tkerber
        if format in ['traj', 'cube', 'cfg', 'struct']:
39 1 tkerber
            assert np.all(np.abs(a1.get_cell() - atoms.get_cell()) < 1e-6)
40 1 tkerber
        if format in ['cfg']:
41 1 tkerber
            assert np.all(np.abs(a1.get_array('extra') -
42 1 tkerber
                                 atoms.get_array('extra')) < 1e-6)
43 1 tkerber
        if format not in ['cube', 'png', 'eps', 'cfg', 'struct']:
44 1 tkerber
            a2 = read(fname2)
45 1 tkerber
            a3 = read(fname2, index=0)
46 1 tkerber
            a4 = read(fname2, index=slice(None))
47 1 tkerber
    else:
48 1 tkerber
        print