-
Notifications
You must be signed in to change notification settings - Fork 61
Closed
Labels
Description
This issue can be broken up in multiple steps:
- Transform the
atom_groupclass into a container for vectors of shapexxxx...,yyyy...andzzzz...for positions, velocities and total forces. - Change the
atomclass into an iterator of theatom_groupvectors, which implements for each property: (a) aproperty()accessor returning a copy of the corresponding property as a 3-vector, (b) aset_property()function that takes a 3-vector and writes it to corresponding location in theatom_groupvector, and (c) anincr_property()function. - Add pointers inside
atom_groupto vectors containing the gradients and fit gradients of each CVC and of each of its components (e.g.xthroughzfor vector-valued CVCs). For CVCs that are affected by the fit, gradients and fit gradients should be requested at the same time to the atom group. For those that don't. - Add laboratory-frame versions of the above if useful.
- Implement exceptions to the above for those CVCs like
distancePairswhere the number of components is prohibitive. - Collect pointers to all of the above (positions, total forces, gradients, fit gradients) into a single class (nested in the
atom_groupnamespace), together with a unique integer allowing a CVC to search the corresponding object in the atom group. This should allow quick access and garbage collection when a CVC is deleted but not the atom group.
Reactions are currently unavailable