The DIME software was written by Roy Williams, and the CP work is published in [Baillie:90e], [Williams:87a;87b;88a;88d;89c;90b].
DIME has evolved recently into something rather more general: instead of a set of explicitly triangular elements which have access to the three nodes around them, the new language DIME++ has the idea of a set of objects that have an index to another set of objects. Just as DIME is able to refine its mesh dynamically, and load-balance the mesh, so in DIME++ the indices may be created and modified dynamically and the sets load-balanced [Williams:91a;91c;92a;93b].
This more general formulation of the interface frees the system from explicitly triangular meshes, and greatly expands and generalizes the range of problems that can be addressed: higher dimensions, different kinds of elements, multigrid, graph problems, and multiblock. Instead of linked lists, DIME++ stores data in long vectors for maximum efficiency; it is written as a C++ class library for extensibility and polymorphism.