40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
|
import ase.io as io
|
||
|
from ase.build import cut
|
||
|
from ase.spacegroup import crystal
|
||
|
|
||
|
|
||
|
|
||
|
a = 9.04
|
||
|
skutterudite = crystal(('Co', 'Sb'),
|
||
|
basis=[(0.25, 0.25, 0.25), (0.0, 0.335, 0.158)],
|
||
|
spacegroup=204,
|
||
|
cellpar=[a, a, a, 90, 90, 90])
|
||
|
|
||
|
# Create a new atoms instance with Co at origo including all atoms on the
|
||
|
# surface of the unit cell
|
||
|
cosb3 = cut(skutterudite, origo=(0.25, 0.25, 0.25), extend=1.01)
|
||
|
|
||
|
# Define the atomic bonds to show
|
||
|
bondatoms = []
|
||
|
symbols = cosb3.get_chemical_symbols()
|
||
|
for i in range(len(cosb3)):
|
||
|
for j in range(i):
|
||
|
if (symbols[i] == symbols[j] == 'Co' and
|
||
|
cosb3.get_distance(i, j) < 4.53):
|
||
|
bondatoms.append((i, j))
|
||
|
elif (symbols[i] == symbols[j] == 'Sb' and
|
||
|
cosb3.get_distance(i, j) < 2.99):
|
||
|
bondatoms.append((i, j))
|
||
|
|
||
|
# Create nice-looking image using povray
|
||
|
renderer = io.write('spacegroup-cosb3.pov', cosb3,
|
||
|
rotation='90y',
|
||
|
radii=0.4,
|
||
|
povray_settings=dict(transparent=False,
|
||
|
camera_type='perspective',
|
||
|
canvas_width=320,
|
||
|
bondlinewidth=0.07,
|
||
|
bondatoms=bondatoms))
|
||
|
|
||
|
renderer.render()
|