ViennaFEM
A library-centric finite element solver written in C++
ViennaFEM is a free open-source implementation of a finite element solver for partial differential equations in C++. The library is built from several orthogonal components: ViennaCL for the linear solver (including GPU acceleration), ViennaData for storing quantities on the grid, which is handled by ViennaGrid, and ViennaMath as a symbolic math kernel used for automatically deriving the weak formulation of the provided PDE.
More information can be found at http://viennafem.sourceforge.net/