The finite element method (FEM) package SyFi is a C++ library built on top of the symbolic math library GiNaC. The name SyFi stands for Symbolic Finite Elements. The package provides polygonal domains, polynomial spaces, and degrees of freedom as symbolic expressions that are easily manipulated. This makes it easy to define finite elements and variational forms. These elements and forms are then used to generate efficient C++ code.
SyFi is a component of the FEniCS project, see http://www.fenicsproject.org.