ViennaFEM is a free open-source library-centric C++ implementation of the finite element method for the solution of partial differential equations. It is built on top of the symbolic math kernel library ViennaMath and allows for a convenient specification of the strong or weak formulation, from which the necessary assembly routines are derived automatically. Read more about ViennaFEM and have a look at the examples.