Solver Reference

Each solver card shows its numerical scheme, AD strategy, and Tesseract schema; per-(solver, problem) exclusions and explained anomalies come from the problem configs and are listed alongside. Click Inputs / Outputs on any solver to expand its field tables. The ∂ column marks fields that support automatic differentiation (VJP/JVP).

Legend. Each card shows a Numerics: line — the discretization followed by the numerical method — and three badge categories: language (backend / runtime), AD: strategy (autodiff / adjoint / hybrid / forward-only), and GPU on GPU-capable solvers.

Structural mechanics

deal.II

Numerics: Finite Element, Direct (spsolve)

cpp AD: forward-only

Upstream docs: https://www.dealii.org/

Path: mosaic/tesseracts/structural-mesh/dealii-structural

Image: dealii_structural_mesh

deal.II Q1 trilinear hexahedral FEM linear-elasticity solver via C++ subprocess (UMFPACK direct). Forward-only — reference implementation for cross-framework validation.

Inputs

Field Type Description
E_max float Young’s modulus of the fully solid material [MPa].
nu float Poisson’s ratio.
xmin float Void stiffness ratio (E_min = xmin * E_max).
penal float SIMP penalisation exponent (E(ρ) = E_min + (E_max−E_min)·ρ^penal).

Outputs:

FEniCS

Numerics: Finite Element, GMRES+AMG

fenics AD: adjoint

Upstream docs: https://fenicsproject.org/

Path: mosaic/tesseracts/structural-mesh/fenics-structural

Image: fenics_structural_mesh

FEniCS/DOLFIN CG1 FEM linear-elasticity solver with SIMP penalisation. Gradient ∂C/∂ρ via dolfin-adjoint tape replay (discrete adjoint derived at the variational level via UFL).

Inputs

Field Type Description
E_max float Young’s modulus of the fully solid material.
nu float Poisson’s ratio.
xmin float Void stiffness ratio (E_min = xmin * E_max).
penal float SIMP penalisation exponent (E(rho) = E_min + (E_max-E_min)*rho^penal).

Outputs:

Firedrake

Numerics: Finite Element, GMRES+AMG

firedrake AD: adjoint

Upstream docs: https://www.firedrakeproject.org/

Path: mosaic/tesseracts/structural-mesh/firedrake-structural

Image: firedrake_structural_mesh

Firedrake CG1 FEM linear-elasticity solver with SIMP penalisation. Gradient ∂C/∂ρ via firedrake-adjoint (pyadjoint ReducedFunctional) — an independent tape-based discrete adjoint complement to FEniCS.

Inputs

Field Type Description
E_max float Young’s modulus of the fully solid material.
nu float Poisson’s ratio.
xmin float Void stiffness ratio (E_min = xmin * E_max).
penal float SIMP penalisation exponent (E(rho) = E_min + (E_max-E_min)*rho^penal).

Outputs:

JAX-FEM

Numerics: Finite Element, Direct (UMFPACK)

jax AD: hybrid GPU

Upstream docs: https://github.com/deepmodeling/jax-fem

Path: mosaic/tesseracts/structural-mesh/jax-fem

Image: jax_fem_structural_mesh

JAX-FEM HEX8 linear-elasticity solver with SIMP stiffness E(ρ) = E_min + (E_max − E_min)·ρ^penal. Gradient ∂C/∂ρ via JAX automatic differentiation through the linear FE solve (hybrid implicit-function-theorem adjoint).

Inputs:

Outputs:

TopOpt.jl

Numerics: Finite Element, Direct (CHOLMOD)

julia AD: adjoint

Upstream docs: https://github.com/JuliaTopOpt/TopOpt.jl

Path: mosaic/tesseracts/structural-mesh/topopt-jl

Image: topopt_jl_structural_grid

TopOpt.jl HEX8 FEM linear-elasticity solver with SIMP penalisation, Julia + Ferrite.jl backend. Gradient ∂C/∂ρ via analytical SIMP adjoint sensitivity computed alongside the forward solve.

Inputs

Field Type Description
E float Young’s modulus of the solid material.
nu float Poisson’s ratio.
xmin float Minimum density (void stiffness) to prevent singular stiffness matrix.

Outputs:

Heat transfer

deal.II

Numerics: Finite Element, Direct (spsolve)

cpp AD: forward-only

Upstream docs: https://www.dealii.org/

Path: mosaic/tesseracts/thermal-mesh/dealii-heat

Image: dealii_heat_thermal_mesh

deal.II Q1 trilinear hexahedral FEM heat-conduction solver with SIMP conductivity (C++ subprocess, UMFPACK direct). Forward-only — reference implementation for cross-framework validation.

Inputs

Field Type Description
k_max float Maximum thermal conductivity (fully solid material).
p_exp float SIMP penalisation exponent p (k(ρ) = k_min + (k_max−k_min)·ρ^p).

Outputs:

FEniCS

Numerics: Finite Element, GMRES+AMG

fenics AD: adjoint

Upstream docs: https://fenicsproject.org/

Path: mosaic/tesseracts/thermal-mesh/fenics-heat

Image: fenics_heat_thermal_mesh

FEniCS P1 FEM heat-conduction solver with SIMP penalisation. Gradients (∂C/∂ρ, ∂C/∂source) via dolfin-adjoint tape replay.

Inputs

Field Type Description
k_max float Maximum thermal conductivity (fully solid/conducting material).
p_exp float SIMP penalisation exponent p (k(ρ) = k_min + (k_max−k_min)·ρ^p).

Outputs:

Firedrake

Numerics: Finite Element, GMRES+AMG

firedrake AD: adjoint

Upstream docs: https://www.firedrakeproject.org/

Path: mosaic/tesseracts/thermal-mesh/firedrake-heat

Image: firedrake_heat_thermal_mesh

Firedrake P1 FEM heat-conduction solver with SIMP penalisation. Gradients (∂C/∂ρ, ∂C/∂source) via firedrake-adjoint, complementing the FEniCS reference.

Inputs

Field Type Description
k_max float Maximum thermal conductivity (fully solid/conducting material).
p_exp float SIMP penalisation exponent p (k(ρ) = k_min + (k_max−k_min)·ρ^p).

Outputs:

JAX-FEM

Numerics: Finite Element, Direct (UMFPACK)

jax AD: hybrid GPU

Upstream docs: https://github.com/deepmodeling/jax-fem

Path: mosaic/tesseracts/thermal-mesh/jax-fem

Image: jax_fem_thermal_mesh

JAX-FEM HEX8 steady-state heat-conduction solver with SIMP conductivity and optional volumetric source. Gradients ∂C/∂ρ and ∂C/∂source via JAX autodiff through the linear FE solve (hybrid implicit-function-theorem adjoint)

Inputs:

Outputs:

torch-fem

Numerics: Finite Element, Direct (spsolve)

pytorch AD: autodiff GPU

Upstream docs: https://github.com/meyer-nils/torch-fem

Path: mosaic/tesseracts/thermal-mesh/torch-fem-thermal

Image: torch_fem_thermal_mesh

torch-fem SolidHeat HEX8 heat-conduction solver with IsotropicConductivity3D SIMP material — the first PyTorch backend in thermal-mesh. Gradients via PyTorch autograd through the FE solve; GPU-native.

Inputs

Field Type Description
k_max float Maximum thermal conductivity (fully solid material).
p_exp float SIMP penalisation exponent p (k(ρ) = k_min + (k_max−k_min)·ρ^p).

Outputs: