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) |