-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Atm, it isn't very clear (on our side of the schema), wrt to which parent a subsystem is defined:
particle_indices = Quantity(
type=np.int32,
shape=['*'],
description="""
Indices of the particles/atoms in the child with respect to its parent. Example:
- We have SrTiO3, where `AtomicCell.labels = ['Sr', 'Ti', 'O', 'O', 'O']`. If
we create a `model_system` child for the `'Ti'` atom only, then in that child
`ModelSystem.sub_systems[0].particle_indices = [1]`. If now we want to refer both to
the `'Ti'` and the last `'O'` atoms, `ModelSystem.sub_systems[0].particle_indices = [1, 4]`.
""",
)Does this mean a) wrt to the direct parent, or b) the top-level parent. There are pros and cons to either:
- In option a), it's easier to programmatically extract the direct parent.
- In option b), the
particle_indiceswill be subsets of the top-level parent. Direct parent, meanwhile, may modify said indices, due to changed ordering.
Option b) seems more in line with what we have been doing atm. The particle_states, for example, are already well-defined at the top-level. The labels and particle_indices already manage the rest of the mapping.
Note: particle_indices kinda confused me with the naming. Maybe particle_label_mapping is more descriptive?