Clarify association of ECIs with species in the case of multiple sub-lattices
Description
Consider a situation, in which a cluster expansion is constructed for a system with multiple sublattices. As a user I would like to know, which species are associated with each ECI.
For illustration
from ase.build import bulk
from icet import ClusterSpace
prim = bulk('MgO', crystalstructure='rocksalt', a=6.0)
species = [['Zn', 'Ca'], ['O', 'S']]
cs = ClusterSpace(atoms=prim, cutoffs=[7.0], chemical_symbols=species)
print(cs)
yields
=============================== Cluster Space ================================
chemical species: ['Zn', 'Ca'] ['O', 'S']
cutoffs: 7.0000
total number of orbits: 10
number of orbits by order: 0= 1 1= 2 2= 7
------------------------------------------------------------------------------
index | order | radius | multiplicity | orbit_index | multi_component_vector
------------------------------------------------------------------------------
0 | 0 | 0.0000 | 1 | -1 | .
1 | 1 | 0.0000 | 1 | 0 | [0]
2 | 1 | 0.0000 | 1 | 1 | [0]
3 | 2 | 1.5000 | 6 | 2 | [0, 0]
4 | 2 | 2.1213 | 6 | 3 | [0, 0]
5 | 2 | 2.1213 | 6 | 4 | [0, 0]
6 | 2 | 2.5981 | 8 | 5 | [0, 0]
7 | 2 | 3.0000 | 3 | 6 | [0, 0]
8 | 2 | 3.0000 | 3 | 7 | [0, 0]
9 | 2 | 3.3541 | 24 | 8 | [0, 0]
==============================================================================
There are two singlets corresponding to the two sublattices. How do I tell them apart?
The pair at 1.5 is the first mixed interaction (lattice A-lattice B).
The pairs at 2.1213 are for the respective sublattice interactions (A-A and B-B). How can I tell those apart (the multi-component vectors are the same)?
Suggested solution (based on discussion below)
=============================== Cluster Space ================================
chemical species: ['Zn', 'Ca'] (sublattice A), ['O', 'S'] (sublattice B)
cutoffs: 7.0000
total number of orbits: 10
number of orbits by order: 0= 1 1= 2 2= 7
--------------------------------------------------------------------------------------------
index | order | radius | multiplicity | orbit_index | multi_component_vector | sublattice
-------------------------------------------------------------------------------------------
0 | 0 | 0.0000 | 1 | -1 | . |
1 | 1 | 0.0000 | 1 | 0 | [0] | A
2 | 1 | 0.0000 | 1 | 1 | [0] | B
3 | 2 | 1.5000 | 6 | 2 | [0, 0] | A-A
4 | 2 | 2.1213 | 6 | 3 | [0, 0] | B-B
5 | 2 | 2.1213 | 6 | 4 | [0, 0] | A-B
6 | 2 | 2.5981 | 8 | 5 | [0, 0] | B-B
7 | 2 | 3.0000 | 3 | 6 | [0, 0] | A-B
8 | 2 | 3.0000 | 3 | 7 | [0, 0] | A-A
9 | 2 | 3.3541 | 24 | 8 | [0, 0] | A-A
=============================================================================================
The output of the multi-component vectors should be suppressed for binaries. Include sublattice index in Pandas dataframe for ECIs.
Demo
- if this information can be extracted with the existing functionality it should be documented (see #321 (closed))
- if not this issue should be used to create the functionality
Edited by Paul Erhart