Memory management

The PPM library only allocates memory for its internal lists and communication buffers. All other memory, such as simulation data (particles, fields) and index lists (cell lists, Verlet lists, etc.), are held by the client application. This ensures user-control over the data and allows multiple different sets of particles, connections, and fields to be used concurrently. The number of topologies, sub-domains, particle sets, fields, and meshes is only limited by the available memory capacity.