Přeskočit obsah

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 vtkhdf5 export module.
  • Added Additive Manufacturing module (G-Code emulator, thermal & mechanical analysis).
  • Added SolutionStatusExportModule.
  • Implemented LayeredCrossSection support 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.
  • unv2oofem Python 3 support, added support for sets.
  • boundarysurfaceload support for CCT element.
  • Implementation of quasicontinuum.
  • PARDISO_ORG sparse solver supported.
  • Added support for artificial drillStiffness and layered cross-section on MITC element.
  • Added SuperLU_MT interface, new -p option to set the number of threads.
  • 2D eikonal nonlocal damage model.
  • Added new material models for concrete: ConcreteFCM, FRCFCM, and FRCFCMNL.
  • 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, and Warping analyses, 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: MITC4 and trshell02 shells, 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) and PlaneStress2dXfem (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.
  • VtkXml outputs 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-najjar and isolinmoisture materials + elements for moisture transport.
  • Added QBrick1_h(m)t element 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 NonLinearDynamic Solver.
  • 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, and OutFlowBC boundary 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 FloatMatrix class.
  • 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: cct3d and TrPlaneStrRot3d are based on existing cct and TrPlaneStrRot elements but can be positioned arbitrarily in space. Added new composite element TR_SHELL01 representing a shell element composed of cct3d and TrPlaneStrRot3d. Compared to the rershell element, 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 vtkxml module: 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, and planestress2d elements. 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 lspace element (lspacebb) for incompressible problems.
  • Added InputRecord giveField method allowing direct reading of FloatMatrix values.
  • 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 DataStream representation instead of plain FILE.
  • 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-dss when running configure.
  • Improved truss2d implementation allowing definition in all planes, not only the xz plane.
  • Added constitutive model for Bingham fluid.
  • Fixed bug in domain.C preventing 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 fopen call (added "b" flag) to correctly open binary context file on non-POSIX platforms.
  • Added new IMLPrecondTypes.
  • Implementation of generalized inputreader and datareader services.
  • 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-petsc configure option.
  • Enhanced documentation.
  • Implemented reading of records in arbitrary order.
  • New message and error reporting system. Added -l program 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 NRsolver regarding 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_DYNAMIC and DECLARE_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 (tm directory) 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, sm module).
  • Fixed edge load transformation for traplanestress and trplanestrain elements.
  • 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 matherr function.
  • Several changes to improve compilation across different platforms.

No news recorded for earlier releases.


(since January, 2023)