ELEMENTS documentation

The ELEMENTS library, written in C++, is a collection of sub-libraries that support the implementation of a diverse range of numerical methods on low and high-order meshes. The ELEMENTS library can be used for research and development of both continuous and discontinuous finite element methods, as well as finite volume methods to solve a diverse range of partial differential equations.

The ELEMENTS library includes the following sub-libraries:

  • MATAR contains the routines to support dense and sparse matrices and arrays;

  • SLAM contains the interfaces to solvers, linear algebra, and mathematical routines or external packages (e.g., Trilinos);

  • elements contains the mathematical functions to support a large range of elements types including serendipity elements;

  • SWAGE contains the routines and data-structures to support unstructured arbitrary-order 3D meshes that move or remain stationary; and

  • geometry combines together SWAGE and elements.

The ELEMENTS libary is designed to support Lagrangian (mesh moves) solid dynamics and mechanics codes, Eulerian (mesh is stationary) fluid dynamics codes, and many other code applications.

_images/codeStructureELEMENTS.png

Code layout

_images/TaylorGreenVortex-t0.png

Lagrangian mesh

_images/TaylorGreenVortex-tEnd.png

Lagrangian mesh deformed with Taylor-Green vortex

Indices and tables