Statistiques
| Révision :

root / ase / test / crystal.py @ 1

Historique | Voir | Annoter | Télécharger (2,51 ko)

1 1 tkerber
import numpy as np
2 1 tkerber
3 1 tkerber
from ase.lattice.spacegroup import crystal
4 1 tkerber
5 1 tkerber
6 1 tkerber
# A diamond unit cell
7 1 tkerber
diamond = crystal('C', [(0,0,0)], spacegroup=227,
8 1 tkerber
                  cellpar=[3.57, 3.57, 3.57, 90, 90, 90])
9 1 tkerber
10 1 tkerber
assert len(diamond) == 8
11 1 tkerber
correct_pos = np.array([[ 0.  ,  0.  ,  0.  ],
12 1 tkerber
                        [ 0.  ,  0.5 ,  0.5 ],
13 1 tkerber
                        [ 0.5 ,  0.5 ,  0.  ],
14 1 tkerber
                        [ 0.5 ,  0.  ,  0.5 ],
15 1 tkerber
                        [ 0.75,  0.25,  0.75],
16 1 tkerber
                        [ 0.25,  0.25,  0.25],
17 1 tkerber
                        [ 0.25,  0.75,  0.75],
18 1 tkerber
                        [ 0.75,  0.75,  0.25]])
19 1 tkerber
assert np.allclose(diamond.get_scaled_positions(), correct_pos)
20 1 tkerber
21 1 tkerber
22 1 tkerber
23 1 tkerber
# A CoSb3 skutterudite unit cell containing 32 atoms
24 1 tkerber
skutterudite = crystal(('Co', 'Sb'),
25 1 tkerber
    basis=[(0.25,0.25,0.25), (0.0, 0.335, 0.158)],
26 1 tkerber
    spacegroup=204, cellpar=[9.04, 9.04, 9.04, 90, 90, 90])
27 1 tkerber
28 1 tkerber
assert len(skutterudite) == 32
29 1 tkerber
30 1 tkerber
correct_pos = np.array([[ 0.25 ,  0.25 ,  0.25 ],
31 1 tkerber
                        [ 0.75 ,  0.75 ,  0.25 ],
32 1 tkerber
                        [ 0.75 ,  0.25 ,  0.75 ],
33 1 tkerber
                        [ 0.25 ,  0.75 ,  0.75 ],
34 1 tkerber
                        [ 0.75 ,  0.75 ,  0.75 ],
35 1 tkerber
                        [ 0.25 ,  0.25 ,  0.75 ],
36 1 tkerber
                        [ 0.25 ,  0.75 ,  0.25 ],
37 1 tkerber
                        [ 0.75 ,  0.25 ,  0.25 ],
38 1 tkerber
                        [ 0.   ,  0.335,  0.158],
39 1 tkerber
                        [ 0.   ,  0.665,  0.158],
40 1 tkerber
                        [ 0.   ,  0.335,  0.842],
41 1 tkerber
                        [ 0.   ,  0.665,  0.842],
42 1 tkerber
                        [ 0.158,  0.   ,  0.335],
43 1 tkerber
                        [ 0.158,  0.   ,  0.665],
44 1 tkerber
                        [ 0.842,  0.   ,  0.335],
45 1 tkerber
                        [ 0.842,  0.   ,  0.665],
46 1 tkerber
                        [ 0.335,  0.158,  0.   ],
47 1 tkerber
                        [ 0.665,  0.158,  0.   ],
48 1 tkerber
                        [ 0.335,  0.842,  0.   ],
49 1 tkerber
                        [ 0.665,  0.842,  0.   ],
50 1 tkerber
                        [ 0.5  ,  0.835,  0.658],
51 1 tkerber
                        [ 0.5  ,  0.165,  0.658],
52 1 tkerber
                        [ 0.5  ,  0.835,  0.342],
53 1 tkerber
                        [ 0.5  ,  0.165,  0.342],
54 1 tkerber
                        [ 0.658,  0.5  ,  0.835],
55 1 tkerber
                        [ 0.658,  0.5  ,  0.165],
56 1 tkerber
                        [ 0.342,  0.5  ,  0.835],
57 1 tkerber
                        [ 0.342,  0.5  ,  0.165],
58 1 tkerber
                        [ 0.835,  0.658,  0.5  ],
59 1 tkerber
                        [ 0.165,  0.658,  0.5  ],
60 1 tkerber
                        [ 0.835,  0.342,  0.5  ],
61 1 tkerber
                        [ 0.165,  0.342,  0.5  ]])
62 1 tkerber
63 1 tkerber
assert np.allclose(skutterudite.get_scaled_positions(), correct_pos)