The idea is to have a real Molecule type, containing both bonding informations and particles. This means that functions needing particle information (center_of_mass, wrap, ...) can be implemented directly on the Molecule type.
Because the particles are stored in a SoA fashion inside the system, this also adds the MoleculeRef and MoleculeRefMut types, which are analogues to &Molecule and &mut Molecule, with data pointing inside a System.
This implement the end of #18, specifically the strategy in https://github.com/lumol-org/lumol/issues/18#issuecomment-268860305.
The idea is to have a real
Molecule
type, containing both bonding informations and particles. This means that functions needing particle information (center_of_mass, wrap, ...) can be implemented directly on the Molecule type.Because the particles are stored in a SoA fashion inside the system, this also adds the
MoleculeRef
andMoleculeRefMut
types, which are analogues to&Molecule
and&mut Molecule
, with data pointing inside a System.