OOFEM is a free and open-source multi-physics finite element code with object oriented architecture. The aim of the project is to provide a tool for FEM computations, as well as to offer a modular environment for development.
Direct as well as iterative solvers are available. Direct solvers include symmetric and unsymmetric skyline solver and sparse direct solver. Iterative solvers support many sparse storage formats and come with various preconditioners. Interfaces to third party linear and eigen value solver libraries are available, including IML, PETSc, SLEPc, and SPOOLES.
↑B. Patzák and M. Jirásek. Adaptive resolution of localized damage in quasibrittle materials. Journal of Engineering Mechanics Division ASCE, 130:720--732, 2004.
↑B. Patzák and D. Rypl. Object-oriented, parallel finite element framework with dynamic load balancing. Advances in Engineering Software, 47(1):35 -- 50, 2012.
↑R. Chamrová and B. Patzák: Object-oriented programming and the extended finite-element method. Engineering and Computational Mechanics, 163(EM4):271--278, 2010.
↑D. Rypl and B. Patzák: From the finite element analysis to the isogeometric analysis in an object oriented computing environment, Advances in Engineering Software, 44(1):116 -- 125, 2012. doi:10.1016/j.advengsoft.2011.05.032.