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: —