OOFEM ChangeLog
This page details the release history of the OOFEM project, including new features, bug fixes, and architectural improvements.
Version 3.0 (2025-12-29)
- OOFEM 3.0 Released
- Code base modernized (
const,override,std::shared_ptr, etc.). - Improved and updated documentation (Input manual, Element, and Material library manuals).
- OOFEM Python bindings available (Pybind11 or nanobind based).
- Improved parallel performance when using OpenMP.
- Implemented XML-based input file reader.
- New Multi-physics module (MPM), symbolic mode allows defining the problem by specifying the weak form.
- Optionally use Eigen for vector/matrix operations via
_USE_EIGEN. - Enabled setting all nodal and element parameters via sets (initialization with priorities).
- Added GitHub Continuous Integration (Windows, Linux).
- Added support for Pyodide WebAssembly (WASM) builds.
- Added 2D and 3D Consolidation problems (MPM based).
- Added 2D and 3D Scalar Advection problems (Discrete Galerkin formulation, MPM based).
- Added new
vtkhdf5export module. - Added Additive Manufacturing module (G-Code emulator, thermal & mechanical analysis).
- Added
SolutionStatusExportModule. - Implemented
LayeredCrossSectionsupport for large strain analysis. - Added OneAPI support.
- Added p-delta analysis, approximate second-order structural analysis.
- Added interface to MFront Library.
- Integration of FTensor library, new hyper-elastic materials, and improvements to large-strain code.
- Added support for Monitors, user-defined components that can be updated at specific events during the solution.
- New time-step controller, enabling automatic adjustment of the time increment based on user-selected strategies.
- New generic contact mechanics framework, penalty method implementation.
Version 2.5 (2017-12-30)
- OOFEM 2.5 Released
- Added support for other sparse matrix storage schemes in nonlinear dynamic problems.
- Added linear and quadratic wedge elements for transport.
unv2oofemPython 3 support, added support for sets.boundarysurfaceloadsupport for CCT element.- Implementation of quasicontinuum.
PARDISO_ORGsparse solver supported.- Added support for artificial
drillStiffnessand layered cross-section on MITC element. - Added SuperLU_MT interface, new
-poption to set the number of threads. - 2D eikonal nonlocal damage model.
- Added new material models for concrete:
ConcreteFCM,FRCFCM, andFRCFCMNL. - Unified boundary load evaluation.
- Added linear nodal spring element, linear line-distributed spring element.
- Added subsoil elements.
Version 2.4 (2016-02-15)
- OOFEM 2.4 Released
- Added new
StaticStructural,TransientTransport, andWarpinganalyses, as well as a new Particle FEM CFD submodule. - MKL Pardiso solver support with optimized CSC implementation, support for block matrices in PETSc.
- New structural elements:
MITC4andtrshell02shells, 3D plane stress Almann element. - Added support for global condensation (fixes many issues on beam elements).
- Many improvements and bug-fixes.
Version 2.3 (2014-02-12)
- OOFEM 2.3 Released
- XFEM support for cracks in 2D including branch functions and coupling of cohesive zones with XFEM.
- XFEM elements:
TrPlaneStress2dXFEM(new) andPlaneStress2dXfem(major modifications). - Support for Sets: Usable for boundary conditions, cross-sections.
- FE^2 support for incompressible fluids with Dirichlet, Neumann, and periodic boundary conditions.
- Support for material orientations in layered cross-sections.
- Improved support for directly using OOFEM from within custom applications.
- Improved model for cement hydration.
- A new isotropic damage model for tension/compression based on Griffith's solution.
VtkXmloutputs at integration points.- Added variable cross-section model.
- New DKT plate element and plane stress element with vertex rotations.
- New wedge elements for structural analysis.
- Improved generic geometric non-linearity; many elements are now supported.
- New options in nonlocal integral models - modified averaging operator based on the distance from the boundary or on the stress state.
- Added new anisotropic damage model.
- New linear constraint boundary condition.
- Many bug fixes, small enhancements, and documentation updates.
Version 2.2 (2013-02-08)
- OOFEM 2.2 Released
- Added support for Abaqus UMAT subroutines.
- Added
bazant-najjarandisolinmoisturematerials + elements for moisture transport. - Added
QBrick1_h(m)telement for transport. - Added tetrahedral linear-bubble elements for incompressible Stokes flow.
- Added code for OpenMP-based parallel assembly.
- Added Darcy flow problem representation and corresponding triangular element.
- Migration to PETSc 3.3 + added compatibility with PETSc built using
--with-shared-libraries. - Added
NonLinearDynamicSolver. - Added lattice-based elements and corresponding materials for microstructural mechanical analyses.
- Improved VTK export.
- Migrated to CMake build system.
- Migrated to Git - a distributed version control system.
- Many documentation updates, huge cleanup of Doxygen-generated documentation.
- Many enhancements and bug-fixes.
Version 2.1 (2011-12-22)
- OOFEM 2.1 Released
- Updated to PETSc 3.2 with additional optimizations for the PETSc-solver bindings.
- Implemented new
SlipWithFriction,PenetrationWithResistance, andOutFlowBCboundary conditions for SUPG model. - New isotropic surface tension boundary condition for Stokes solver.
- Added concept of active boundary conditions that can contribute to governing equation(s).
- New Damage-plastic Rankine model, its gradient and nonlocal version, and mixed elements for gradient damage-plasticity.
- Introducing the concept of virtual regions for nodal recovery algorithms.
- Added support for IGA parallel computations with distributed patch evaluation.
- Added support for growing/decreasing transport problem - linear and nonlinear cases.
- Added cell export for Gauss point values in VTK.
- Added LAPACK bindings for
FloatMatrixclass. - Significant update of documentation, huge cleanup of Doxygen-generated documentation.
- Many enhancements and bug-fixes.
Version 2.0 (2010-11-20)
- OOFEM 2.0 Released
- Implemented selective evaluation of convergence criteria based on user-defined DOF groups in nonlinear structural solvers. Improved evaluation of relative force error in nonlinear structural solvers.
- Added general support for Isogeometric analysis (IGA). New FE interpolation classes for B-splines, NURBS, and T-spline surfaces and solids. Implemented plane stress and 3D IGA elements for structural analysis.
- Introduced a new concept of initialization modules, intended to initialize solution vectors, state variables, etc., to a given initial state from external data sources. Added Gauss point initialization module, which permits reading initial values of state variables from a file.
- Added new elements:
cct3dandTrPlaneStrRot3dare based on existingcctandTrPlaneStrRotelements but can be positioned arbitrarily in space. Added new composite elementTR_SHELL01representing a shell element composed ofcct3dandTrPlaneStrRot3d. Compared to therershellelement, this one comes with a complete system of 6 DOFs per node. - Added lumped mass element, defined by a single node, allowing the introduction of additional concentrated mass and/or rotational inertias.
- Enhanced
vtkxmlmodule: Added handling of local coordinate systems and master-slave transformations in nodes for displacement and velocities. - New library for elastic homogenization now includes elastic homogenization schemes, such as Mori-Tanaka or self-consistent ones. Added representation for macro-level elements and materials. New material model for cement hydration based on CEMHYD3D model.
- Added implementation of P2P1 Taylor Hood element for transient incompressible flow analysis.
- Added creep model based on microprestress-solidification theory.
- Major enhancement of the capabilities of nonlocal models in general and the nonlocal isotropic damage model in particular. Updates to several material models (trabecular bone, large-strain Mises, particle model).
- Added new damage-plastic model for concrete
concreteDPM. New hyperelastic material (for large strain). New anisotropic plastic-damage model (for trabecular bone). - Added implementation of an isotropic elastoplastic material with Mises yield condition, associated flow rule, and linear isotropic hardening (large-strain plasticity).
- Updated to PETSc 3.1 and SLEPc 3.1.
- Updated documentation. Documentation now available in HTML, PS, and PDF formats.
- Many enhancements and bug-fixes.
Version 1.9 (2009-07-28)
- OOFEM 1.9 Released
- Added support for adaptive, parallel jobs with dynamic load balancing.
- New subdivision algorithm for serial and parallel remeshing of tetrahedral and triangular meshes.
- Added general XFEM support. Introduced new classes representing global enrichment functions, their geometry description, integration rules, etc. New XFEM manager class managing and wrapping XFEM components.
- Added support for element insertion/removal during analysis. This option allows activating/deactivating any element at any solution step based on the value of a load time function specified for every element. Enabled only for structural elements.
- Support for arbitrary component numbering. DOF managers (nodes) and elements can have arbitrary, noncontinuous numbering.
- Introduced a new concept of random field generators. They are part of the domain and can be used to generate random field distributions. Also introduced a random material interface, allowing maintenance of a unique copy of any material parameter in every integration point.
- Enabled VTK export on quadratic quad plane stress element. Added support for region-by-region export. New XML-based VTK export module.
- Added geometric nonlinearity to
ltrspace,lspace, andplanestress2delements. New 3D interface element with linear approximation. New FEI interpolation classes (FEI2dTrQuad,FEI3dhexaquad,FEI2dquadquad). - Load balancing engine - many improvements and several bug fixes.
- Added interface to SLEPc.
- Updated to the latest release of DSS solver, fixed block handling issues leading to better performance.
- Updated to new PETSc 3.0 release.
- Updated documentation in HTML, PS, and PDF formats.
- Many enhancements and bug-fixes.
Version 1.8 (2008-03-02)
- OOFEM 1.8 Released
- New installation and compilation procedure implemented using "targets". Targets allow setting up specific compilers, options, and external libraries.
- Implemented generic dynamic load balancing framework for parallel jobs. Ready to use for nonlinear static computations.
- Corrected implementation of orthotropic material, now uses major Poisson's ratios. Improved documentation.
- Added implementation of 2D and 3D level set algorithm for tracking evolving interfaces.
- Added b-bar
lspaceelement (lspacebb) for incompressible problems. - Added
InputRecordgiveFieldmethod allowing direct reading ofFloatMatrixvalues. - Added new macros allowing declaration of enum types and automatic generation of functions returning string representations of enum values (inspired by X-Macros).
- Fixed PETSc error in linear static when negative code numbers are encountered.
- Solution of quadratic equation in cubic modified to more careful floating-point implementation.
- Save&Restore context services migrated to use
DataStreamrepresentation instead of plainFILE. - Many minor enhancements and bug-fixes.
Version 1.7 (2006-11-02)
- OOFEM 1.7 Released
- Added new solution algorithm for incompressible flow using SUPG/PSPG stabilization and corresponding elements.
- Added support for incompressible analysis of two immiscible fluids on a fixed domain in 2D, based on the VOF approach.
- Added new Direct Sparse Solver (DSS). Use
--enable-dsswhen running configure. - Improved
truss2dimplementation allowing definition in all planes, not only the xz plane. - Added constitutive model for Bingham fluid.
- Fixed bug in
domain.Cpreventing having more initial than boundary conditions. - Updated to PETSC (petsc-2.3.2) and mpich2 (1.0.4p1) releases.
- Fixed non-linear static load assembly for shared nodes in parallel mode.
- Simplified makefile syntax.
- Many minor enhancements and bug-fixes.
Version 1.6 (2005-10-24)
- OOFEM 1.6 Released
- Released adaptive framework, including error estimators, remeshing criteria, and mesh generator interface. Zienkiewicz-Zhu error estimator provided.
- Implemented dynamic relaxation for serial/parallel nonlinear explicit dynamic.
- Added new FM module (Fluid dynamic).
- Added CBS algorithm for incompressible transient flow analysis.
- Introduced new keywords in domain components record (
ndofman,nelem,nmat,ncrosssect,nbc,nltf). - Released implementation of MDM model (Anisotropic damage model).
- Added exchange of reaction contributions for shared dofs.
- Fixed context
fopencall (added "b" flag) to correctly open binary context file on non-POSIX platforms. - Added new
IMLPrecondTypes. - Implementation of generalized
inputreaderanddatareaderservices. - Updated to petsc-2.3.0 and mpich-1.2.6.
- Element Class modifications: dof managers (nodes, sides, internal dofs) stored in single
dofManArray. - UnknownType replaced by EquationType (
ET_MomentumEq,ET_ConservationEq). - Added automatic time-step control in CBS.
- Removed Win32 support.
Version 1.5 (2004-04-14)
- OOFEM 1.5 Released
- Linear and nonlinear static analyses can be run in parallel (requires PETSC support).
- Implemented serial and parallel interface to PETSC library. Added
--enable-petscconfigure option. - Enhanced documentation.
- Implemented reading of records in arbitrary order.
- New message and error reporting system. Added
-lprogram option for verbosity level. - Added symmetry nonlocal barrier.
- Added new multisurface model for masonry and new multisurface plasticity driver.
- Added new program parameter
-c(replaces-context). - Added stress/strain transformation procedures.
- Added line search algorithms to nonlinear solvers.
- Fixed issues in
NRsolverregarding direct displacement control and BC constraints. - Many minor enhancements and bug-fixes.
Version 1.4 (2003-04-04)
- OOFEM 1.4 Released
- Significantly improved parsing of input files. Non-relevant tokens are detected and reported.
- Added support for the serial version of SPOOLES sparse direct solver.
- Removed obsolete macros
IMPLEMENT_DYNAMICandDECLARE_DYNAMIC. - Added support for unsymmetric stiffness element matrices at the structural element level.
- Implemented stress and strain vectors to facilitate the implementation of constitutive laws.
- Implemented interpolation classes to simplify element implementation.
- Upgrade of Elixir library required.
- Fixed problem in parallel explicit dynamics regarding element load transfer.
- Implemented abstraction of fields for spatial distribution of variables.
- Added new module for solving transport problems (
tmdirectory) including stationary and transient heat analysis. - Added general staggered problem support to couple basic subproblems (e.g., heat transfer and mechanical analysis).
- IML sources excluded from basic distribution; added configure option to include IML support.
Version 1.3 (2001-12-09)
- OOFEM 1.3 Released
- Redesigned input data parsing with improved syntax checking.
- Improved postprocessor (
oofeg) graphics rendering and layer management. - Implemented new efficient algorithm with reduced memory requirements for internal structure allocation of coordinate-based sparse matrices.
- Direct displacement control and direct load control now supported by
NRSolver. - Added support for data export in VTK format (
vtkexportmodule). - Changed the concept of Engng model -> Nummet mapping.
- Modified directory structure for better modularity (
oofemlib,smmodule). - Fixed edge load transformation for
traplanestressandtrplanestrainelements. - Fixed error in the evaluation of reaction forces with element load contribution in non-linear problems.
- Extended MDM material model functionality to plane strain.
- Added math error handler via
matherrfunction. - Several changes to improve compilation across different platforms.
No news recorded for earlier releases.
(since January, 2023)