Draft: Improve orbit interface
Description
Improve the interface for OrbitList
and Orbit
to facilitate inspection and merging of orbits.
MWE
from icet import ClusterSpace
from ase.build import fcc111
prim = fcc111('Pd', (1,1,6), 4.0, vacuum=10.0, periodic=True)
cs = ClusterSpace(structure=prim,
cutoffs=[3.0],
chemical_symbols=['Au', 'Pd'])
surface_sites = [0, 5]
for i, orbit in enumerate(cs.orbit_list):
# Print properties of representative cluster (the corresponding properties
# for all clusters are available by adding `all_` in the beginning of the property name)
print(f'Orbit {i}')
print(f'Order: {orbit.order}')
print(f'Radius: {orbit.radius}')
print(f'Sites: {orbit.sites}')
print(f'Positions: {orbit.positions}')
print(f'Distances: {orbit.distances}')
print(f'Unit cell offsets: {orbit.site_offsets}')
if not np.any([site in surface_sites for site in orbit.sites]):
print('Merge')
if np.any([dist > 4.0 for dist in orbit.distances]):
print('Prune')
print()
Additional information
#565
Edited by Pernilla Ekborg-Tanner