Sundance is a system for rapid development of parallel finite-element simulations. A problem can be described using high-level objects that represent the geometry, equation set, and discretization method; it is then discretized and solved.
A user's guide is available in both HTML and postscript forms.
Here are some reasonably well-commented examples.
In typical applications, the user will need only a small subset of the classes. Those classes intended for general use are documented in the User Level Class Documentation.
Sundance is designed to be extensible. Advanced users can add their own objects such as basis functions, cell geometry types, linear solvers, or I/O file formats. For those who want to extend Sundance, or who are simply curious about its inner workings, the internal classes are described in the Low-Level Class Documentation.