Published August 24, 2026 | Version v2.4

solids4foam: A toolbox for performing solid mechanics and fluid-solid interaction simulations in OpenFOAM

  • 1. University College Dublin
  • 2. University of Zagreb

Description

Full Changelog: v2.3...v2.4

Added in v2.4

  • Added support for OpenFOAM-v2606, extending compatibility to OpenFOAM-v2312
    through OpenFOAM-v2606, alongside the existing OpenFOAM-9 and
    foam-extend-4.1 support.
  • Added a configurable stabilisation framework, including combined
    stabilisation models, volumetric-strain-rate stabilisation, and PETSc SNES
    Jacobian support for JST and even-order schemes.
  • Added high-order finite-volume solid mechanics, with high-order
    configurations for cantilever2d, Cook's membrane, pressurisedCylinder,
    plateHole, and sphericalCavity
    (https://doi.org/10.1016/j.jcp.2026.115056).
  • Added a block-coupled incompressible solid formulation
    (https://doi.org/10.3390/app152312660).
  • Added decomposeParMonolithic for consistently decomposing coupled meshes.
  • Added adaptive time stepping to newtonIcoFluid.
  • Added the solidPressureMinMax function object and utilities for detecting
    PETSc build state and summarising solver logs.
  • Added an optional Unity build for libsolids4FoamModels, reducing
    compilation time.
  • Added validation of the PETSc configuration at build time, continuous
    integration across supported OpenFOAM versions, and a v2512 Docker release
    image.
  • Added further tutorial cases and per-tutorial README.md files, including the
    poroelasticity, elastoplasticity, ellipticPlate, and one-way cavity cases,
    plus expanded website documentation.

Changed in v2.4

  • Tutorial cases are now stored in the OpenFOAM.com format and converted to
    foam-extend or OpenFOAM.org at run time, rather than the reverse. All three
    variants continue to work; see the upgrade notes below.
  • Incremental (updated Lagrangian) solid models now stop with a clear message
    when an initial D field is present outside a restart; see the upgrade notes
    below.
  • Improved IQN-ILS coupling and simplified FSI region selection.
  • Extended electroMechanicalLaw with field-based active tension and
    independent fibre tensors.
  • Made point-patch enforcement optional in the fixedDisplacement boundary
    condition, and made the fluidModel fluid-property accessors public.
  • Unsupported foam-extend cyclicGgi patches now fail with a clear error
    rather than segfaulting during volume-to-point interpolation.
  • Expanded regression coverage for solid, contact, FSI, and least-squares
    gradient cases, and added a Test-leastSquaresS4fGrad test application.

Fixed in v2.4

  • Fixed PETSc Jacobian preallocation by creating the Jacobian as a block AIJ
    matrix, resolving segmentation faults with recent PETSc versions.
  • Fixed old-time deformation gradient storage in StVenantKirchhoffElastic.
  • Fixed least-squares gradient evaluation at boundary faces, and ported
    enhancedVolPointInterpolation to OpenFOAM-9, correcting rigid-rotation
    cases solved with the updated Lagrangian approach.
  • Fixed the sign convention in the even-order Laplacian for the m == 0 case.
  • Fixed boundary condition enforcement in the diffusionElastic mechanical law
    and the tabulated acceleration fields in sonicLiquidFluid.
  • Fixed the RBFMeshMotionSolver setup for fluid-solid interaction, and
    documented a verified configuration.
  • Fixed tmp<fvMatrix> assembly on OpenFOAM.org.
  • Fixed the restart behaviour of the elasticWallVelocity boundary condition,
    which previously discarded its face-centre history and so restarted with a
    zero interface velocity. The history is now written to, and read from, the
    time directories, and is mapped by decomposePar and reconstructPar.

Removed in v2.4

  • Removed tutorial-specific analytical solution function objects from
    src/solids4FoamModels; these now live in case-local libraries within the
    corresponding tutorials.

Upgrade notes for v2.4

  • Tutorial case format: tutorial cases are stored in the OpenFOAM.com
    format. Cases copied from the repository run directly on OpenFOAM.com, and
    the Allrun scripts convert them for foam-extend and OpenFOAM.org. Local
    copies of older cases are unaffected, but any scripts that assumed the
    foam-extend layout (for example constant/polyMesh/blockMeshDict) should be
    updated.
  • Initial D field with incremental solid models: incremental updated
    Lagrangian solid models solve for DD, and an initial D field alongside it
    can make boundary conditions pick up an inconsistent displacement history.
    Such cases now fail at startup unless the run is an explicit restart. Remove
    0/D from affected cases.
  • Tutorial analytical solutions: if a case or user library referenced an
    analytical solution function object from libsolids4FoamModels, link against
    the case-local library in the corresponding tutorial instead.
  • Interface-to-interface mapping and the undeformed mesh: all
    interface-to-interface mappings (AMI, GGI, RBF and directMap) now
    build the interface correspondence from the undeformed mesh points in the
    constant instance, rather than from the current interface. This keeps the
    correspondence independent of when it is first constructed, now that the
    cached interface geometry follows the mesh motion and the solid deformation.
    Cases whose mesh changes topology during the run, or whose points are not
    available in the constant instance, now fail with an explicit error instead
    of silently building the correspondence from whatever configuration the
    interface happened to be in. Previously, only AMI read the constant
    points, so this affects a wider set of cases than before.

Related to v2.4

Notes

If you use solids4foam in your research, please cite it as below.

Files

solids4foam-2.4.zip

Files (79.7 MB)

Name Size Download all
md5:ab9042c803966f4e8ddbc5a851c0cc4a
79.7 MB Preview Download

Additional details

Related works

Funding

European Commission
XenoSim - Providing Computational Insights into Cardiac Xenotransplantation 101088740

Dates

Updated
2026-08-24

Software

Repository URL
https://github.com/solids4foam/solids4foam
Programming language
C++
Development Status
Active