Jump to content

List of finite element software packages

From Wikipedia, the free encyclopedia

This is a list of notable software packages that implement the finite element method for solving partial differential equations.

Software Features Developer Version Released License Price Platform
Abaqus FEA, Multi-physics, Implict & Explict. TriMech Group 2025 1979 Linux, Windows
Agros2D Multiplatform open source application for the solution of physical problems based on the Hermes library University of West Bohemia 3.2 2014-03-03 GNU GPL Free Linux, Windows
CalculiX It is an Open Source FEA project. The solver uses a partially compatible ABAQUS file format. The pre/post-processor generates input data for many FEA and CFD applications Guido Dhondt, Klaus Wittig 2.20 2022-08-01 GNU GPL Free Linux, Windows
DIANA FEA General purpose finite element package utilised by civil, structural and geotechnical engineers. DIANA FEA BV, The Netherlands 10.1 2016-11-14 Proprietary commercial software Paid Windows, Linux
deal.II Comprehensive set of tools for finite element codes, scaling from laptops to clusters with 100,000+ cores. Written in C++, it supports all widely used finite element types, serial and parallel meshes, and h and hp adaptivity. Wolfgang Bangerth, Timo Heister, Guido Kanschat, Matthias Maier et al. 9.6 2024-08-11 LGPL Free Linux, Unix, Mac OS X, Windows
DUNE Distributed and Unified Numerics Environment, written in C++ DUNE Developer team 2.4.1 2016-02-29 GPL Version 2 with Run-Time Exception Free Linux, Unix, Mac OS X
Elmer FEM Open source multiphysical simulation software developed by Finnish Ministry of Education's CSC, written primarily in Fortran (written in Fortran90, C and C++) CSC 8.2 2021-03-04 GPL Free Linux, Mac OS X, Windows
FEBio Finite Elements for Biomechanics University of Utah (MRL), Columbia University (MBL) 3.7 June, 2022 MIT Free Linux, Mac OS X, Windows
FEniCS Project Software package developed by American and European researchers with the goal to enable automated solution of differential equations FEniCS Team 1.6.0 2015-07-29 LGPL (Core) & GPL/LGPL (Non-Core)[1] Free Linux, Unix, Mac OS X, Windows
FEATool Multiphysics MATLAB FEM and PDE multiphysics simulation toolbox Precise Simulation 1.10 2019-05-17 Proprietary EULA Free for personal use[2] Windows, Mac OS X, Linux, Unix
FreeFEM[3] FreeFEM is a free and open-source parallel FEA software for multiphysics simulations. The problems are defined in terms of their variational formulation and can be easily implemented using FreeFEM language. Written in C++. Sorbonne University[4] and Jacques-Louis Lions Laboratory[5] 4.2.1 2019-06-06 LGPL Free Linux, MacOS, Windows, Solaris
GOMA GOMA is an open-source, parallel, and scalable multiphysics software package for modeling and simulation of real-life physical processes, with a basis in computational fluid dynamics for problems with evolving geometry. Sandia National Laboratories, University of New Mexico 6.1 Aug 28, 2015 GPL Version 2 Free Linux
GetFEM++ A generic finite element library written in C++ with interfaces for Python, Matlab and Scilab. It focuses on modeling of contact mechanics and discontinuities (e.g. cracks). Yves Renard, Julien Pommier 5.4.2 2022-07 LGPL Free Unix, Mac OS X, Windows
Hermes Project Modular C/C++ library for rapid development of space- and space-time adaptive hp-FEM solvers hp-FEM group 3.0 2014-03-01 LGPL Free Linux, Unix, Mac OS X, Windows
Mathematica[6] General purpose computation software. Wolfram Research 14.1.0 (July 31, 2024; 58 days ago (2024-07-31)) [±][7] Regularly Proprietary Linux, Mac OS X, Windows, Raspbian, Online service.
MATLAB Partial Differential Equation Toolbox MATLAB Toolbox for solving structural, thermal, electromagnetics, and other general PDEs MathWorks 3.3 (R2019b) 2019-09-11 Proprietary commercial software Linux, Mac OS X, Windows
MFEM MFEM is a free, lightweight, scalable C++ library for finite element methods that features arbitrary high-order finite element meshes and spaces, support for a wide variety of discretizations, and emphasis on usability, generality, and high-performance computing efficiency. MFEM team 4.7 2024-05-07 BSD Free Linux, Unix, Mac OS X, Windows
MoFEM JosePH Mesh Oriented hp-FE code, written in C++ University of Glasgow 0.6.8 2017-11-16 LGPL Free Unix, Mac OS X
MOOSE Object Oriented FE framework, written in C++ Idaho National Laboratory regularly LGPL Free Unix, Mac OS X
OOFEM Object Oriented Finite EleMent solver, written in C++ Bořek Patzák 2.5 2017-12-30 GPL Version 2 Free Unix, Windows
OpenSees Open System for Earthquake Engineering Simulation 3.3.0 2021-05-24 Non Commercial Free Unix, Linux, Windows
SESAM (FEM) Software suite for structural and hydrodynamic analysis of ships and offshore structures DNV GL regularly Proprietary, SaaS Windows, Web browser
Z88/Z88Aurora Freeware finite element package; The present version Z88Aurora V5 offers, in addition to static strength analysis modules such as non-linear strength calculations (large displacements), simulations with non-linear materials, natural frequency, static thermal analysis and a contact module. Frank Rieg Z88 V15, Z88Aurora V5 2017-07-17, 2019-04-01 GNU GPL, Custom Free Linux, Windows, Mac OS X
Abaqus Advanced Franco-USA software from SIMULIA, owned by Dassault Systemes Abaqus Inc. 2023 2022-11 Proprietary commercial software Free learning edition available, up to 1000 nodes[8] Linux, Windows
CONSELF CAE simulation from your browser CONSELF SRL 2.9 2015-10 SaaS Freemium Web browser
FreeCAD Parametric 3D modeler with a FEM workbench allowing it to use external solvers like CalculiX, Z88, Elmer, and OpenFOAM FreeCAD Team 0.20.1 10 August 2022 LGPL 2 Free Linux, Windows, Mac OS X
ADINA Finite element software for structural, fluid, heat transfer, electromagnetic, and multiphysics problems, including fluid-structure interaction and thermo-mechanical coupling Adina R&D Proprietary commercial software
Autodesk Simulation Finite Element software of Autodesk Autodesk Proprietary commercial software Windows
ANSYS US-based and -developed full CAE software package Ansys Inc. 2022 R2 2022-07-28 Proprietary commercial software Free student version available, up to 32,000 nodes/elements[9] Windows, Linux
COMSOL Multiphysics COMSOL Multiphysics Finite Element Analysis Software (formerly FEMLAB) COMSOL Inc. 6.1 2022-11-01 Proprietary EULA Linux, Mac OS X, Windows, Web browser
CosmosWorks Part of SolidWorks Dassault Systèmes SolidWorks Corp. Proprietary commercial software Windows
Quickfield EM, Heat Transfer and Stress Analysis [10] Tera Analysis Ltd 6.4 [11] 2020-04-17 Proprietary EULA Free Student Edition available[12] Windows
Pam Crash Best used for explicit dynamics / crash analysis ESI 15.5.1 2020-03-05 Proprietary commercial software Linux, Windows
LS-DYNA Best known for explicit dynamics / crash analysis LSTC - Livermore Software Technology Corporation R10.1 2020 Proprietary commercial software Linux, Windows
Mecway Structural, heat transfer, electrostatic, acoustic Mecway Limited 20.0 2023-07 Proprietary commercial software Free edition available, up to 1000 nodes[13] Windows
Nastran Originally developed for NASA, now available commercially from several software companies MSC NASTRAN, Siemens PLM NX Nastran[14] 2014 2014 Proprietary EULA Linux, Mac OS X, Windows
RFEM 3D finite element analysis software Dlubal Software 6.04.0005 2023-10-30 Proprietary commercial software Free student license available[15] Windows
SimScale German 100% web-based CAE platform SimScale GmbH 14 2013-07 SaaS Free community version available[16] Web browser
VisualFEA Finite element software for structural, geotechnical, heat transfer and seepage analysis Intuition Software 5.11 2016-01 Proprietary software Free educational version available[17] Mac OS X, Windows
JCMsuite Finite element software for the analysis of electromagnetic waves, elasticity and heat conduction JCMwave GmbH 5.4.3 2023-03-09 Proprietary EULA Linux, Windows
Radioss Best known for explicit dynamics simulations Altair Engineering Proprietary commercial software; OpenRadioss: AGPL-3.0 Open-source version (OpenRadioss) available Linux, Windows
JMAG 2D and 3D finite element analysis software for electromagnetic field, thermal, structural JSOL 18.1 2019-06 Proprietary commercial software Education pack available Linux, Windows, Web browser
SDC Verifier An extension for Ansys Mechanical, Femap and Simcenter with out of the box predefined standards on fatigue, stiffener and plate buckling, beam member checks, joint checks and weld. Such as AISC 360-10, API 2A RP, ISO 19902, Norsok N004, DIN15018, Eurocode 3, FEM 1.001, ABS 2004, ABS 2014, DNV RP-C201 2010, DNV CN30/1995, FKM etc. SDC Verifier 2021 R.2 2021-11 Proprietary commercial software Student version available Windows

Feature comparison

[edit]

This table is contributed by a FEA-compare[18] project, which provides an alternative view of this table with the first row and Feature column being fixed for ease of table exploration.

Feature COMSOL Multiphysics MFEM GetFEM++ deal.II Elmer MOOSE FEniCS Project FEATool Multiphysics
license: Proprietary BSD LGPL LGPL GNU (L)GPL LGPL GNU GPL\LGPL Proprietary
GUI: Yes No No No Yes, partial functionality Yes Postprocessing only Matlab and Octave GUI
Documentation: user guides, reference manuals, API documentation, application libraries with solved examples, online tutorials examples, miniapps, Doxygen, online documentation User doc, tutorials, demos, developer's guide extensive tutorials, video lectures, Doxygen ElmerSolver Manual, Elmer Models Manual, ElmerGUI Tutorials, etc. LaTeX documentation available in PDFs Doxygen, Markdown, example codes, test inputs Tutorial, demos, book Online FEATool documentation, tutorials, and model examples
Mesh
mesh elements: intervals (1D); triangles, quadrilaterals (2D and 3D boundaries); tetrahedra, pyramids, prisms, hexahedra (3d) segments, triangles, quadrilaterals, tetrahedra, hexahedra, prisms, pyramids intervals, triangles, tetrahedra, quads, hexes, prisms, some 4D elements, easily extensible. intervals (1D); triangles, quadrilaterals (2D and 3D boundaries); tetrahedra, pyramids, prisms, hexahedra (3d) intervals (1d), triangles, quadrilaterals (2d), tetrahedra, pyramids, wedges, hexahedra (3d) Tria, Quad, Tetra, Prism, etc. intervals, triangles, tetrahedra (quads, hexes - work in progress) intervals, triangles, tetrahedra, quads, hexes
mesh high-order mapping: Any? Second-order is the default for most cases. arbitrary-order meshes and NURBS meshes any order Yes, for Lagrange elements (Any - work in progress)
mesh generation: Built-in meshing miniapps and target-matrix mesh optimization experimental in any dimension + predefined shapes + Extrusion. external mesh generators via mesh exchange files, internally generated meshes for simple shapes, internal interfaces to gmsh Limited own meshing capabilities with ElmerGrid and netgen/tetgen APIs. Internal extrusion and mesh multiplication on parallel level. Built-in Yes, Constructive Solid Geometry (CSG) supported via mshr (CGAL and Tetgen used as backends) Integrated DistMesh, Gmsh, and Triangle GUI and CLI interfaces
mesh adaptive-refinement: Yes, full adaptive mesh refinement (h-refinement); no p-refinement but several higher-order elements are included. Mesh adaptation on the whole or parts of the geometry, for stationary, eigenvalue, and time-dependent simulations and by rebuilding the entire mesh or refining chosen mesh elements. conforming and non-conforming adaptive refinement for tensor product and simplex meshes Only h h-, p-, and hp-adaptivity for both continuous and discontinuous finite elements h-refinement for selected equations h, p, mached hp, singular hp Only h
mesh input/output: STL, PLY, NASTRAN, 3MF, VRML (import only), native format VTK, Gmsh, CUBIT, NETGEN, TrueGrid, and MFEM format gmsh, GiD, Ansys DB, XDA, GMSH, Tecplot, UNV, UCD, Abaqus, VTK, Assimp, ExodusII ExodusII, Nemesis, Abaqus, Ensight, Gmsh, GMV, OFF, TecPlot TetGen, etc. XDMF (and FEniCS XML) FeatFlow, FEniCS XML, GiD, Gmsh, GMV, Triangle
mesh check: Avoids inverted and degenerated elements; various mesh quality measures ? intersections (collision testing)
CAD files support: STEP, IGES, others. No IGES, STEP (with OpenCascade wrapper) Limited support via OpenCASCADE in ElmerGUI
mesh operation: Merge, copy, refine; convert; boundary layers; extrude, revolve, sweep, loft for 3D geometries Extrude, rotate, translation, refine Extrude, rotate, translation, refine Merge, join, extrude, modular mesh modifier system Merge, join, extrude, and revolve operations
Parallel possibilities
automatic mesh partitioning: METIS and space-filling curve partitioning Yes (METIS) yes, shared (METIS/Parmetis/Zoltan) and distributed (p4est) partitioning with ElmerGrid using Metis or geometric division, internal partitioning in ElmerSolver using Zoltan Metis, Parmetis, Hilbert (shared and distributed meshes) Yes (ParMETIS and SCOTCH)
MPI: Yes Yes Yes Yes (up to 310k processes) Yes Yes Yes
threads: Supports multithreading Using OpenMP, RAJA, or OCCA backends Threading Build Blocks threadsafe, some modules threaded and vectorized. Yes
OpenMP: Yes Yes Yes Yes (vectorization only) Yes, partially Yes
OpenCL: No Through OCCA backends No No No
CUDA: No Yes No since 9.1, see step-64 for matrix-free GPU+MPI example Preliminary API for sparse linear algebra
Solver
Dimension: 0D, 1D, 2D, 3D (can coexist) 1D/2D/3D Any, possibility to mix and couple problem of different dimension 1/2/3D 1D/2D/3D (dimensions may coexist) 1/2/3D 1/2/3D 1/2/3D
FE: Lagrange (order 1-7), Hermite (order 3-7), discontinuous Lagrange (order 0-7), bubble, Gauss point, serendipity, Nedelec Arbitrary-order Lagrange elements (continuous and discontinuous), Bernstein basis, Nedelec and Raviart-Thomas elements, support for NURBS spaces (IGA) Continuous and discontinuous Lagrange, Hermite, Argyris, Morley, Nedelec, Raviart-Thomas, composite elements (HCT, FVS), Hierarchical elements, Xfem, easily extensible. Lagrange elements of any order, continuous and discontinuous; Nedelec and Raviart-Thomas elements of any order; BDM and Bernstein; elements composed of other elements. Lagrange elements, p-elements up to 10th order, Hcurl conforming elements (linear and quadratic) for Lagrange, Hierarchic, Discontinuous Monomials, Nedelec Lagrange, BDM, RT, Nedelic, Crouzeix-Raviart, all simplex elements in the Periodic Table (femtable.org), any Lagrange (1st-5th order), Crouzeix-Raviart, Hermite
Quadrature: Gauss-Legendre, Gauss-Lobatto, and uniform quadrature rules. Gauss-Legendre, Gauss-Lobatto, midpoint, trapezoidal, Simpson, Milne and Weddle (closed Newton-Cotes for 4 and 7 order polynomials), Gauss quadrature with logarithmic or 1/R weighting function, Telles quadrature of arbitrary order. Gauss-Legendre (1D and tensor product rules in 2D and 3D) tabulated up to 44th-order to high precision, best available rules for triangles and tetrahedra to very high order, best available monomial rules for quadrilaterals and hexahedra.
Transient problems: Yes, BDF, Runge-Kutta (RK34, Cash-Karp 5, Dormand-Prince 5), and generalized alpha time stepping Runge-Kutta, SSP, SDIRK, Adams-Bashforth, Adams-Moulton, Symplectic Integration Algorithm, Newmark method, Generalized-alpha method Any user implemented and/or from a set of predefined. Explicit methods: forward Euler, 3rd and 4th order Runge-Kutta. Implicit methods: backward Euler, implicit Midpoint, Crank-Nicolson, SDIRK. Embedded explicit methods: Heun-Euler, Bogacki-Shampine, Dopri, Fehlberg, Cash-Karp. implicit-euler explicit-euler crank-nicolson bdf2 explicit-midpoint dirk explicit-tvd-rk-2 newmark-beta BE, CN, and Fractional-Step-Theta schemes
Predefined equations: Incompressible Navier-Stokes, heat transfer, convection-diffusion-reaction, linear elasticity, electromagnetics, pressure acoustics, Darcy's law, and support for custom PDE equations Miniapps and examples for Laplace, elasticity, Maxwell, Darcy, advection, Euler, Helmholtz, and others The tutorial provides examples for many different equations Around 50 predefined solvers Phase Field, Solid Mechanics, Navier-Stokes, Porous Flow, Level Set, Chemical Reactions, Heat Conduction, support for custom PDEs Incompressible Navier-Stokes, Heat transfer, convection-diffusion-reaction, linear elasticity, electromagnetics, Darcy's, Brinkman equations, and support for custom PDE equations
Automated assembly: Yes Yes Yes
Visualization: Built-in In situ visualization with GLVis. Export to VisIt and ParaView. External or with the Scilab/Matlab/Python interface. Possibility to perform complex slices. External (export to .vtk/.vtu and many others) ElmerGUI comes VTK based visualization tool (but Paraview is recommended) Yes, VTK-based GUI, Python visualizatuion library Buil-in simple plotting + External Built-in with optional Plotly and GMV export
Output format: Text and unstructured VTK-file for data. BMP, PNG, GIF, TIFF, JPEG, glTF, Windows clipboard, Microsoft PowerPoint (for images). GIF, Flash, AVI, WebM (for animations). Touchstone data (for networks). VisIt, ParaView (VTU), GLVis format vtk, gmsh, OpenDX. *.dx *.ucd *.gnuplot *.povray *.eps *.gmv *.tecplot *.tecplot_binary *.vtk *.vtu *.svg *.hdf5 Several output formats (VTU, gmsh,...) ExodusII, Xdr, etc. VTK(.pvd, .vtu) and XDMF/HDF5 GMV and Plotly
Boundary elements solver: Yes No Yes Existing but without multipole acceleration (not usable for large problems) No
Use multiple meshes: Yes including different dimensions and taking account of any transformation. Yes, autorefined from same initial mesh for each variable of a coupled problem Continuity of non-conforming interfaces ensured by mortar finite elements Yes, including non-matching meshes
Linear algebra
Used libs: MUMPS, PARDISO, SPOOLES; ARPACK, BLAS, BLIS, Intel MKL, LAPACK Built-in and integrated with hypre. Optional integrations with PETSc, Ginkgo, SuperLU, Suite Sparse, libCEED, and more SuperLU, MUMPS, Built-in. Built-in + Trilinos, PETSc, and SLEPc Built-in, Hypre, Trilinos, umfpack, MUMPS, Pardiso, etc. (optional) PETSc, Trilinos, LASPack, SLEPc PETSc, Trilinos/TPetra, Eigen. Matlab/Octave built-in (Umfpack), supports integration with the FEniCS and FeatFlow solvers
Iterative matrix solvers: GMRES, FGMRES, BiCGStab, conjugate gradients, TFQMR, or any precoditioner. Algebraic and geometric multigrid. Domain decomponsition (Schwarz, Schur) Krylov methods (CG, MINRES, GMRES, BiCGStab) All Krylov All Krylov (CG, Minres, GMRES, BiCGStab, QMRS) Built-in Krylov solvers, Krylov and multigrid solvers from external libraries LASPack serial, PETSc parallel Matlab/Octave built-in
Preconditioners: Direct preconditioner, Krylov, SOR, SSOR, SORU, SOR line, SOR gauge, SOR vector, Jacobi, incomplete and hierarchical LU, SAI, SCGS, Vanka, AMS Algebraic, Geometric, and p-multigrid. Block ILU preconditioning. Support for hypre's AMS and ADS preconditioners for H(curl) and H(div). Basic ones (ILU, ILUT) Many, including algebraic multigrid (via Hypre and ML) and geometric multigrid Built-in preconditioners (ILU, diagonal, vanka, block) and LASPack serial, PETSc parallel, algebraic multigrid (via Hypre) Matlab/Octave built-in
Matrix-free
matrix-free: Yes Yes No Yes Experimental implementation
matrix-free save memory: Yes No Yes
matrix-free speed-up: Yes No Yes
Used language
Native language: Primarily C++ and Java C++ C++ C++ Fortran (2008 standard) C++ C++ Matlab / Octave
Bindings to language: Full API for Java and Matlab (the latter via add-on product) PyMFEM (Python) Python, Scilab or Matlab Python bindings to some functionality Python
Other
Predefined equations: Yes, many predefined physics and multiphysics interfaces in COMSOL Multiphysics and its add-ons. A large number of Bilinear and Linear forms Model bricks: Laplace, linear and nonlinear elasticity, Helmholtz, plasticity, Mindlin and K.L. plates, boundary conditions including contact with friction.
Coupled nonlinear problems: Yes Yes Yes
Binary: Windows, Linux, macOS Yes, via OpenHPC. Also available as part of Spack, xSDK, E4S, FASTMath, RADIUSS and CEED. Linux (Debian/Ubuntu) Linux, Windows, Mac Windows, Linux (launchpad: Debian/Ubuntu), Mac (homebrew) (all with MPI) Linux (Debian\Ubuntu), Mac Windows, Linux, Mac
fullname: Elmer finite element software
Testing: Comprehensive unit and regression tests. Continuous integration through Travis CI 13,000+ tests More than 700 consistency tests ensuring backward compatibility 4300+ tests, Testing as a service for derived applications
scripting: Full API for Java and, through add-on product, Matlab Runtime parsed mathematical expression in input files Fully scriptable in as m-file Matlab scripts and the GUI supports exporting models in script format
automatic differentiation: Yes Yes Yes Forward-mode for Jacobian computation, symbolic differentiation capabilities
multiphysics: Yes, full custom and predefined multiphysics couplings between all kinds of physics Arbitrary multiphysics couplings are supported Yes Arbitrary multiphysics couplings are supported Arbitrary multiphysics couplings are supported
Optimization Solvers: With the Optimization Module add-on: Coordinate search, Nelder-Mead, Monte Carlo, BOBYQA, COBYLA, SNOPT, MMA, Levenberg-Marquardt Integration with HiOp. Built-in SLBQP optimizer Support for TAO- and nlopt-based constrained optimization solvers incorporating gradient and Hessian information.
HIP: Yes
Symbolic derivation of the tangent system for nonlinear problems: Yes Yes
Support for fictitious domain methods: Yes Yes

References

[edit]
  1. ^ "FEniCS Project". Retrieved 2017-06-21.
  2. ^ "FEATool Multiphysics - Product Information". Retrieved 2018-06-12.
  3. ^ "FreeFem++". freefem.org. Retrieved 2018-11-30.
  4. ^ "Sorbonne Université | Lettres, Médecine, Sciences". www.sorbonne-universite.fr. Retrieved 2018-11-30.
  5. ^ Curie, UPMC - Université Pierre et Marie. "Jacques-Louis Lions Laboratory (LJLL) - UMR 7598 - SCIENCE". sciences.sorbonne-universite.fr. Retrieved 2018-11-30.
  6. ^ Mathematica Documentation
  7. ^ "Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica". Retrieved 2024-07-31.
  8. ^ "Abaqus Learning Edition". edu.3ds.com. Retrieved 2022-08-25.
  9. ^ "Student Products - Free Simulation Software". Ansys.com. Retrieved 2017-05-28.
  10. ^ "Packages --QuickField FEA Software".
  11. ^ "QuickField 6.4 --QuickField FEA Software".
  12. ^ "QuickField Student Edition free download --QuickField FEA Software".
  13. ^ "Mecway Download". mecway.com. Retrieved 2023-07-23.
  14. ^ "NX Nastran: Siemens PLM Software". Plm.automation.siemens.com. Retrieved 2017-05-28.
  15. ^ "Free Student License | Dlubal Software". Dlubal.com. Retrieved 2017-05-28.
  16. ^ "Plans & Pricing - SimScale Simulation Platform". Simscale.com. Retrieved 2017-05-28.
  17. ^ "Browsing VisualFEA (Finite Element Analysis) by Title". Ecommons.cornell.edu. 2016-03-01. Retrieved 2017-05-28.
  18. ^ GitHub For ease of maintenance of this table, please, first consider to contribute changes directly to the project instead of editing the table below, however, direct wiki edits are also valid and will be backported