MDANSE
MDANSE copied to clipboard
[ENHANCEMENT] Trajectory and chemical system refactor.
Both the trajectory and chemical system object codes are both quite convoluted and need either replacement or some refactoring. Here are some problem with the chemical entity and trajectory objects that I have thought of so far.
- Bonding is set in the atom objects using a list of atoms. This makes adding and then tracking bonding more difficult. This is unintuitive, the bonding should be stored in an object which contains the atoms e.g. the molecule object.
- The chemical entity is time-independent and never changes. There could be cases where the molecule dynamics simulation makes or breaks bonds. This would mean that the chemical entity objects would need to change over time.
- The trajectory object treats some data as time dependent or independent e.g. bonding is time-independent and the unit cell is time-dependent. However the trajectory object should be able to support either possibility. For example, we may be given an input trajectory with only a single unit cell so that we'd have a time-independent unit cell.
- It will be useful for the trajectory or chemical entity objects to know whether an atom belongs to some bulk structure or molecule for atom selection or other purposes.
- For large trajectories loading from the HDF file can be slow because of the literal_eval calls when building the atoms objects.
- The current trajectory object is unable to deal with trajectories from PIMD simulations.
Both objects are quiet central to the whole MDANSE code and would be difficult to replace easily but I think we should begin a discussion on its possible replacement.