Skip to content

Core Features & Capabilities

OOFEM is built on a highly modular, object-oriented architecture designed to handle advanced simulations in structural mechanics, heat transfer, and fluid dynamics.

Below is an overview of the core capabilities, physics modules, and supported third-party integrations.


Core Architecture (OOFEMlib)

The OOFEM kernel provides an extensible, high-performance foundation for all physics modules.

  • Modular & Fully Extensible: The kernel can be extended in any direction. Adding new element types, material models (with any number of internal history parameters), boundary conditions, numerical algorithms, or custom degrees of freedom is straightforward by design.
  • Independent Solvers & Data Storage: OOFEM abstracts the analysis, the general numerical method, and the data storage (sparse matrices). This component mapping allows you to formulate a problem independently of the numerical method, meaning you can swap solution methods without changing the problem formulation.
  • Parallel Processing: Built-in support for parallel computing based on domain decomposition, message passing (MPI), and a dynamic load balancing engine. It scales efficiently across workstation clusters and massively parallel shared-memory systems.
  • Staggered Analysis: Group basic sub-problems together to transfer and share solution fields. The general design allows the use of different discretizations for different sub-problems.
  • Adaptive Analysis: Multiple domain concepts with support for error estimation, various remeshing criteria, and primary/internal variable mapping. Fast spatial localization algorithms based on tree techniques are included.
  • Advanced Formulations:
    • eXtended Finite Element (XFEM): Built-in representations for global enrichment functions, geometry descriptions, and generalized integration rules.
    • Iso-Geometric Analysis (IGA): Built-in support for B-spline and NURBS interpolation classes, with pilot implementations for plane stress and 3D elasticity.
    • Discontinuous Galerkin (DG): Provides a robust spatial discretization framework for problems involving severe discontinuities, shocks, or complex interfaces. By relaxing inter-element continuity, DG guarantees strict local conservation.
  • Python Interface: Python bindings allow users to set up problems, query results, and visualize data using VTK directly from a Python script. Advanced users can even develop custom elements and material models in Python.
  • Full Restart Support: The kernel supports a full restart from any previously saved state.

Physics Modules

Structural Mechanics (SM)

  • Analysis Procedures: Linear static, linear dynamic (eigenvalue analysis, direct integration via implicit/explicit methods), nonlinear static (robust CALM solver), and nonlinear dynamic (explicit, parallel version).
  • Advanced Material Library: Features state-of-the-art models for nonlinear fracture mechanics of quasibrittle materials.
  • Advanced Modeling Features: Support for slave DOFs, rigid arms, local coordinate systems, element activation/deactivation, and profile optimization.
  • Parallel Analysis: Supported for explicit nonlinear dynamics (via Domain Decomposition), as well as linear and nonlinear statics (requires PETSc).

Transport Problems (TM)

  • Analysis Procedures: Stationary and transient (linear and nonlinear) heat transfer, as well as coupled heat and mass transfer problems.
  • Coupled Solutions: Staggered simultaneous solutions allow the temperature field generated by a heat transfer analysis to be used seamlessly as a temperature load in a mechanical analysis.
  • Elements: Comprehensive library of axisymmetric, 2D, and 3D elements.

Fluid Dynamics (FM)

  • Analysis Procedures: Transient incompressible flow using the CBS semi-implicit algorithm and a transient solver with SUPG/PSPG stabilization.
  • Free Surface Flows: Supports incompressible analysis of two immiscible fluids on a fixed domain using a 2D VOF-based interface tracking algorithm.

Multi-Physics (MPM)

  • Weak Form Definition: MPM is designed to simplify the implementation of multi-physics problems by allowing problem definitions that closely resemble the mathematical weak form.
  • Reusable Blocks: Provides Interpolations, Variables, Terms, and Integrals as reusable building blocks.
  • Parametrization: The concept allows for easy parametrization with different element geometries and interpolations.

Post-Processing

  • VTK Export: Native export to VTK format, allowing users to leverage powerful external visualization tools like MayaVi or ParaView.
  • Native Post-Processor: Includes oofeg, a built-in X-Windows graphical post-processor.

External Software Interfaces

OOFEM features seamless interfaces to a variety of powerful external mesh generators, numerical libraries, and solvers. (Note: These are all optional packages and are not required to run the core OOFEM software).

Mesh Generation & Import:

  • T3d: Daniel Rypl's 3D mesh generator.
  • Targe2: Petr Krysl's 2D mesh generator.
  • unv2oofem: Universal file (UNV) import tool.

Sparse Linear & Eigenvalue Solvers:

  • PETSc: Portable, Extensible Toolkit for Scientific Computation (serial and parallel).
  • SLEPc: Scalable Library for Eigenvalue Problem Computations.
  • IML++: Template library for numerical iterative methods.
  • SPOOLES: Sparse direct solver.
  • ParMETIS: Parallel graph partitioning and fill-reducing matrix ordering.
  • Additional Solvers: Support for PARDISO and SuperLU.

(since January, 2023)