AceGen is a Mathematica package for automatic code generation, focused on finite element method subroutines.

The Mathematica package AceGen is used for the automatic derivation of formulae needed in numerical procedures. An approach, implemented in AceGen, avoids the problem of expression swell by combining: symbolic and algebraic capabilities of Mathematica, automatic differentiation technique, automatic code generation and simultaneous optimization of expressions. The multi-language capabilities of AceGen (C, FORTRAN, Mathematica©, MATLAB©,..) enable generation of numerical codes for various numerical environments (AceFEM, MATLAB©, FEAP©, ABAQUS©, ... ) from the same symbolic description.

If asking about AceFEM as well, please add the tag.