"swarm" - A DM object used to represent arrays of data (fields) of arbitrary data type. This implementation was designed for particle methods in which the underlying data required to be represented is both (i) dynamic in length, (ii) and of arbitrary data type. User data can be represented by DMSwarm through a registering "fields".
To register a field, the user must provide;
(a) a unique name;
(b) the data type (or size in bytes);
(c) the block size of the data.

For example, suppose the application requires a unique id, energy, momentum and density to be stored
on a set of of particles. Then the following code could be used