ViennaFEM
A finite element solver using state-of-the-art programming techniques.
ViennaFEM is a library-centric implementation of the finite element method in C++. It features a symbolic math kernel, which manipulates the strong or weak form of the problem and automatically derives the discrete form.
ViennaFEM is built on top of the following libraries: ViennaMath provides the symbolic math kernel, ViennaGrid (with ViennaData) allows for a generic grid handling and quantity storage, while ViennaCL provides the linear solvers and GPU acceleration.