An oracle case of a block pressed on another and slid with static and kinetic coefficients (mu_k N carried once slipping), and the docs of the friction formulation; ROADMAP M7 and parity updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
122 KiB
Solver literature survey for FieldCraft: explicit dynamics, equations of state, lattice Boltzmann, FSI
Compiled 2026-10-13. Scope: three new solver families on top of the planned implicit linear solver (M6): (A) an explicit Lagrangian finite element solver of the LS-DYNA / Abaqus-Explicit class, (B) equations of state for that solver's shock and detonation work, (C) a lattice Boltzmann CFD solver of the Palabos class, (D) fluid–structure interaction coupling them, and (E) the alternatives (finite volume, SPH) and GPU compute in pure Rust. The plan is at the end (Part F).
How this was verified
- DOIs. Every DOI below resolved through the DOI handle API (
doi.org/api/handles/<doi>→ responseCode 1), and its first author, year, title and venue were checked against Crossref metadata. Volume and page numbers are from memory and were not each checked; title, first author, year and venue were. Four DOIs I had from memory were wrong and were corrected from Crossref search before inclusion:- Flanagan–Belytschko 1984 eigenvalue paper is
10.1115/1.3167594(…598is an unrelated crack paper). - Johnson–Stryk 1987 eroding interface is
10.1016/0734-743X(87)90057-1. - He–Luo 1997 incompressible LBM is
10.1023/B:JOSS.0000015179.12689.e4(10.1007/BF02732106is a plant-biology paper). - Belytschko–Lin 1987 erosion is
10.1016/0734-743X(87)90033-9.
- Flanagan–Belytschko 1984 eigenvalue paper is
- Other URLs returned HTTP 200 on 2026-10-13 unless marked. Items without a DOI or working URL are marked (unverified).
- Licences come from GitHub/GitLab licence metadata (
api.github.com/repos/<r>, GitLab?license=true), the repository's LICENSE/COPYING file header, or a README licence sentence when the API reported nothing. No source code was opened. Where the API saidNOASSERTION, the first lines of the licence file decided it. - No section numbers are given: I did not read the PDFs for this survey, so I give none rather than guess.
Licence legend for associated code
| Status | Meaning |
|---|---|
| READ OK | MIT, BSD, Apache-2.0, ISC, MPL-2.0, public domain. May be read for reference; still re-implement from the paper and record anything adapted in ATTRIBUTION.md. |
| FORBIDDEN | GPL, LGPL or AGPL, or a non-commercial / research-only licence. Do not open. |
| NO LICENCE | No licence found in metadata: all rights reserved. Do not open. |
Associated code bases (licence from metadata only)
| Code | What it is | Licence (source) | Status |
|---|---|---|---|
Palabos gitlab.com/unigespc/palabos |
LBM framework | AGPL-3.0 (GitLab API) | FORBIDDEN |
OpenLB gitlab.com/openlb/release |
LBM framework | GPL-2.0+ (GitLab API) | FORBIDDEN |
waLBerla i10git.cs.fau.de/walberla/walberla |
LBM framework | GPL-3.0 (GitLab API) | FORBIDDEN |
lbmpy i10git.cs.fau.de/pycodegen/lbmpy |
LBM code generator (cumulant, MRT) | GPL-3.0+ (GitLab API) | FORBIDDEN |
VirtualFluids git.rz.tu-bs.de/irmb/VirtualFluids |
cumulant LBM (Geier/Krafczyk group) | GPL-3.0 (GitLab API) | FORBIDDEN |
TCLB CFD-GO/TCLB |
GPU LBM | GPL-3.0 | FORBIDDEN |
HemeLB hemelb-codes/hemelb |
sparse-geometry LBM | LGPL-3.0 | FORBIDDEN |
Sailfish sailfish-team/sailfish |
GPU LBM | LGPL-3 (README; API: none) | FORBIDDEN |
FluidX3D ProjectPhysX/FluidX3D |
GPU LBM, esoteric pull | custom: "public research, education or personal use" (LICENSE.md) | FORBIDDEN (non-commercial) |
ESPResSo espressomd/espresso |
MD + LBM | GPL-3.0 | FORBIDDEN |
OpenFOAM OpenFOAM/OpenFOAM-dev |
FV CFD | GPL (COPYING) | FORBIDDEN |
SU2 su2code/SU2 |
FV CFD | LGPL-2.1 (LICENSE.md) | FORBIDDEN |
| Fluidity | FE/FV CFD | LGPL-2.1 | FORBIDDEN |
| OpenRadioss | explicit FE | AGPL-3.0 (ADR 0001; GitHub mirrors report AGPL-3.0; the OpenRadioss/OpenRadioss repo URL returned 404 today) |
FORBIDDEN |
preCICE precice/precice |
partitioned coupling, IQN, RBF mapping | LGPL-3.0 | FORBIDDEN |
4C (ex-BACI) 4C-multiphysics/4C |
FSI, Aitken (Küttler–Wall group) | LGPL-3.0 | FORBIDDEN |
MOOSE idaholab/moose |
multiphysics FE | LGPL-2.1 | FORBIDDEN |
FEniCS FEniCS/dolfinx |
FE library | LGPL-3.0 | FORBIDDEN |
deal.II dealii/dealii |
FE library | now Apache-2.0 WITH LLVM-exception and LGPL-2.1 (LICENSE.md) | FORBIDDEN by ADR 0001 (it lists deal.II as LGPL). The relicensing is an owner decision; until the ADR changes, don't open. |
DualSPHysics DualSPHysics/DualSPHysics |
GPU SPH | LGPL-2.1 | FORBIDDEN |
IB2d nickabattista/IB2d |
2D immersed boundary | GPL-3.0 | FORBIDDEN |
| CalculiX, Code_Aster, Elmer | implicit FE | GPL family (ADR 0001) | FORBIDDEN |
STLBM gitlab.com/unigehpfs/stlbm |
Latt et al. 2021 portable C++ LBM (AA-pattern, BGK/TRT/regularized) | MIT (GitLab API) | READ OK — the one readable code by Palabos's authors |
XLB Autodesk/XLB |
differentiable LBM (JAX/Warp) | Apache-2.0 (LICENSE) | READ OK |
lettuce lettucecfd/lettuce |
PyTorch LBM | MIT | READ OK |
pylbm pylbm/pylbm |
LBM schemes generator | BSD-3 ("New BSD", LICENSE) | READ OK |
Ludwig ludwig-cf/ludwig |
LBM complex fluids | BSD-3-style (LICENSE: redistribution conditions) | READ OK |
Laghos CEED/Laghos |
high-order Lagrangian hydro, artificial viscosity | BSD-2-Clause | READ OK |
MFEM mfem/mfem |
FE library | BSD-3-Clause | READ OK |
LULESH LLNL/LULESH |
Lagrangian hydro proxy app (one-point hex + hourglass) | none in metadata, no licence file, README has no licence sentence | NO LICENCE (until a licence file is confirmed; do not open) |
Kratos KratosMultiphysics/Kratos |
multiphysics incl. FSI, IQN, mapping | BSD-style (kratos/license.txt: "Redistribution … permitted"; per-application licences may differ) | READ OK for the core; check each application folder's own licence file first |
IBAMR IBAMR/IBAMR |
immersed boundary (Peskin family) | BSD-3-style (COPYRIGHT file) | READ OK |
MUI MxUI/MUI |
multiscale coupling interface, RBF | Apache-2.0 (GitHub API; README says dual GPL/Apache, take Apache) | READ OK |
FEBio febiosoftware/FEBio |
nonlinear implicit FE, FSI | MIT | READ OK |
WARP3D rhdodds/warp3d |
nonlinear implicit FE | NCSA/MIT-style (LICENSE) | READ OK |
SPlisHSPlasH InteractiveComputerGraphics/SPlisHSPlasH |
SPH fluids | MIT | READ OK |
SPHinXsys Xiangyu-Hu/SPHinXsys |
SPH multiphysics incl. FSI | Apache-2.0 | READ OK |
PySPH pypr/pysph |
SPH | BSD-3-style (LICENSE.txt) | READ OK |
Cabana ECP-copa/Cabana |
particle toolkit | BSD-3-Clause | READ OK |
| Nek5000 | spectral-element CFD | BSD-3-style (LICENSE) | READ OK |
fenris InteractiveComputerGraphics/fenris |
Rust FE library | Apache-2.0 | READ OK |
wgpu gfx-rs/wgpu |
Rust WebGPU | MIT OR Apache-2.0 | READ OK, dependency candidate |
rust-gpu Rust-GPU/rust-gpu |
Rust → SPIR-V | MIT OR Apache-2.0 (API: Apache-2.0) | READ OK |
faer sarah-quinones/faer-rs |
Rust dense/sparse LA | MIT | READ OK |
Part A: Explicit finite element dynamics
A1. Time integration and stability
A1.1 Belytschko, Liu, Moran, Elkhodary. Nonlinear Finite Elements for Continua and Structures, 2nd ed., Wiley 2014. Verdict: build on (the spine of the explicit solver).
- Links. ISBN 978-1-118-63270-3; publisher page https://www.wiley.com/en-us/Nonlinear+Finite+Elements+for+Continua+and+Structures%2C+2nd+Edition-p-9781118632703 (200). No DOI checked.
- Relevant chapters (by topic; chapter numbers from memory of the 2nd edition, check before citing in module docs): updated Lagrangian formulation and the internal-force loop; explicit central difference with the "flowchart" for one step, energy balance check, critical time step and element eigenvalue bounds; constitutive models (hypoelastic–plastic, objective rates: Jaumann, Truesdell, Green–Naghdi); element technology (one-point quadrature, hourglass control, B-bar, assumed strain, shells including Belytschko–Lin–Tsay); contact-impact (penalty, Lagrange multipliers, explicit contact algorithms); stability (linearised stability, energy method).
- Method. Central difference in the half-step form:
v^{n+1/2} = v^{n-1/2} + Δt^n M⁻¹(f_ext − f_int)^n,x^{n+1} = x^n + Δt^{n+1/2} v^{n+1/2}, with a diagonal (lumped) mass so each step is a gather of element internal forces and a nodal division. Stable forΔt ≤ 2/ω_max(with damping ratio ξ:Δt ≤ (2/ω_max)(√(1+ξ²) − ξ)). ω_max is bounded by the largest element eigenvalue (element eigenvalue inequality), givingΔt = α · min_e L_e / c_ewith a safety factor α ≈ 0.9 andc = √((λ+2μ)/ρ)for solids. - Solves. Everything in Part A; the book is the integration framework all the papers below plug into.
- Limits. Conditionally stable; cost ∝ (number of elements) × (end time / Δt), and Δt is set by the smallest or stiffest element anywhere in the model. One distorted sliver element sets the step for the whole model.
- Complexity. The core loop is small (≈1–2k lines); everything hard is in elements, materials and contact.
- Code. None.
A1.2 Courant, Friedrichs, Lewy 1928. Verdict: reference (the CFL condition).
- Citation. R. Courant, K. Friedrichs, H. Lewy. Über die partiellen Differenzengleichungen der mathematischen Physik. Math. Ann. 100:32–74, 1928. DOI 10.1007/BF01448839.
- Use. The origin of
Δt ≤ L/c; cite for the explicit FE and LBM time-step rules.
A1.3 Flanagan & Belytschko 1984, eigenvalues and stable time steps. Verdict: build on.
- Citation. D. P. Flanagan, T. Belytschko. Eigenvalues and Stable Time Steps for the Uniform Strain Hexahedron and Quadrilateral. J. Appl. Mech. 51(1):35–40, 1984. DOI 10.1115/1.3167594.
- Method. Closed-form upper bound on the maximum eigenvalue of the one-point hexahedron/quadrilateral in terms of
its gradient vectors
b_iIand volume; it yields a characteristic length that is tighter and cheaper than "shortest edge" and is exact for a cube. - Solves. The per-element critical time step for the element in A2.1. Tets and shells use their own lengths (tet: volume / largest face area times a factor; shell: area / longest diagonal or side).
- Limits. A bound per element, so it is conservative; nodal estimates (below) can be larger.
- Complexity. Low.
- Note on nodal estimates. Nodal time-step estimates (from nodal mass and an assembled nodal stiffness bound) give larger stable steps on graded meshes. I found no single verified primary paper to cite for them; treat as "reference later" and keep the element estimate as the guaranteed-stable default. (unverified)
A1.4 Lumped mass. Verdict: build on. Row-sum lumping for linear elements (hex8, tet4, quad4, tri3), which is positive; for quadratic elements row-sum gives zero or negative corner masses, so use HRZ (diagonal scaling) lumping or avoid quadratic elements in explicit (the usual choice). Source: A1.1 book; Hughes, The Finite Element Method (Dover 2000, no DOI) for HRZ. (book, unverified page)
A1.5 Olovsson, Simonsson, Unosson 2005, selective mass scaling. Verdict: build on (after plain mass scaling).
- Citation. L. Olovsson, K. Simonsson, M. Unosson. Selective mass scaling for explicit finite element analyses. IJNME 63(10):1436–1445, 2005. DOI 10.1002/nme.1293.
- Method. Conventional mass scaling adds nodal mass to small elements until each reaches a target Δt (adds inertia to rigid-body modes too, so it changes the dynamics). Selective mass scaling adds a non-diagonal mass term that leaves translational (rigid-body) inertia unchanged and lowers only the high frequencies, at the cost of a cheap iterative solve per step.
- Solves. Quasi-static and thin-structure explicit runs whose step is limited by a few small elements.
- Limits. Conventional scaling must report the added mass (% of total) — silent mass scaling is a classic source of wrong answers. Selective scaling needs a solve each step (CG on a well-conditioned system).
- Complexity. Conventional: trivial. Selective: moderate.
- Code. None.
A2. Solid element technology
A2.1 Flanagan & Belytschko 1981, uniform strain hexahedron with orthogonal hourglass control. Verdict: build on (the default solid element).
- Citation. D. P. Flanagan, T. Belytschko. A uniform strain hexahedron and quadrilateral with orthogonal hourglass control. IJNME 17(5):679–706, 1981. DOI 10.1002/nme.1620170504.
- Method. One-point integration with the mean (volume-averaged) gradient operator, so the element passes the patch test and costs one stress update per step. The four hourglass modes per direction are made orthogonal to the linear velocity field (the γ vectors), and a viscous or stiffness-type hourglass resisting force with a user coefficient (≈0.05–0.15) suppresses them without touching constant-strain modes.
- Solves. Fast, lock-free (under one-point integration) hex8 for impact and crash.
- Limits. Hourglass coefficient is a tuning knob; stiffness hourglass is too stiff in bending on coarse meshes, viscous hourglass lets hourglass energy grow in long runs. Monitor hourglass energy against internal energy (rule of thumb < 10%) and report it.
- Complexity. Moderate (≈500 lines for the element with both hourglass types).
- Code. LULESH implements this element but has NO LICENCE in its metadata: don't open. Laghos (BSD-2) is a high-order hydro and does not use this element.
A2.2 Belytschko, Ong, Liu, Kennedy 1984, hourglass control in linear and nonlinear problems. Verdict: reference.
- Citation. CMAME 43(3):251–276, 1984. DOI 10.1016/0045-7825(84)90067-7.
- Method. Unifies hourglass control as stabilisation of the one-point element, gives the stabilisation parameters and their consistency for nonlinear problems.
- Use. Background for choosing coefficients; read with A2.1.
A2.3 Belytschko & Bindeman 1993, assumed strain stabilisation of the hex8. Verdict: build on (second solid formulation).
- Citation. T. Belytschko, L. P. Bindeman. Assumed strain stabilization of the eight node hexahedral element. CMAME 105(2):225–260, 1993. DOI 10.1016/0045-7825(93)90124-G.
- Method. Derive the hourglass (stabilisation) forces from an assumed-strain field instead of an arbitrary coefficient, so the stabilisation stiffness is physical: correct bending with one element through the thickness, no shear locking, and an incompressible variant that avoids volumetric locking. Co-rotational frame.
- Solves. Coarse-mesh bending accuracy that A2.1 lacks, without a tuning coefficient.
- Limits. Physical stabilisation is elastic: it uses the elastic moduli (or a tangent estimate) in plasticity, so it is approximate in large plastic flow.
- Complexity. Moderate–high.
A2.4 Puso 2000, enhanced assumed strain physically stabilised hexahedron. Verdict: reference (later upgrade over A2.3).
- Citation. M. A. Puso. A highly efficient enhanced assumed strain physically stabilized hexahedral element. IJNME 49(8):1029–1064, 2000. DOI 10.1002/1097-0207(20001120)49:8<1029::AID-NME990>3.0.CO;2-3.
- Method. Takes Taylor-expanded EAS (Simo–Rifai) stabilisation to one-point integration; better on distorted (trapezoidal) meshes than Belytschko–Bindeman, still ≈ one-point cost.
- Limits. More algebra; same elastic-stabilisation caveat.
- Complexity. High.
A2.5 Simo & Rifai 1990, enhanced assumed strain. Verdict: reference (implicit solver first).
- Citation. IJNME 29(8):1595–1638, 1990. DOI 10.1002/nme.1620290802.
- Use. EAS hex8 for the implicit solver (M6); background for A2.4. Static condensation per element is awkward in explicit.
A2.6 Selective / reduced integration and B-bar. Verdict: build on (fully integrated hex8 option).
- Citations.
- D. S. Malkus, T. J. R. Hughes. Mixed finite element methods — reduced and selective integration techniques: a unification of concepts. CMAME 15(1):63–81, 1978. DOI 10.1016/0045-7825(78)90005-1.
- T. J. R. Hughes. Generalization of selective integration procedures to anisotropic and nonlinear media. IJNME 15(9):1413–1418, 1980. DOI 10.1002/nme.1620150914.
- Method. Integrate the deviatoric part at 2×2×2 points and the volumetric part at one point (B-bar: replace the dilatational part of B with its element mean). No hourglass modes, no volumetric locking.
- Limits. Eight stress updates per element (≈4–8× the cost of A2.1) and shear locking in bending.
- Complexity. Low given the implicit solver's hex8.
- Shared with M6. The implicit solver needs exactly this element; write it once in a shared crate (Part F).
A2.7 Bonet & Burton 1998, average nodal pressure tetrahedron. Verdict: build on (explicit on tets before hexes exist).
- Citations.
- J. Bonet, A. J. Burton. A simple average nodal pressure tetrahedral element for incompressible and nearly incompressible dynamic explicit applications. Commun. Numer. Methods Eng. 14(5):437–449, 1998. DOI 10.1002/(SICI)1099-0887(199805)14:5<437::AID-CNM162>3.0.CO;2-W.
- J. Bonet, H. Marriott, O. Hassan. An averaged nodal deformation gradient linear tetrahedral element for large strain explicit dynamic applications. CNME 17:551–561, 2001. DOI 10.1002/cnm.429.
- Method. Linear tet with the volumetric strain (pressure) averaged over the elements sharing a node, which removes the volumetric locking of tet4 in nearly incompressible (plastic, rubber) flow. The 2001 paper averages the whole deformation gradient.
- Solves. Explicit on the tet meshes M2 delivers before the hex mesher (M3) exists.
- Limits. Known pressure-checkerboard/spurious low-energy modes in some settings (nodal-integration family); needs a small stabilisation. Plain tet4 must be offered only with a warning for plasticity.
- Complexity. Low–moderate (a nodal gather pass per step).
A3. Shell elements
A3.1 Belytschko, Lin, Tsay 1984, explicit shells (BLT). Verdict: build on (default shell).
- Citation. T. Belytschko, J. I. Lin, C.-S. Tsay. Explicit algorithms for the nonlinear dynamics of shells. CMAME 42(2):225–251, 1984. DOI 10.1016/0045-7825(84)90026-4.
- Method. Four-node quadrilateral with one in-plane integration point, Mindlin plate kinematics in a co-rotational local frame, several through-thickness points for plasticity, and hourglass control. Cost is a small multiple of a solid element's per thickness point. The workhorse of crash simulation.
- Limits. Fails the patch test for warped elements (the co-rotational flat-element assumption); hourglass control again; poor for strongly warped geometry.
- Complexity. Moderate.
A3.2 Belytschko, Wong, Chiang 1992, advances in one-point quadrature shells. Verdict: build on (warping fix for BLT).
- Citation. CMAME 96(1):93–107, 1992. DOI 10.1016/0045-7825(92)90100-X.
- Method. Corrections to BLT for warped geometry (and physical hourglass stabilisation), at little extra cost.
A3.3 Hughes & Liu 1981, degenerated continuum shells. Verdict: reference (second shell, later).
- Citation. T. J. R. Hughes, W. K. Liu. Nonlinear finite element analysis of shells: Part I. Three-dimensional shells. CMAME 26(3):331–362, 1981. DOI 10.1016/0045-7825(81)90121-3.
- Method. Shell derived from a 3D solid by constraining fibres (degenerated continuum); handles warping naturally and thickness change, about 2–4× the cost of BLT with one in-plane point.
- Use. Accuracy option once BLT is verified.
A4. Large deformation constitutive integration
A4.1 Simo & Hughes, Computational Inelasticity, Springer 1998. Verdict: build on.
- Links. DOI 10.1007/b98904.
- Method. Return mapping (closest point projection) for J2 plasticity; radial return for von Mises with isotropic/kinematic hardening is closed form for linear hardening and a scalar Newton iteration for nonlinear hardening; incrementally objective integration of hypoelastic–plastic models (rotate stress to the configuration at the midstep, update, rotate back); consistent tangents (needed by implicit only).
- Solves. The stress update at every integration point.
- Limits. Radial return in explicit is unconditionally stable but first-order accurate in the strain increment; fine since explicit steps are tiny.
- Complexity. Low for J2 radial return; moderate for the objective integration.
A4.2 Krieg & Krieg 1977, accuracy of radial return. Verdict: reference. J. Press. Vessel Technol. 99(4):510–515, 1977. DOI 10.1115/1.3454568. Shows radial return is accurate for the elastic–perfectly plastic model; the standard justification.
A4.3 Hughes & Winget 1980, incrementally objective integration. Verdict: build on.
- Citation. IJNME 15(12):1862–1867, 1980. DOI 10.1002/nme.1620151210.
- Method. Rotate the stress with the incremental rotation from the midpoint velocity gradient (a Cayley transform of the spin increment), so a rigid rotation leaves the stress exact. This is the Jaumann-rate update most explicit codes use.
- Complexity. Low.
A4.4 Dienes 1979, rotation and stress rate. Verdict: build on (as a verification case).
- Citation. J. K. Dienes. On the analysis of rotation and stress rate in deforming bodies. Acta Mech. 32:217–232, 1979. DOI 10.1007/BF01379008.
- Method. Simple shear of a hypoelastic material: the Jaumann rate gives an oscillating shear stress (unphysical), the Green–Naghdi rate a monotonic one. Both have closed-form solutions.
- Use. Analytic verification of the stress-rate implementation (exactly the kind of test the project wants).
A4.5 Flanagan & Taylor 1987, Green–Naghdi stress integration. Verdict: build on (second rate).
- Citation. D. P. Flanagan, L. M. Taylor. An accurate numerical algorithm for stress integration with finite rotations. CMAME 62(3):305–320, 1987. DOI 10.1016/0045-7825(87)90065-X.
- Method. Integrates the rotation of the polar decomposition incrementally (no full polar decomposition each step) and updates stress in the unrotated frame: Green–Naghdi rate at low cost. Used by the PRONTO family.
- Limits. Drift in the rotation over very long runs (re-orthonormalise).
A5. Contact
A5.1 Hallquist, Goudreau, Benson 1985, sliding interfaces with contact-impact. Verdict: build on.
- Citation. CMAME 51(1–3):107–137, 1985. DOI 10.1016/0045-7825(85)90030-1.
- Method. Node-to-segment penalty contact for explicit: each slave node finds its nearest master segment, a penetration produces a penalty force with stiffness scaled from the segment's bulk modulus, area and volume (so it does not reduce the stable step), symmetric (two-pass) treatment, Coulomb friction with a trial-force return, incremental search tracking the previous master segment. This is the original DYNA3D contact.
- Solves. General impact between deformable bodies.
- Limits. Penalty contact allows small penetration and can be noisy; node-to-segment fails at segment edges and corners (snagging, nodes slipping through when the search loses track); initial penetrations must be removed or reported; very soft-against-stiff pairs need soft-constraint penalty (scale on nodal mass/Δt²).
- Complexity. Moderate for the force; high for robust search.
A5.2 Benson & Hallquist 1990, single-surface contact. Verdict: build on (self-contact for buckling).
- Citation. CMAME 78(2):141–163, 1990. DOI 10.1016/0045-7825(90)90098-7.
- Method. Self-contact of one surface (folding shells) with bucket-sort global search; no master/slave pairs needed.
- Solves. Crush and post-buckling.
A5.3 Belytschko & Neal 1991, pinball contact. Verdict: build on (simplest robust option first).
- Citation. T. Belytschko, M. O. Neal. Contact-impact by the pinball algorithm with penalty and Lagrangian methods. IJNME 31(3):547–572, 1991. DOI 10.1002/nme.1620310309.
- Method. Embed spheres ("pinballs") in surface elements; contact is sphere–sphere overlap, which is trivial and vectorises; penalty or Lagrange multiplier enforcement; hierarchical pinballs refine near contact.
- Solves. Robust contact detection without the edge/corner cases of node-to-segment; ideal for erosion (A7) where the surface keeps changing.
- Limits. Contact surface is lumpy; accuracy of the contact pressure is low.
- Complexity. Low.
A5.4 Contact search: Oldenburg & Nilsson 1994 position code; Yang & Laursen 2006 BVH. Verdict: build on (BVH).
- Citations.
- M. Oldenburg, L. Nilsson. The position code algorithm for contact searching. IJNME 37(3):359–386, 1994. DOI 10.1002/nme.1620370302.
- B. Yang, T. A. Laursen. A contact searching algorithm including bounding volume trees applied to finite sliding mortar formulations. Comput. Mech. 41:189–205, 2008 (online 2006). DOI 10.1007/s00466-006-0116-z.
- Method. Global search finds candidate pairs: bucket/position-code sorting into a spatial grid (O(n log n), good for uniform meshes), or a bounding-volume hierarchy refitted each step and rebuilt occasionally (robust to non-uniform meshes and large motion). Local search then computes the closest point on the candidate segment.
- Choice. A BVH with AABBs inflated by
v·Δt·kand refitting, deterministic in build order. The mesher already needs spatial indexing; share it if its API fits. - Complexity. Moderate.
A5.5 Books: Wriggers; Laursen; Hughes et al. 1976. Verdict: reference.
- P. Wriggers. Computational Contact Mechanics, 2nd ed., Springer 2006. DOI 10.1007/978-3-540-32609-0.
- T. A. Laursen. Computational Contact and Impact Mechanics, Springer 2003. DOI 10.1007/978-3-662-04864-1.
- T. J. R. Hughes et al. A finite element method for a class of contact-impact problems. CMAME 8(3):249–276, 1976. DOI 10.1016/0045-7825(76)90018-9. (The impact–release conditions; analytic bar-impact test.)
- Use: mortar/segment-to-segment contact for the implicit solver later; theory of penalty regularisation.
A6. Johnson–Cook plasticity and damage
A6.1 Johnson & Cook 1983 (strength) and 1985 (fracture). Verdict: build on.
- Citations.
- G. R. Johnson, W. H. Cook. A constitutive model and data for metals subjected to large strains, high strain rates and high temperatures. Proc. 7th Int. Symp. on Ballistics, The Hague, 541–547, 1983. No DOI; (unverified) — conference proceedings, not online through Crossref.
- G. R. Johnson, W. H. Cook. Fracture characteristics of three metals subjected to various strains, strain rates, temperatures and pressures. Eng. Fract. Mech. 21(1):31–48, 1985. DOI 10.1016/0013-7944(85)90052-9.
- Method. Flow stress
σ_y = (A + B ε_p^n)(1 + C ln ε̇*)(1 − T*^m), a multiplicative split of hardening, rate and thermal softening (homologous temperature T*; adiabatic heating from plastic work with a Taylor–Quinney factor). Fracture strainε_f = (D1 + D2 e^{D3 σ*})(1 + D4 ln ε̇*)(1 + D5 T*)with stress triaxiality σ*; damageD = Σ Δε_p / ε_faccumulates and the point fails at D = 1. - Solves. Metals under impact, machining, ballistics.
- Limits. Rate term
ln ε̇*is singular at ε̇* → 0 (clamp at 1); T* outside [0, 1] must be clamped; radial return with rate dependence needs a scalar Newton iteration (bounded). Fracture is mesh-dependent without regularisation. Parameter sets are taken from published papers (the 1983/1985 tables), never from a commercial material library. - Complexity. Low on top of A4.1.
A7. Element erosion
A7.1 Johnson & Stryk 1987; Belytschko & Lin 1987. Verdict: build on (simple erosion), reference (eroding contact).
- Citations.
- G. R. Johnson, R. A. Stryk. Eroding interface and improved tetrahedral element algorithms for high-velocity impact computations in three dimensions. Int. J. Impact Eng. 5:411–421, 1987. DOI 10.1016/0734-743X(87)90057-1.
- T. Belytschko, J. I. Lin. A three-dimensional impact-penetration algorithm with erosion. Int. J. Impact Eng. 5:111–127, 1987. DOI 10.1016/0734-743X(87)90033-9.
- Method. Delete an element when a criterion is met (damage D = 1, effective plastic strain, minimum Δt); keep its nodal mass and momentum (optionally as free particles); rebuild the exposed contact surface so the projectile keeps contacting interior faces.
- Limits. Not mass/energy conservative unless the eroded energy is accounted for (report it); results depend on the erosion threshold. Contact surface update is the hard part.
- Complexity. Low for deletion, moderate for the surface update.
A8. Artificial bulk viscosity and shock capturing
A8.1 von Neumann & Richtmyer 1950. Verdict: build on.
- Citation. J. von Neumann, R. D. Richtmyer. A Method for the Numerical Calculation of Hydrodynamic Shocks. J. Appl. Phys. 21(3):232–237, 1950. DOI 10.1063/1.1699639.
- Method. Add a pressure
q(only in compression) quadratic in the velocity jump across the element, spreading shocks over a few elements so the Rankine–Hugoniot jump is reached without oscillation.
A8.2 Wilkins 1980, artificial viscosity in multidimensions. Verdict: build on.
- Citation. M. L. Wilkins. Use of artificial viscosity in multidimensional fluid dynamic calculations. J. Comput. Phys. 36(3):281–303, 1980. DOI 10.1016/0021-9991(80)90161-8.
- Method. The combined form used by explicit FE codes:
q = ρ L (C_q L (ε̇_kk)² − C_l c ε̇_kk)forε̇_kk < 0, with a quadratic (C_q ≈ 1.5) and a linear (C_l ≈ 0.06) term; the stable step becomesΔt = L / (Q + √(Q² + c²)),Q = C_l c + C_q L |ε̇_kk|. Default on in every explicit solid element: without it, impact runs ring. - Limits. Smears shocks over 3–4 elements; spurious heating in shockless compression (wall heating, see Noh).
A8.3 Caramana, Shashkov, Whalen 1998. Verdict: reference (later, for hydro).
- Citation. JCP 144(1):70–97, 1998. DOI 10.1006/jcph.1998.5989.
- Method. Edge-based tensor viscosity with limiters for multidimensional Lagrangian hydro; avoids spurious viscosity in uniform compression and preserves symmetry.
- Code. Laghos (BSD-2) has related high-order viscosities: READ OK.
A9. Hydrocode references
A9.1 Wilkins, Computer Simulation of Dynamic Phenomena, Springer 1999. Verdict: build on (hydro side of the explicit solver).
- Links. DOI 10.1007/978-3-662-03885-7.
- Method. The HEMP lineage: staggered Lagrangian grid, the stress/energy update order, artificial viscosity, elastic–plastic flow with a pressure from an EOS and a deviator from a hypoelastic law with radial return, energy equation coupling, programmed-burn detonation, sliding interfaces; with many worked impact problems.
- Complexity. Moderate, and the order of operations is exactly what the explicit step needs.
A9.2 Benson 1992, Lagrangian and Eulerian hydrocodes. Verdict: build on (survey and design reference).
- Citation. D. J. Benson. Computational methods in Lagrangian and Eulerian hydrocodes. CMAME 99(2–3):235–394, 1992. DOI 10.1016/0045-7825(92)90042-I.
- Method. 160-page survey: Lagrangian step, artificial viscosity, EOS coupling and the energy update, Eulerian and ALE advection (operator split: Lagrangian step then remap), mixed-material cells, interface reconstruction.
- Use. The map for whether and how to add ALE/Eulerian multi-material (blast, fluids with EOS). Read before designing anything Eulerian.
A9.3 Benson 1989, simple ALE. Verdict: reference (later). CMAME 72(3):305–350, 1989. DOI 10.1016/0045-7825(89)90003-0. An operator-split ALE added to a Lagrangian FE code with a donor-cell/van Leer advection pass.
A10. Verification problems (analytic or published experimental, no commercial results)
| Case | Reference | Expected value |
|---|---|---|
| Elastic wave in a bar (step load on a free or fixed end) | d'Alembert; A1.1 book | Wave front at x = c t, c = √(E/ρ) (rod) or √((λ+2μ)/ρ) (constrained); stress σ = ρ c v; reflection doubling at a fixed end. Measures dispersion/overshoot of the element and q. |
| Elastic bar impact on a rigid wall | Hughes et al. 1976 | Contact duration 2L/c, release velocity equal and opposite (energy conserved). |
| Patch test, rigid rotation | A2.1, A4.3 | Constant strain reproduced; zero stress after a 90° rigid rotation. |
| Simple shear, hypoelastic | Dienes 1979 | Closed-form shear stress for Jaumann (oscillating) and Green–Naghdi rates. |
| Uniaxial J2 / Johnson–Cook at constant rate | A4.1, A6.1 | Closed-form flow curve from the model's own equations. |
| Cantilever free vibration | Euler–Bernoulli / M6 modal solver | Period from the analytic first frequency; cross-check with the implicit modal solver. |
| Energy balance | A1.1 | KE + IE + hourglass + contact + eroded − W_ext constant within 1%. |
| Taylor bar impact | G. I. Taylor 1948, Proc. R. Soc. A 194:289–299, DOI 10.1098/rspa.1948.0081; M. L. Wilkins, M. W. Guinan 1973, J. Appl. Phys. 44(3):1200–1206, DOI 10.1063/1.1662328 | Taylor's 1D estimate is analytic (final length ratio vs ρv²/σ_y). Wilkins–Guinan experimental final lengths are published experiments: allowed by the "no commercial data" rule, but owner decision whether experiment-derived expected values may enter the reference suite. |
| Sod, Noh, Sedov (hydro) | Sod 1978 JCP 27(1):1–31, DOI 10.1016/0021-9991(78)90023-2; Noh 1987 JCP 72(1):78–120, DOI 10.1016/0021-9991(87)90074-X | Exact Riemann solution; Noh's exact post-shock density 64 (spherical, γ=5/3); Sedov self-similar solution. Tests q and EOS coupling. |
Part B: Equations of state
All EOS models below give pressure p(ρ, e) (e: specific internal energy, or energy per reference volume E);
the deviatoric stress comes from the strength model (A4/A6). Every EOS in the solver needs: finite-input checks,
the sound speed c² = (∂p/∂ρ)_s = (∂p/∂ρ)_e + (p/ρ²)(∂p/∂e)_ρ (for Δt and q), a tension cut-off, and a guard on
compression singularities.
B1. Mie–Grüneisen with a linear Us–up Hugoniot. Verdict: build on.
- Citations.
- R. G. McQueen, S. P. Marsh, J. W. Taylor, J. N. Fritz, W. J. Carter. The equation of state of solids from shock wave studies. In High-Velocity Impact Phenomena (R. Kinslow, ed.), Academic Press 1970, 293–417. DOI 10.1016/B978-0-12-408950-1.50012-4.
- M. A. Meyers. Dynamic Behavior of Materials. Wiley 1994. DOI 10.1002/9780470172278. (Textbook derivation of Rankine–Hugoniot and Mie–Grüneisen.)
- Method. The Hugoniot
U_s = c_0 + s u_pand Rankine–Hugoniot give, withη = 1 − ρ_0/ρ,p_H = ρ_0 c_0² η / (1 − s η)²ande_H = p_H η / (2ρ_0); off the Hugoniot,p = p_H + Γ ρ (e − e_H)withΓ ρ = Γ_0 ρ_0(orΓ = Γ_0 + a η). Quadratic/cubic Hugoniot fits extend it. - Solves. Metals and water/polymers under shock (impact, penetration, underwater explosion water).
- Limits. Singular at
η = 1/s(guard: error or cap, never NaN); tension branch needs a separate form (linearp = ρ_0 c_0² η) and a spall cut-off; invalid near phase transitions and in expansion to vapour. - Complexity. Low.
B2. JWL for detonation products. Verdict: build on.
- Citations.
- E. L. Lee, H. C. Hornig, J. W. Kury. Adiabatic Expansion of High Explosive Detonation Products. LLNL report UCRL-50422, 1968. DOI 10.2172/4783904 (OSTI).
- B. M. Dobratz. LLNL explosives handbook: properties of chemical explosives and explosive simulants. UCRL-52997, 1981. DOI 10.2172/6530310 (published JWL parameter sets).
- Method.
p = A(1 − ω/(R_1 V)) e^{−R_1 V} + B(1 − ω/(R_2 V)) e^{−R_2 V} + ω E / V, V = relative volume, E = energy per initial volume; fitted to cylinder-test expansion. Used with programmed burn: each element's lighting time = distance from the detonation point / detonation speed D, a burn fraction ramps the pressure in (Wilkins A9.1 describes this). - Solves. High-explosive products; with B1 water, underwater explosion; with an Eulerian/ALE or SPH carrier, blast.
- Limits. Programmed burn ignores shock initiation and shadowing (needs a ray/eikonal lighting time around obstacles); in a Lagrangian mesh the products' expansion tangles the mesh quickly, so practical blast needs ALE/Eulerian (A9.2/A9.3) or SPH (E2).
- Complexity. Low for the EOS; programmed burn moderate.
B3. Ideal gas / gamma law, polynomial, stiffened gas. Verdict: build on.
- Ideal gas
p = (γ − 1) ρ e. Linear polynomialp = C_0 + C_1 μ + C_2 μ² + C_3 μ³ + (C_4 + C_5 μ + C_6 μ²) E,μ = ρ/ρ_0 − 1(a general form that contains ideal gas and linear elastic as special cases; a hydrocode convention, described in A9.2 — write our own description). Stiffened gasp = (γ − 1) ρ e − γ p_∞: O. Le Métayer, J. Massoni, R. Saurel, Int. J. Therm. Sci. 43(3):265–276, 2004, DOI 10.1016/j.ijthermalsci.2003.09.002 (French title in Crossref). - Limits. Polynomial may give negative sound speed in tension for arbitrary coefficients: validate c² > 0 over the admissible range at model check time.
- Complexity. Trivial.
B4. Tabulated EOS. Verdict: build on (simple bilinear table), reference (SESAME-class).
- Method.
p(ρ, e)(orp(ρ, T),e(ρ, T)) on a rectilinear grid with bilinear or monotone bicubic interpolation; for a 1D compaction tablep(ε_v)with unloading slopes (porous materials, soils). - Limits. Thermodynamic consistency (positive c², convexity) is not guaranteed by the user's table: check at model-check time and report the bad cells. The LANL SESAME tables carry their own distribution terms: do not bundle any.
- Reference. R. Menikoff, B. J. Plohr. The Riemann problem for fluid flow of real materials. Rev. Mod. Phys. 61(1):75–130, 1989. DOI 10.1103/RevModPhys.61.75 — convexity (fundamental derivative) conditions an EOS must meet for well-posed shocks.
B5. Tillotson. Verdict: reference (later; for hypervelocity impact).
- Citations.
- J. H. Tillotson. Metallic equations of state for hypervelocity impact. General Atomic report GA-3216, 1962. (unverified: no DOI or OSTI record found by API search).
- A. L. Brundage. Implementation of Tillotson Equation of State for Hypervelocity Impact of Metals, Geologic Materials, and Liquids. Procedia Eng. 58:461–470, 2013. DOI 10.1016/j.proeng.2013.05.053.
- Method. Separate forms for compressed, cold-expanded and hot-expanded (vapour) states with an interpolation region between incipient and complete vaporisation energies.
- Limits. The region switch is discontinuous in published forms; Brundage documents the fix. Needed only for hypervelocity (> ~5 km/s) work.
- Complexity. Low–moderate.
B6. Energy equation coupling and pressure–energy iteration. Verdict: build on (A9.1, A9.2).
- Method. Per element, per step:
e^{n+1} = e^n − ((p^{n+1} + p^n)/2 + q) ΔV/m + (deviatoric work)/m. Sincep^{n+1}depends one^{n+1}, the update is implicit. For EOS linear in energy (p = f(ρ) + g(ρ) e: ideal gas, polynomial, Mie–Grüneisen, JWL) it is solved in closed form; for tabulated or Tillotson, a bounded scalar fixed-point or Newton iteration (≤ 10 iterations, report non-convergence). - Limits. Energy conservation of the whole scheme depends on using the same ΔV for work and volume change, and on adding q-work to e (shock heating).
B7. Shock capturing. Lagrangian explicit captures shocks with artificial viscosity (A8). Godunov/Riemann-solver shock capturing belongs to Eulerian finite volume (E1); not needed for the Lagrangian solver.
Part C: Lattice Boltzmann method
C1. Foundations
C1.1 Chen & Doolen 1998. Verdict: reference (orientation).
- Citation. S. Chen, G. D. Doolen. Lattice Boltzmann method for fluid flows. Annu. Rev. Fluid Mech. 30:329–364, 1998. DOI 10.1146/annurev.fluid.30.1.329.
- Method. Review: from lattice-gas automata to BGK LBM, Chapman–Enskog recovery of Navier–Stokes, boundary conditions, multiphase and thermal extensions.
C1.2 Krüger, Kusumaatmaja, Kuzmin, Shardt, Silva, Viggen. The Lattice Boltzmann Method: Principles and Practice, Springer 2017. Verdict: build on (the spine of the LBM solver).
- Links. DOI 10.1007/978-3-319-44649-3.
- Content used. Velocity sets (D2Q9, D3Q15/19/27) and equilibria; Chapman–Enskog; unit conversion and the choice of lattice parameters; stream-collide algorithm; BGK, TRT and MRT; bounce-back, interpolated bounce-back, Zou–He and other boundary conditions; forces (Guo); stability and accuracy analysis; sound waves. The book has companion example code on its site: licence not checked — do not open until checked.
- Method in one line.
f_i(x + c_i Δt, t + Δt) = f_i(x, t) + Ω_i(f); density and momentum are moments of f; viscosityν = c_s² (τ − ½) Δtwithc_s² = 1/3in lattice units. - Limits (general, LBM): weakly compressible — the error is O(Ma²), so lattice velocity
u_lat ≲ 0.1(Ma ≲ 0.17);τ → ½(high Re on a coarse grid) destabilises BGK; uniform Cartesian grid, so curved walls are staircased unless interpolated BCs are used; acoustic time stepΔt ∝ Δx(acoustic scaling) or∝ Δx²(diffusive scaling) makes incompressible low-speed flows costly. - Complexity. BGK D3Q19 with bounce-back on a uniform grid: ≈1k lines. Everything production-grade (refinement, turbulence, BCs, GPU) is the real work.
C1.3 Bhatnagar, Gross, Krook 1954; Qian, d'Humières, Lallemand 1992. Verdict: build on (BGK as the first collision).
- P. L. Bhatnagar, E. P. Gross, M. Krook. Phys. Rev. 94(3):511–525, 1954. DOI 10.1103/PhysRev.94.511.
- Y. H. Qian, D. d'Humières, P. Lallemand. Lattice BGK Models for Navier-Stokes Equation. EPL 17(6):479, 1992. DOI 10.1209/0295-5075/17/6/001.
- Method. Single relaxation toward a second-order Hermite equilibrium; the DnQm lattices.
- Limits. Viscosity-dependent wall location with bounce-back; unstable at low viscosity.
C1.4 He & Luo 1997, incompressible LBM. Verdict: reference. J. Stat. Phys. 88:927–944, 1997. DOI 10.1023/B:JOSS.0000015179.12689.e4. An equilibrium that removes O(Ma²) compressibility error in steady flows; useful for steady validation.
C1.5 Sterling & Chen 1996; Lallemand & Luo 2000 — stability. Verdict: reference.
- J. D. Sterling, S. Chen. Stability Analysis of Lattice Boltzmann Methods. JCP 123(1):196–206, 1996. DOI 10.1006/jcph.1996.0016.
- P. Lallemand, L.-S. Luo. Theory of the lattice Boltzmann method: Dispersion, dissipation, isotropy, Galilean invariance, and stability. PRE 61:6546–6562, 2000. DOI 10.1103/PhysRevE.61.6546.
- Use. Linear stability (von Neumann) analysis of BGK/MRT; the source for the stable (u, τ) region and the case for MRT.
C1.6 Guo, Zheng, Shi 2002, forcing. Verdict: build on. PRE 65:046308, 2002. DOI 10.1103/PhysRevE.65.046308. The second-order body-force scheme every IB-LBM coupling (D2) needs.
C2. Collision operators
C2.1 d'Humières et al. 2002, MRT in 3D. Verdict: build on (second collision).
- Citation. D. d'Humières, I. Ginzburg, M. Krafczyk, P. Lallemand, L.-S. Luo. Multiple-relaxation-time lattice Boltzmann models in three dimensions. Phil. Trans. R. Soc. A 360(1792):437–451, 2002. DOI 10.1098/rsta.2001.0955.
- Method. Collide in moment space with a separate relaxation rate per moment group (D3Q15/D3Q19 matrices given); free rates damp non-hydrodynamic modes, raising stability and fixing the wall location.
- Limits. Still loses stability at very high Re; parameters need care.
- Complexity. Low–moderate (a constant 19×19 transform).
C2.2 Ginzburg, Verhaeghe, d'Humières 2008, TRT. Verdict: build on (default over BGK).
- Citation. Commun. Comput. Phys. 3(2):427–478, 2008. DOI 10.4208/cicp.2008.v3.p427.
- Method. Two relaxation rates (symmetric/antisymmetric parts); the "magic parameter" Λ = 3/16 puts the bounce-back wall exactly halfway and makes the solution viscosity-independent in steady flow. BGK cost, much of MRT's benefit.
- Complexity. Low.
C2.3 Geier et al. 2015, cumulant LBM. Verdict: build on (high-Re collision, D3Q27).
- Citations.
- M. Geier, M. Schönherr, A. Pasquali, M. Krafczyk. The cumulant lattice Boltzmann equation in three dimensions: Theory and validation. Comput. Math. Appl. 70(4):507–547, 2015. DOI 10.1016/j.camwa.2015.05.001.
- M. Geier, A. Pasquali, M. Schönherr. Parametrization of the cumulant lattice Boltzmann method for fourth order accurate diffusion part I. JCP 348:862–888, 2017. DOI 10.1016/j.jcp.2017.05.040.
- Method. Relax statistically independent cumulants (computed via a central-moment chain transform on D3Q27); Galilean invariant and very stable; the 2017 parametrisation chooses the free rates so the scheme is fourth-order accurate in diffusion, and acts as an implicit LES at high Re without an explicit sub-grid model.
- Limits. D3Q27 (27 populations: ≈40% more memory and bandwidth than D3Q19); the transform is long (hundreds of flops) but bandwidth, not flops, limits LBM; a limiter is needed for under-resolved flows.
- Complexity. Moderate–high (careful transcription of the transforms; test each against the moment definitions).
- Code. VirtualFluids and lbmpy implement it: both GPL-3.0, FORBIDDEN. Implement from the paper.
C2.4 Regularised and recursive-regularised collision. Verdict: build on (alternative to cumulant; compare).
- Citations.
- J. Latt, B. Chopard. Lattice Boltzmann method with regularized pre-collision distribution functions. Math. Comput. Simul. 72(2–6):165–168, 2006. DOI 10.1016/j.matcom.2006.05.017.
- O. Malaspinas. Increasing stability and accuracy of the lattice Boltzmann scheme: recursivity and regularization. arXiv:1505.06900, 2015. https://arxiv.org/abs/1505.06900 (200).
- C. Coreixas, G. Wissocq, G. Puigt, J.-F. Boussuge, P. Sagaut. Recursive regularization step for high-order lattice Boltzmann methods. PRE 96:033306, 2017. DOI 10.1103/PhysRevE.96.033306.
- C. Coreixas, B. Chopard, J. Latt. Comprehensive comparison of collision models in the lattice Boltzmann framework: Theory and investigations. PRE 100:033305, 2019. DOI 10.1103/PhysRevE.100.033305.
- Method. Before collision, project the non-equilibrium part onto its second-order Hermite component (regularised), or reconstruct higher-order Hermite coefficients recursively from it (recursive regularised): filters the ghost modes that destabilise BGK. Coreixas 2019 compares BGK, MRT (raw/central/Hermite moments), cumulant, regularised and recursive-regularised on the same linear stability and benchmark cases — the paper to pick the operator with.
- Limits. Regularised adds numerical dissipation; RR is near-cumulant in stability on D3Q19/27.
- Code. STLBM (MIT) has BGK/TRT/regularised kernels: READ OK.
C2.5 Velocity sets. D3Q19 for laminar and moderate Re (cheapest isotropic-enough set); D3Q27 for cumulant and wall-bounded turbulence. Kang & Hassan 2013 show D3Q19 artefacts in wall-bounded turbulence: S. K. Kang, Y. A. Hassan, JCP 232(1):100–117, 2013, DOI 10.1016/j.jcp.2012.07.023. Verdict: reference.
C3. Boundary conditions
C3.1 Bounce-back; Ladd 1994 moving walls. Verdict: build on.
- A. J. C. Ladd. Numerical simulations of particulate suspensions via a discretized Boltzmann equation. Part 1. JFM 271:285–309, 1994. DOI 10.1017/S0022112094001771.
- Method. Halfway bounce-back reflects populations crossing a wall link: second-order for a wall halfway between
nodes, staircase otherwise. Ladd adds the moving-wall momentum term (
−2 w_i ρ c_i·u_w / c_s²) and the momentum-exchange force on the body, which is how LBM computes drag/lift and FSI loads with bounce-back. - Complexity. Low.
C3.2 Bouzidi, Firdaouss, Lallemand 2001, interpolated bounce-back. Verdict: build on.
- Citation. Phys. Fluids 13(11):3452–3459, 2001. DOI 10.1063/1.1399290.
- Method. For each wall link, the fraction q ∈ (0, 1] of the link inside the fluid; linear or quadratic interpolation of the reflected population, second-order for curved walls.
- Needs from meshing. q comes from ray–triangle intersection of the lattice link with the face-tagged boundary surface — robust predicates (fieldcraft-mesh) give the inside/outside decision; q itself is a constructed value.
- Limits. Not mass conservative; small q (< ~0.01) can destabilise: treat as q = 0 or use the Mei variant.
- Also. R. Mei, L.-S. Luo, W. Shyy, JCP 155(2):307–330, 1999, DOI 10.1006/jcph.1999.6334 — the alternative curved-boundary scheme. Reference.
C3.3 Zou & He 1997, pressure and velocity BCs. Verdict: build on (inlet/outlet).
- Citation. Phys. Fluids 9(6):1591–1598, 1997. DOI 10.1063/1.869307.
- Method. Unknown incoming populations from the prescribed velocity (or density) plus bounce-back of the non-equilibrium part normal to the boundary.
- Limits. Defined for flat, axis-aligned boundaries; corners need special treatment; unstable at high Re outlets — use regularised or convective/sponge outlets there.
C4. Grid refinement
C4.1 Filippova & Hänel 1998; Dupuis & Chopard 2003. Verdict: build on (Dupuis–Chopard cell-vertex refinement).
- O. Filippova, D. Hänel. Grid Refinement for Lattice-BGK Models. JCP 147(1):219–228, 1998. DOI 10.1006/jcph.1998.6089.
- A. Dupuis, B. Chopard. Theory and applications of an alternative lattice Boltzmann grid refinement algorithm. PRE 67:066707, 2003. DOI 10.1103/PhysRevE.67.066707.
- Method. Nested grids at ratio 2 with time-step ratio 2 (acoustic scaling); τ rescaled per level to keep ν; populations at the interface are rescaled non-equilibrium parts with spatial and temporal interpolation from the coarse level.
- Limits. Interface artefacts (spurious acoustic reflections); mass conservation not exact in the vertex scheme.
C4.2 Rohde et al. 2006, mass-conservative cell-centred refinement. Verdict: build on (with the octree).
- Citation. M. Rohde, D. Kandhai, J. J. Derksen, H. E. A. van den Akker. A generic, mass conservative local grid refinement technique for lattice-Boltzmann schemes. IJNMF 51(4):439–468, 2006. DOI 10.1002/fld.1140.
- Method. Volumetric (cell-centred) formulation: a coarse cell is split into 8 fine cells, populations are distributed homogeneously (explode) and gathered (coalesce) across levels; exactly mass conservative and naturally fits an octree with 2:1 balance.
- Fit. The M3 octree (2:1-balanced, adapted to the surface) is the same data structure. Reuse it.
C4.3 Lagrava et al. 2012. Verdict: reference. JCP 231(14):4808–4822, 2012. DOI 10.1016/j.jcp.2012.03.015. Multi-domain refinement with filtering of the coarse-to-fine transfer (the Palabos approach; the paper is fine to read, the code is AGPL).
C5. Turbulence
C5.1 Smagorinsky LES in LBM: Smagorinsky 1963; Hou et al. 1995; Krafczyk, Tölke, Luo 2003. Verdict: build on.
- J. Smagorinsky. Mon. Weather Rev. 91(3):99–164, 1963. DOI 10.1175/1520-0493(1963)091<0099:GCEWTP>2.3.CO;2.
- S. Hou, J. Sterling, S. Chen, G. D. Doolen. A lattice Boltzmann subgrid model for high Reynolds number flows. Fields Inst. Commun. 6:151–166, 1996 (Crossref year 1995). DOI 10.1090/fic/006/12.
- M. Krafczyk, J. Tölke, L.-S. Luo. Large-eddy simulations with a multiple-relaxation-time LBE model. Int. J. Mod. Phys. B 17:33–39, 2003. DOI 10.1142/S0217979203017059.
- Method. The strain rate is local in LBM (from the non-equilibrium second moment), so
ν_t = (C_s Δ)² |S|is computed without finite differences and enters as a local τ. Cheap and local. - Limits. Smagorinsky is over-dissipative near walls (needs damping or a wall model) and in transition.
C5.2 Malaspinas & Sagaut 2012, 2014 — consistent SGS and wall models. Verdict: reference (wall model later).
- Consistent subgrid scale modelling for lattice Boltzmann methods. JFM 700:514–542, 2012. DOI 10.1017/jfm.2012.155.
- Wall model for large-eddy simulation based on the lattice Boltzmann method. JCP 275:25–40, 2014. DOI 10.1016/j.jcp.2014.06.020.
- Method. Derives the SGS closure consistently from the filtered LB equation; the wall model imposes a log-law (Musker profile) wall shear stress through a regularised BC at the first off-wall node.
- Use. Wall-modelled LES is what makes industrial-Re external flow tractable; it comes after laminar validation.
C6. Memory layouts and GPU
C6.1 Bailey et al. 2009, AA pattern. Verdict: build on.
- Citation. P. Bailey, J. Myre, S. D. C. Walsh, D. J. Lilja, M. O. Saar. Accelerating Lattice Boltzmann Fluid Flow Simulations Using Graphics Processors. ICPP 2009, 550–557. DOI 10.1109/ICPP.2009.38.
- Method. One population array updated in place by alternating two kernels (even step: read/write own cell reversed; odd step: read/write neighbours), halving memory against the two-array (A–B) scheme with no extra traffic.
- Limits. Even/odd steps have different index maps; boundaries must be written for both.
C6.2 Geier & Schönherr 2017, esoteric twist. Verdict: reference (alternative to AA).
- Citation. Esoteric Twist: An Efficient in-Place Streaming Algorithmus for the Lattice Boltzmann Method on Massively Parallel Hardware. Computation 5(2):19, 2017. DOI 10.3390/computation5020019.
- Method. In-place streaming with a single kernel by storing populations at "twisted" locations (each cell owns the populations pointing in negative directions of itself and its neighbours), with pointer swaps instead of alternating kernels; works on sparse/block grids.
- Also. Lehmann 2022, Esoteric Pull and Esoteric Push, Computation 10(6):92, DOI 10.3390/computation10060092: simpler variants. The paper is open access and readable; its author's code (FluidX3D) is non-commercial: FORBIDDEN.
- Wittmann et al. 2013, Comparison of different propagation steps for lattice Boltzmann methods, Comput. Math. Appl. 65(6):924–935, DOI 10.1016/j.camwa.2012.05.002: measured comparison of A–B, AA, esoteric twist and others on CPUs. Reference.
C6.3 Tölke & Krafczyk 2008; Latt et al. 2021. Verdict: reference.
- J. Tölke, M. Krafczyk. TeraFLOP computing on a desktop PC with GPUs for 3D CFD. Int. J. Comput. Fluid Dyn. 22(7):443–456, 2008. DOI 10.1080/10618560802238275. (DOI resolves; publisher page 403 to a script.)
- J. Latt, C. Coreixas, J. Beny. Cross-platform programming model for many-core lattice Boltzmann simulations. PLoS ONE 16(4):e0250306, 2021. DOI 10.1371/journal.pone.0250306. Code STLBM: MIT, READ OK — the best readable reference for data layouts (AoS vs SoA, AA) with measured performance.
- J. Latt et al. Palabos: Parallel Lattice Boltzmann Solver. Comput. Math. Appl. 81:334–350, 2021. DOI 10.1016/j.camwa.2020.03.022. Paper: read for architecture (block-structured multi-block, data processors). Code: AGPL, FORBIDDEN.
Cost model. LBM is memory-bound: a D3Q19 update moves 2 × 19 populations. In f32 that is 152 B/cell/step, so a 500 GB/s GPU tops out near 3 G cell-updates/s and a 50 GB/s CPU near 0.3 G (half in f64). Memory: AA-pattern D3Q19 f32 ≈ 80 B/cell (with flags): 10⁸ cells ≈ 8 GB. These numbers decide the GPU question (E3).
C7. Free-surface LBM
C7.1 Körner et al. 2005; Thürey 2007; Thürey & Rüde 2009. Verdict: reference (a later milestone).
- C. Körner, M. Thies, T. Hofmann, N. Thürey, U. Rüde. Lattice Boltzmann Model for Free Surface Flow for Modeling Foaming. J. Stat. Phys. 121:179–196, 2005. DOI 10.1007/s10955-005-8879-8.
- N. Thürey. Physically based animation of free surface flows with the lattice Boltzmann method. PhD thesis, FAU Erlangen-Nürnberg, 2007. PDF https://www10.cs.fau.de/publications/dissertations/Diss_2007-Thuerey.pdf (200, application/pdf; title page not machine-checked).
- N. Thürey, U. Rüde. Stable free surface flows with the lattice Boltzmann method on adaptively coarsened grids. Comput. Vis. Sci. (Crossref issue year 2008; volume/pages not checked). DOI 10.1007/s00791-008-0090-4.
- Method. Volume-of-fluid-like cell types (fluid, interface, gas) with a fill level; missing populations at the interface reconstructed from the gas pressure; mass exchange through links; cell conversion with flag propagation.
- Solves. Sloshing, slamming, filling — the FSI cases engineers ask for with water.
- Limits. Single-phase (gas pressure only); mass loss without care; many special cases in cell conversion.
- Complexity. High.
C8. Validation cases
| Case | Reference | Expected |
|---|---|---|
| Poiseuille channel/pipe | analytic | parabolic profile; second-order convergence with halfway BB (TRT magic Λ gives exact steady result) |
| Couette, Womersley | analytic | linear profile; Womersley oscillatory solution |
| Taylor–Green vortex (decay) | analytic | exp(−2νk²t) decay; measures viscosity and order |
| Lid-driven cavity Re 100–1000 | U. Ghia, K. N. Ghia, C. T. Shin, JCP 48(3):387–411, 1982, DOI 10.1016/0021-9991(82)90058-4 | published numerical reference values (not analytic: owner decision, same as Taylor bar) |
| Flow past a cylinder 2D-1/2D-2/3D | M. Schäfer, S. Turek, Benchmark computations of laminar flow around a cylinder, NNFM 52:547–566, 1996, DOI 10.1007/978-3-322-89849-4_39; LBM results: J. Geller et al., Comput. Fluids 35:888–897, 2006, DOI 10.1016/j.compfluid.2005.08.009 | drag/lift coefficient intervals and Strouhal number given by the benchmark (published numerical reference) |
| Sphere Stokes drag | analytic | F = 6πμRU (with confinement correction) |
Part D: Fluid–structure interaction
D1. Immersed boundary
D1.1 Peskin 2002. Verdict: build on.
- Citation. C. S. Peskin. The immersed boundary method. Acta Numerica 11:479–517, 2002. DOI 10.1017/S0962492902000077.
- Method. The structure is a Lagrangian set of points on a fixed Eulerian fluid grid; regularised delta functions (2-, 3-, 4-point kernels with stated moment conditions) spread structure forces to the grid and interpolate fluid velocity back. No body-fitted fluid mesh, so arbitrarily large motion is free.
- Limits. The interface is smeared over ~2 cells (first-order near the wall); force is computed from the structure's constitutive law (classic) which brings a stiff time-step restriction for stiff structures.
- Code. IBAMR (BSD-3-style): READ OK. IB2d (GPL-3.0): FORBIDDEN.
D1.2 Mittal & Iaccarino 2005; Uhlmann 2005. Verdict: reference / build on.
- R. Mittal, G. Iaccarino. Immersed boundary methods. Annu. Rev. Fluid Mech. 37:239–261, 2005. DOI 10.1146/annurev.fluid.37.061903.175743. (Review: continuous vs discrete forcing, sharp-interface methods.)
- M. Uhlmann. An immersed boundary method with direct forcing for the simulation of particulate flows. JCP 209(2):448–476, 2005. DOI 10.1016/j.jcp.2005.03.017. Direct forcing: the force is whatever makes the interpolated fluid velocity equal the structure velocity, so no stiff spring. Build on.
D1.3 Feng & Michaelides 2004; Wu & Shu 2009 — IB-LBM. Verdict: build on (Wu–Shu).
- Z.-G. Feng, E. E. Michaelides. The immersed boundary-lattice Boltzmann method for solving fluid–particles interaction problems. JCP 195(2):602–628, 2004. DOI 10.1016/j.jcp.2003.10.013.
- J. Wu, C. Shu. Implicit velocity correction-based immersed boundary-lattice Boltzmann method and its applications. JCP 228(6):1963–1979, 2009. DOI 10.1016/j.jcp.2008.11.019.
- Method. Feng–Michaelides: penalty (feedback) forcing in LBM via a body-force term. Wu–Shu: treat the velocity correction at all Lagrangian points implicitly — one small linear system per step (matrix of delta-kernel overlaps) — so the no-slip condition is satisfied exactly at the markers with no penetration.
- Limits. Wu–Shu solves a dense-ish system in the number of markers each step (factor once for rigid bodies, re-solve for deforming ones; use CG). Smeared interface, so wall shear is first-order.
D1.4 Momentum-exchange bounce-back for moving bodies (Ladd C3.1, Bouzidi C3.2) is the sharp-interface alternative to IB in LBM: cells are uncovered/covered as the body moves (refill rule needed). Verdict: reference — IB is simpler with a deforming FE surface; bounce-back is better for rigid or slowly deforming walls.
D2. LBM coupled to finite elements
D2.1 Kollmannsberger et al. 2009. Verdict: reference. S. Kollmannsberger, S. Geller, A. Düster, J. Tölke, C. Sorger, M. Krafczyk, E. Rank. Fixed-grid fluid–structure interaction in two dimensions based on a partitioned Lattice Boltzmann and p-FEM approach. IJNME 79(7):817–845, 2009. DOI 10.1002/nme.2581. Partitioned implicit coupling (structure solved implicitly with high-order p-FEM) with interpolated bounce-back on a fixed LBM grid; includes Turek–Hron-type validation.
D2.2 De Rosis et al. 2013/2014. Verdict: reference. A. De Rosis, G. Falcucci, S. Ubertini, F. Ubertini. A coupled lattice Boltzmann-finite element approach for two-dimensional fluid–structure interaction. Comput. Fluids 86:558–568, 2013. DOI 10.1016/j.compfluid.2013.08.004. Explicit-in-time staggered LBM–FE coupling for flexible plates.
D2.3 Li & Favier 2017. Verdict: build on (closest to our design). Z. Li, J. Favier. A non-staggered coupling of finite element and lattice Boltzmann methods via an immersed boundary scheme for fluid-structure interaction. Comput. Fluids 143:90–102, 2017. DOI 10.1016/j.compfluid.2016.11.008. IB-LBM fluid coupled to a nonlinear FE structure with synchronous time stepping; validated on flexible-flag benchmarks.
D2.4 Owen, Leonardi, Feng 2011. Verdict: reference. IJNME 87(1–5):66–95, 2011 (online 2010). DOI 10.1002/nme.2985. LBM with immersed moving boundaries (partial-volume bounce-back) coupled to explicit discrete/finite elements — evidence that explicit structure + LBM with subcycling works.
D3. Partitioned coupling and stability
D3.1 Causin, Gerbeau, Nobile 2005, added mass. Verdict: build on (as the design constraint).
- Citation. P. Causin, J.-F. Gerbeau, F. Nobile. Added-mass effect in the design of partitioned algorithms for fluid–structure problems. CMAME 194(42–44):4506–4527, 2005. DOI 10.1016/j.cma.2004.12.005.
- Result. For incompressible flow, explicit (loosely coupled) partitioned schemes are unconditionally unstable when the structure-to-fluid mass ratio falls below a geometry-dependent threshold — and refining Δt makes it worse. Strongly coupled (iterated) schemes converge only with relaxation whose required strength grows as the mass ratio drops.
- Consequence. Light structures in water (membranes, valves, Turek–Hron FSI3 with ρ_s/ρ_f = 1) need strong coupling with IQN (D3.3). Heavy structures (steel plates in water, anything in air) work loosely coupled.
- Also: C. Förster, W. A. Wall, E. Ramm, CMAME 196(7):1278–1293, 2007, DOI 10.1016/j.cma.2006.09.002 — the same instability for sequential staggered coupling, and why predictors don't cure it. Reference.
- Serino, Banks, Henshaw, Schwendeman 2019, A stable added-mass partitioned (AMP) algorithm for elastic solids and incompressible flow, JCP 399:108923, DOI 10.1016/j.jcp.2019.108923: Robin-type interface conditions derived from the solid's characteristics give a stable loosely coupled scheme even for light solids. Reference (research; promising for explicit solids, whose characteristic impedance is cheap).
D3.2 Küttler & Wall 2008, Aitken relaxation. Verdict: build on (first strong coupling).
- Citation. U. Küttler, W. A. Wall. Fixed-point fluid–structure interaction solvers with dynamic relaxation. Comput. Mech. 43:61–72, 2008. DOI 10.1007/s00466-008-0255-5.
- Method. Fixed-point (Dirichlet–Neumann) iteration on the interface displacement with Aitken's Δ² dynamic relaxation factor computed from the last two residuals; also steepest-descent variants.
- Limits. Convergence degrades with strong added mass; still the cheapest robust starting point.
- Complexity. Low (≈100 lines).
- Code. 4C (LGPL-3.0): FORBIDDEN.
D3.3 Degroote, Bathe, Vierendeels 2009, IQN-ILS. Verdict: build on (production strong coupling).
- Citation. J. Degroote, K.-J. Bathe, J. Vierendeels. Performance of a new partitioned procedure versus a monolithic procedure in fluid–structure interaction. Comput. Struct. 87(11–12):793–801, 2009. DOI 10.1016/j.compstruc.2008.11.013.
- Method. Interface quasi-Newton with an approximate inverse Jacobian from least squares on the differences of previous residuals and outputs (black-box: needs only the two solvers' input/output); within ~5–10 iterations even for strong added mass; competitive with monolithic.
- Limits. The least-squares system becomes ill-conditioned as columns accumulate: filter (Haelterman et al. 2016, Comput. Struct. 171:9–17, DOI 10.1016/j.compstruc.2016.04.001, build on) and reuse columns from earlier steps with care.
- Complexity. Low–moderate (QR updates on a tall skinny matrix).
- Code. preCICE (LGPL-3.0) FORBIDDEN; Kratos core (BSD-style) READ OK — check the CoSimulation application's own licence file first.
D3.4 Farhat et al. 2010, explicit–explicit staggered for compressible FSI. Verdict: reference (the explicit–explicit path).
- Citation. C. Farhat, A. Rallu, K. Wang, T. Belytschko. Robust and provably second-order explicit–explicit and implicit–explicit staggered time-integrators for highly non-linear compressible fluid–structure interaction problems. IJNME 84(1):73–107, 2010. DOI 10.1002/nme.2883.
- Method. Staggered schemes with a carefully placed fluid/structure time offset that are second-order and stable for compressible flow + explicit structure (the added-mass problem is far milder for compressible fluids).
- Use. LBM is a weakly compressible explicit scheme; this is the closest analysis for explicit LBM + explicit FE.
D4. ALE
D4.1 Donea et al. 2004; Hughes, Liu, Zimmermann 1981. Verdict: reference (not first).
- J. Donea, A. Huerta, J.-Ph. Ponthot, A. Rodríguez-Ferran. Arbitrary Lagrangian–Eulerian methods. Encyclopedia of Computational Mechanics, Wiley 2004. DOI 10.1002/0470091355.ecm009.
- T. J. R. Hughes, W. K. Liu, T. K. Zimmermann. Lagrangian-Eulerian finite element formulation for incompressible viscous flows. CMAME 29(3):329–349, 1981. DOI 10.1016/0045-7825(81)90049-9.
- Method. The mesh moves with an arbitrary velocity: Lagrangian at the FSI interface, Eulerian far away, with mesh smoothing and the convective term relative to mesh motion; geometric conservation law.
- Why not first. LBM is fixed-grid; ALE needs a body-fitted, moving fluid mesh and a FV/FE fluid solver. ALE in the explicit solver (A9.3) is a different use (multi-material hydro) and comes after Lagrangian.
D5. Interface data transfer
D5.1 de Boer, van Zuijlen, Bijl 2007; Farhat, Lesoinne, Le Tallec 1998. Verdict: build on.
- A. de Boer, A. H. van Zuijlen, H. Bijl. Review of coupling methods for non-matching meshes. CMAME 196(8):1515–1525, 2007. DOI 10.1016/j.cma.2006.03.017.
- C. Farhat, M. Lesoinne, P. Le Tallec. Load and motion transfer algorithms for fluid/structure interaction problems with non-matching discrete interfaces. CMAME 157(1–2):95–114, 1998. DOI 10.1016/S0045-7825(97)00216-8.
- Method. Nearest neighbour, nearest projection (project each fluid point onto the structural surface and use the
element's shape functions), and RBF; conservative transfer: if displacements map with H (
u_f = H u_s) then forces map with Hᵀ (f_s = Hᵀ f_f), which conserves energy over the interface. - Use. With IB-LBM the Lagrangian markers are the structural surface nodes (or quadrature points of its faces), so mapping reduces to the IB kernel plus Hᵀ. Projection mapping is needed only for body-fitted coupling.
D5.2 Beckert & Wendland 2001, RBF. Verdict: reference (needed only for non-IB couplings). Aerosp. Sci. Technol. 5(2):125–134, 2001. DOI 10.1016/S1270-9638(00)01087-7. Compactly supported Wendland RBF interpolation for mesh-free interface mapping.
D6. Verification
| Case | Reference | Expected |
|---|---|---|
| Turek–Hron FSI1/FSI2/FSI3 | S. Turek, J. Hron, Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow, in Fluid-Structure Interaction, LNCSE 53:371–385, Springer 2006, DOI 10.1007/3-540-34596-5_15 | Tip displacement amplitude/frequency, drag/lift (published numerical reference values). FSI1 steady; FSI2 large periodic motion (ρ_s/ρ_f = 10); FSI3 strong added mass (ρ_s/ρ_f = 1) — the IQN test. |
| Rigid cylinder in a fluid, added-mass coefficient | potential flow (analytic) | C_a = 1 for a circular cylinder; tests the coupling's inertia, not just loads |
| 1D piston / elastic slab on a fluid column | analytic | linear acoustic–structure solution; checks energy conservation of the transfer |
| Sphere settling (terminal velocity, Stokes regime) | analytic | U = 2(ρ_s − ρ_f) g R² / (9μ) with wall correction |
Part E: Alternatives and GPU compute
E1. Finite-volume CFD (SIMPLE/PISO). Verdict: reference (not first).
- S. V. Patankar, D. B. Spalding. A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. Int. J. Heat Mass Transf. 15(10):1787–1806, 1972. DOI 10.1016/0017-9310(72)90054-3.
- R. I. Issa. Solution of the implicitly discretised fluid flow equations by operator-splitting. JCP 62(1):40–65, 1986. DOI 10.1016/0021-9991(86)90099-9.
- C. M. Rhie, W. L. Chow. AIAA J. 21(11):1525–1532, 1983. DOI 10.2514/3.8284. (Collocated-grid pressure–velocity coupling.)
- J. H. Ferziger, M. Perić, R. L. Street. Computational Methods for Fluid Dynamics, 4th ed., Springer 2020. DOI 10.1007/978-3-319-99693-6.
- Why LBM first anyway. FV needs a body-fitted (polyhedral or hex-dominant) fluid mesh, a pressure Poisson solve (algebraic multigrid in pure Rust: real work) and turbulence-model wall functions tuned to y+; its robustness lives in the mesh quality, which is exactly what our meshers will be judged on. LBM needs only a voxel/octree grid from the surface (no fluid volume mesh to fail), is explicit and local (trivially parallel, GPU-friendly, wasm-friendly), and its FSI with IB needs no mesh motion. LBM is the right first fluid solver for incompressible, low-Mach, transient flow around complex geometry. FV is the right choice for steady RANS at high Re, compressible high-Mach flow and heat transfer with conjugate solids, none of which LBM does well. If wrong: if owners mostly want steady internal flows with pressure drop at high Re (pipes, manifolds), LBM spends hours of transient time-stepping to reach a steady state that a SIMPLE solver reaches in minutes; that is the trigger to add FV.
E2. SPH for fluids and impact. Verdict: reference (a later, separate path for fragmentation and blast).
- J. J. Monaghan. Smoothed particle hydrodynamics. Rep. Prog. Phys. 68(8):1703–1759, 2005. DOI 10.1088/0034-4885/68/8/R01.
- L. D. Libersky, A. G. Petschek, T. C. Carney, J. R. Hipp, F. A. Allahdadi. High Strain Lagrangian Hydrodynamics. JCP 109(1):67–75, 1993. DOI 10.1006/jcph.1993.1199. (SPH with material strength.)
- J. W. Swegle, D. L. Hicks, S. W. Attaway. Smoothed Particle Hydrodynamics Stability Analysis. JCP 116(1):123–134, 1995. DOI 10.1006/jcph.1995.1010. (The tensile instability.)
- G. R. Johnson, R. A. Stryk, S. R. Beissel. SPH for high velocity impact computations. CMAME 139:347–373, 1996. DOI 10.1016/S0045-7825(96)01089-4.
- S. W. Attaway, M. W. Heinstein, J. W. Swegle. Coupling of smooth particle hydrodynamics with the finite element method. Nucl. Eng. Des. 150:199–205, 1994. DOI 10.1016/0029-5493(94)90136-8.
- C. Antoci, M. Gallati, S. Sibilla. Numerical simulation of fluid–structure interaction by SPH. Comput. Struct. 85(11–14):879–890, 2007. DOI 10.1016/j.compstruc.2007.01.002.
- Assessment. SPH shares the explicit solver's whole stack (time step, EOS, Johnson–Cook, artificial viscosity,
contact via the same penalty), so it slots into
fieldcraft-explicitas another discretisation — the natural home for hypervelocity impact, fragmentation and blast with JWL, which LBM cannot do. As a general fluid solver it is noisy (pressure), needs many particles for accuracy and has the tensile instability; LBM beats it for viscous low-Mach flow. Code: SPHinXsys (Apache-2.0), SPlisHSPlasH (MIT), PySPH (BSD-3-style), Cabana (BSD-3): READ OK; DualSPHysics (LGPL-2.1): FORBIDDEN.
E3. GPU compute in pure Rust. Verdict: CPU first for both solvers; wgpu compute for LBM second; explicit FE on GPU only on evidence.
- Stack.
wgpu(MIT OR Apache-2.0) compute pipelines with WGSL shaders. The API we call is safe Rust, sounsafe_code = "forbid"in our crates holds (wgpu's own internals use unsafe, as every dependency on the OS does).rust-gpu(Rust → SPIR-V) would let kernels be written in Rust, but it needs a pinned nightly toolchain to build shaders: reject for now, revisit when it builds on stable. - Precision. WGSL (https://www.w3.org/TR/WGSL/, 200) has no
f64type; wgpu exposesFeatures::SHADER_F64(https://docs.rs/wgpu/latest/wgpu/struct.Features.html, 200) only on native backends that support it, and not on Metal or the browser. So GPU kernels are f32. For LBM that is standard (storef_i − w_ito recover precision). For explicit FE, f32 is workable for stresses and velocities (single precision is common in explicit codes) but coordinates/displacements over long runs need f64 accumulation; that rules out a naive GPU port. - Layering.
xtask/src/layers.rslistswgpuinUI_CRATES: nothing below L5 may depend on it. A GPU backend therefore needs either an owner decision to allowwgpuin a dedicated compute crate below L5 (headless compute is not UI), or afieldcraft-gpucrate at L5 that implements a backend trait the L1 solver crates define. I recommend the second (no rule change): the solver crate defines aLatticeBackendtrait and a CPU implementation; the GPU implementation lives at L5. Owner decision either way. - Determinism. The project requires bit-identical output on every platform. GPU f32 results differ from CPU and between vendors (FMA contraction, transcendental precision). LBM kernels are per-cell with no reductions, so a GPU run is deterministic on one device, but not equal to the CPU. Explicit FE assembly on GPU needs scatter-add with float atomics, which is order-dependent (non-deterministic even on one device) unless assembly is a gather over a node-to-element list. The rule needs an explicit exception: CPU path is the bit-identical reference; GPU results are deterministic per device and verified against CPU to a tolerance. Owner decision.
- CPU parallelism.
rayon(MIT OR Apache-2.0) over cell blocks (LBM) and element blocks with a deterministic gather assembly (explicit FE) is deterministic by construction. Onwasm32-unknown-unknownthere are no threads by default: rayon must be behind a feature, with a serial fallback (same results). - Browser. WebGPU's default limits (128 MiB per storage binding, 256 MiB per buffer, unless the adapter grants more) cap a browser LBM domain at roughly 1.5 M D3Q19 cells per buffer unless populations are split across buffers. Fine for demos, not for production. (limits from memory of the WebGPU spec; check the adapter's reported limits at run time, never assume)
- Feasibility verdict. LBM on wgpu: high feasibility, 10–30× over a multi-core CPU on a discrete GPU since it is bandwidth-bound and kernels are simple. Explicit FE on wgpu: feasible for hex8 one-point + J2 (a single kernel) but contact search, erosion and shells make it a large porting effort; LS-DYNA-class codes remain CPU/MPI-first for good reasons. Do it last, and only if profiling shows the element loop dominates.
Part F: Plan (opinionated)
F1. Strategic call
Build explicit FE first, LBM second, FSI third. Explicit FE reuses the M6 element and material work, runs on the tet meshes M2 produces (Bonet–Burton) before hexes exist, writes the same LS-DYNA keyword concepts M5 targets, and its verification is analytic. LBM is independent of everything except the octree (M3) and is the best place to spend GPU effort. FSI needs both to be verified first; a coupling bug on top of an unverified solver is undiagnosable.
One correction to the brief: LBM + EOS is not a pairing. LBM is a weakly compressible, low-Mach method; EOS matters for shocks, detonations and blast, which LBM cannot represent. EOS-driven fluids (water under underwater explosion, detonation products, air blast) belong to the explicit solver (Lagrangian first, then ALE/Eulerian per Benson 1992 or SPH). The LBM–explicit FSI covers low-Mach problems: flexible structures in flow, valves, sloshing, slamming with free-surface LBM. If the owner's motivating use cases are blast/impact on structures, the order changes: explicit FE → EOS → SPH or ALE multi-material, and LBM drops a step.
F2. Crate layout
Current layers: L0 model → L1 geometry, mesh, solver, decks, render → L2 doc → L3 io → L4 engine → L5.
Implicit and explicit share element kinematics (shape functions, quadrature, B-matrices, hex8/tet4/quad4), materials
(elastic, J2, Johnson–Cook) and EOS. Two L1 crates cannot depend on each other, and FSI depends on both solvers. So:
| Layer | Crate | Contents |
|---|---|---|
| L0 | fieldcraft-model |
+ materials, EOS, sections/formulations, explicit and fluid steps, contact, fluid domains, coupling interfaces (F3) |
| L1 | fieldcraft-fem (new) |
element kernels (shape functions, quadrature, B/B-bar, one-point hex with FB hourglass and Belytschko–Bindeman stabilisation, Bonet–Burton tet, BLT shell), constitutive updates (hypoelastic, objective rates, J2 radial return, Johnson–Cook, damage), EOS evaluation. Pure functions over model types; no solver loop. |
| L2 | fieldcraft-lbm (new) |
lattices, collision operators, BCs, voxelisation from the face-tagged surface and the octree from mesh*, stepping on CPU, momentum-exchange forces, IB kernels; a backend trait for GPU |
| L2 | fieldcraft-solver (moved up from L1) |
implicit linear static/modal (M6), later nonlinear implicit; uses fem |
| L2 | fieldcraft-explicit (new) |
central-difference driver, time step, mass scaling, q, contact (search + penalty), erosion, energy accounting, output; uses fem (and later SPH) |
| L3 | fieldcraft-fsi (new) |
IB coupling, interface mapping, Aitken/IQN-ILS, subcycling, coupled step driver; uses explicit, solver, lbm |
| L4… | doc, io, engine, then L5+ shifts up by two |
results (time histories, field frames) in doc/io |
| L5+ | fieldcraft-gpu (new, with the UI layer or an owner-approved compute layer) |
wgpu implementations of the solver backend traits |
* fieldcraft-lbm needs the octree and predicates from fieldcraft-mesh (L1), so it sits at L2. lbm at L2 next to solver and explicit (it may then use mesh's octree and
predicates), and fem at L1. That is one coherent rule: L1 = geometry and math kernels, L2 = solvers, L3 = coupling.
Cost of this being wrong: renumbering the layer table is a mechanical edit to xtask/src/layers.rs and
docs/architecture.md; the risk is churn, not breakage. The alternative (one fieldcraft-solver crate with
implicit/explicit/lbm/fsi modules) needs no layer change, but a 50k-line crate compiles slowly and lets the
LBM depend on FE internals by accident. If the owner prefers no renumbering, take the single-crate option and enforce
module boundaries with pub(crate) discipline. This layout change is an owner decision.
F3. Solver-neutral model extensions in fieldcraft-model
- Materials (named, unit-consistent, no product numbering): density; isotropic elastic; J2 plasticity with isotropic/kinematic hardening (bilinear, power law, table); Johnson–Cook strength (A, B, n, C, m, ε̇₀, T_room, T_melt, specific heat, Taylor–Quinney); damage (JC D1–D5); failure/erosion criteria; Newtonian fluid (ρ, μ).
- EOS as a separate attachable record:
ideal_gas{γ},polynomial{c0..c6},mie_gruneisen{c0, s1[,s2,s3], γ0, a},jwl{A, B, R1, R2, ω, e0, D, p_cj},tillotson{…},tabulated{…}; a material with an EOS takes its pressure from it and only the deviatoric part from the strength model. - Sections / formulations: solid formulation enum (
one_point_hourglass{kind, coeff},assumed_strain,selective_reduced,full,nodal_pressure_tet), shell sections (thickness, integration points, BLT/Hughes–Liu). - Steps:
explicit_dynamic{end_time, dt_scale (default 0.9), mass_scaling: none | target_dt, output_interval},fluid{end_time or steps, lattice, collision, les},coupled{explicit/implicit structure, fluid, scheme: loose | aitken | iqn_ils, tolerances, max_iters}. Every iterative or time-marching step carries caps (max steps, max iterations, max cells) per the never-crash rules. - Loads/conditions: initial velocity, prescribed motion, rigid walls, gravity, detonation points with lighting times.
- Contact: surface pairs and self-contact on face sets, penalty scale, friction, search interval.
- Fluid domain: bounding box, base spacing, refinement regions (by distance to named faces), boundary conditions on box faces (velocity inlet, pressure outlet, slip/no-slip) and on named geometry faces (wall, moving wall); fluid material.
- Coupling interface: named structural face set ↔ fluid domain.
- Output requests: history (energies, reaction forces, contact forces, probe points) and field frames.
All of these must map to the LS-DYNA keyword and Abaqus input concepts M5 writes, described in our own words.
F4. Milestones
| # | Milestone | Needs from meshing | Verification (analytic first) |
|---|---|---|---|
| X0 | fieldcraft-fem extraction with M6: hex8/tet4 kinematics, elastic and J2 updates, shared with the implicit solver |
M2 tets, generated boxes | patch tests, J2 uniaxial curve, rigid rotation |
| X1 | Explicit core: central difference, lumped mass, element Δt (FB 1984), one-point hex8 + FB hourglass, Bonet–Burton tet4, artificial viscosity, energy accounting, prescribed BCs, initial velocity, history output | structured hex8 boxes generated in code (no M3 needed), M2 tets | bar wave (front position and amplitude), bar–rigid wall contact time 2L/c, energy balance, cantilever period vs M6 modal |
| X2 | Large deformation materials: Hughes–Winget Jaumann, Flanagan–Taylor Green–Naghdi, J2 radial return, Johnson–Cook strength + damage, erosion | same | Dienes simple shear (both rates, closed form), Taylor bar (Taylor 1948 analytic estimate; experimental comparison only if the owner allows) |
| X3 | Contact: BVH global search, node-to-segment penalty two-pass + friction, pinball for eroding surfaces, rigid walls | surface extraction of volume meshes (have it) | two bars colliding (momentum exchange, analytic), block sliding with friction on a slope (analytic), Hertz sphere-on-plane at low speed (analytic contact time and force) |
| X4 | EOS: polynomial, ideal gas, Mie–Grüneisen, JWL + programmed burn, energy coupling | hex8 strongly preferred (tets smear shocks) — M3 octree hex | 1D shock in Mie–Grüneisen material vs Rankine–Hugoniot with U_s = c0 + s u_p, Sod, Noh, Sedov (Lagrangian 1D/axisymmetric) |
| X5 | Shells: BLT + Belytschko–Wong–Chiang warping, self-contact (Benson–Hallquist) | quad4 surface meshes (a quad-dominant surface mesher is not yet on the roadmap — gap) | plate free vibration (analytic), cylinder crush (energy only) |
| L1 | LBM core on CPU: D3Q19, TRT, halfway bounce-back, Zou–He, uniform grid from voxelising the face-tagged surface with exact predicates, momentum-exchange forces | voxelisation (inside/outside with mesh predicates); no volume mesh |
Poiseuille (2nd order), Couette, Taylor–Green decay, sphere Stokes drag |
| L2 | Accuracy and range: Bouzidi interpolated walls (link fractions from ray–triangle tests), regularised/RR and cumulant D3Q27, Smagorinsky LES, Schäfer–Turek, cavity | link-surface intersections | Schäfer–Turek 2D-1/2D-2/3D (published numerical bounds, owner sign-off), Womersley |
| L3 | Octree refinement: Rohde cell-centred on the M3 2:1 octree; then wgpu backend at L5 (AA pattern) | M3 octree (shared data structure) | refinement across a channel (Poiseuille exact across levels, mass conservation to round-off), GPU-vs-CPU tolerance check |
| F1 | FSI loose: IB-LBM (Wu–Shu) with markers on the structure's surface nodes, explicit FE structure with subcycling, conservative Hᵀ force transfer | structural surface of a hex/tet mesh | rigid cylinder added-mass C_a = 1, settling sphere, Turek–Hron FSI1 |
| F2 | FSI strong: Aitken, then IQN-ILS with filtering; implicit (M6 linear dynamic) structure as well as explicit | same | Turek–Hron FSI2 and FSI3 |
| F3 | Free-surface LBM (Körner/Thürey) with FSI | same | dam break front position (published experiment — owner sign-off), hydrostatic column (analytic) |
Time-step mismatch, concretely. Steel structure (c ≈ 5,900 m/s) with 1 mm elements: Δt_s ≈ 1.7×10⁻⁷ s. Water LBM at 1 mm spacing with lattice velocity 0.1 for a 1 m/s flow: Δt_f = 0.1·Δx/u = 10⁻⁴ s. The structure needs ~600 substeps per fluid step: subcycle the structure (cheap, it is a thin interface region) or apply mass scaling with reported added mass. For soft structures (Turek–Hron), the implicit structure solver with one step per fluid step is the better pairing — this is why FSI should support both structure solvers.
F5. Biggest risks, and what happens if wrong
- Hourglass and contact robustness, not the time integrator, decide whether people trust the explicit solver. If hourglass control is weak, coarse-mesh results look plausible and are wrong; if contact misses penetrations, runs explode at hour 3. Mitigation: hourglass and contact energies reported every run with thresholds that warn; contact verification cases from day one; a crash-report replay path for solver blow-ups.
- Silent mass scaling and time step collapse. One bad element sets Δt for the whole model. Mitigation: report the ten controlling elements and the added mass; mesh-quality gate before a run. If wrong, users see runs that never finish rather than wrong answers — annoying, not dangerous.
- Determinism vs GPU vs parallelism. The determinism rule and GPU f32 are in direct conflict (E3). If no exception is agreed, the GPU work cannot ship; if the exception is too loose, regression tests flake. Decide before L3.
- Added-mass instability in FSI. Loose coupling will diverge for light structures in water no matter how small the step (Causin 2005). If F1 ships only loose coupling, the first realistic marine/biomedical case fails; F2 (IQN) must follow immediately, and the loose scheme must detect divergence (interface energy growth) and stop with an error.
- LBM at industrial Reynolds numbers. Laminar validation is easy; turbulent external flow needs D3Q27 cumulant or RR, LES, wall models and refinement before results are useful. If underestimated, the LBM looks like a toy for a year. Budget L2–L3 as the main LBM work, not L1.
- Scope creep toward LS-DYNA's material library. LS-DYNA has hundreds of materials; each is a paper. Ship elastic, J2, Johnson–Cook, a hyperelastic rubber, a crushable foam, and EOS; add on demand. Never mirror any product's material numbering in the model — only in the deck writer's mapping.
- Expected-value policy. Taylor bar, cavity, Schäfer–Turek, Turek–Hron, dam break all compare with published experiments or published numerical references, not closed forms. The project rule says expected values are analytic. Owner decision: allow published, non-commercial reference values for benchmarks (I recommend yes, tagged as "benchmark", kept separate from the analytic suite).
- Quad shell meshing is missing from the roadmap. X5 needs quad-dominant surface meshes; without them shells run on tri3 (BLT has a triangular variant, less accurate). Flag for the roadmap.
Part G: Implicit solver (M4), as implemented
The papers and books fieldcraft-fem and fieldcraft-solver are written from (cited again in
the module docs):
- Elements: O. C. Zienkiewicz, R. L. Taylor, J. Z. Zhu, The Finite Element Method: Its Basis and Fundamentals, 7th ed., 2013; T. J. R. Hughes, The Finite Element Method, Dover 2000.
- Incompatible modes: Wilson, Taylor, Doherty, Ghaboussi 1973; R. L. Taylor, P. J. Beresford, E. L. Wilson, IJNME 10(6):1211–1219, 1976 (the det J₀/det J correction that passes the patch test).
- Tetrahedron quadrature: A. H. Stroud, Approximate Calculation of Multiple Integrals, 1971 (conical product rules).
- Mass lumping: E. Hinton, T. Rock, O. C. Zienkiewicz, Earthquake Eng. Struct. Dyn. 4(3):245–249, 1976.
- Stress extrapolation: E. Hinton, J. S. Campbell, IJNME 8(3):461–480, 1974.
- Principal stresses (results display): O. K. Smith, Eigenvalues of a symmetric 3 × 3 matrix, Commun. ACM 4(4):168, 1961 (closed form).
- Ordering: A. George, SIAM J. Numer. Anal. 10(2):345–363, 1973; H. D. Simon, Computing Systems in Engineering 2:135–148, 1991.
- Sparse Cholesky: T. A. Davis, Direct Methods for Sparse Linear Systems, SIAM 2006; J. W. H. Liu, SIAM J. Matrix Anal. Appl. 11(1):134–172, 1990; supernodes: J. W. H. Liu, E. G. Ng, B. W. Peyton, SIAM J. Matrix Anal. Appl. 14(1):242–252, 1993; left-looking supernodal factorization: E. Ng, B. W. Peyton, SIAM J. Sci. Comput. 14(5):1034–1056, 1993; parallel block factorization: E. Rothberg, A. Gupta, SIAM J. Sci. Comput. 15(6):1413–1439, 1994.
- Eigenvalues: T. Ericsson, A. Ruhe, Math. Comp. 35(152):1251–1268, 1980; R. G. Grimes, J. G. Lewis, H. D. Simon, SIAM J. Matrix Anal. Appl. 15(1):228–272, 1994; B. N. Parlett, The Symmetric Eigenvalue Problem, SIAM 1998; G. H. Golub, C. F. Van Loan, Matrix Computations, 4th ed., 2013.
- 2D elements (plane stress, plane strain, axisymmetric): Zienkiewicz, Taylor & Zhu 2013, ch. 6 and §6.6; Hughes 2000, §2.7 and §3.5. Quad4 incompatible modes (QM6): Wilson et al. 1973 and Taylor, Beresford & Wilson 1976 as for hex8; in axisymmetric elements the modes' strain operator is shifted by its volume mean, the patch-test correction of E. L. Wilson and A. Ibrahimbegovic, Use of incompatible displacement modes for the calculation of element stiffnesses or stresses, Finite Elements in Analysis and Design 7(3):229–241, 1990. Rotating discs and cylinders for verification: S. Timoshenko, J. N. Goodier, Theory of Elasticity, 3rd ed., McGraw-Hill 1970, §32.
- Wedge6: the linear triangle times the linear interval; the symmetric three-point triangle rule (Zienkiewicz, Taylor & Zhu 2013, table 6.3) times two-point Gauss–Legendre.
- Couplings and constraint elimination: rigid links and master–slave elimination by transformation, R. D. Cook, D. S. Malkus, M. E. Plesha, R. J. Witt, Concepts and Applications of Finite Element Analysis, 4th ed., Wiley 2002, §9.2, and C. A. Felippa, Introduction to Finite Element Methods, ch. 8 (University of Colorado lecture notes); automatic choice of the dependent degree of freedom, J. F. Abel, M. S. Shephard, IJNME 14(3):464–467, 1979; the distributing (interpolation) constraint as a least-squares rigid fit with loads spread by virtual work, G. H. K. Heirman, W. Desmet, Multibody Syst. Dyn. 24(2):219–234, 2010; the reduced matrix product T_fᵀ K T_f row by row, F. G. Gustavson, ACM TOMS 4(3):250–269, 1978.
- Trusses and discrete elements: the isoparametric bar along its arc, R. D. Cook, D. S. Malkus, M. E. Plesha, R. J. Witt, Concepts and Applications of Finite Element Analysis, 4th ed., Wiley 2002, §3.6 and §6.2, and Hughes 2000, §1.10; springs k [n nᵀ, −n nᵀ; −n nᵀ, n nᵀ], Cook et al. 2002, §2.2 and §2.10; HRZ lumping as above. Verified against the method of joints (statically determinate trusses), the three-bar truss, the hanging bar, √(k/m), the two-mass chain and the torsional pendulum √(k_t/J).
- Shells: E. N. Dvorkin, K.-J. Bathe, A continuum mechanics based four-node shell element for general nonlinear analysis, Engineering Computations 1(1):77–88, 1984 (MITC4 shear tying); K.-J. Bathe, E. N. Dvorkin, IJNME 21(2):367–383, 1985 (the flat-plate form); P.-S. Lee, K.-J. Bathe, Development of MITC isotropic triangular shell finite elements, Computers & Structures 82(11–13):945–962, 2004 (MITC3); T. J. R. Hughes, F. Brezzi, On drilling degrees of freedom, CMAME 72(1):105–121, 1989 (drilling penalty); facet shells, O. C. Zienkiewicz, R. L. Taylor, D. D. Fox, The Finite Element Method for Solid and Structural Mechanics, 7th ed., 2014, ch. 9–10.
- Beams: J. S. Przemieniecki, Theory of Matrix Structural Analysis, McGraw-Hill 1968, §5.6; Z. Friedman, J. B. Kosmatka, Computers & Structures 47(3):473–481, 1993 (interdependent Timoshenko interpolation); G. R. Cowper, J. Appl. Mech. 33(2):335–340, 1966 (shear coefficients); S. P. Timoshenko, J. N. Goodier, Theory of Elasticity, 3rd ed., 1970, §109 (torsion of a rectangle); W. D. Pilkey, Analysis and Design of Elastic Beams, Wiley 2002 (thin-walled shear areas and torsion).
- Shell benchmarks (published values, tagged, not the analytic gate): Scordelis–Lo roof 0.3024 (MacNeal & Harder 1985); pinched cylinder 1.8248 · 10⁻⁵ (T. Belytschko, H. Stolarski, W. K. Liu, N. Carpenter, J. S.-J. Ong, CMAME 51(1–3):221–258, 1985). Plate: S. Timoshenko, S. Woinowsky-Krieger, Theory of Plates and Shells, 2nd ed., 1959, §30 (Navier).
- Verification: R. H. MacNeal, R. L. Harder, A proposed standard set of problems to test finite element accuracy, Finite Elem. Anal. Des. 1(1):3–20, 1985 (patch tests); Lamé, Kirsch, Timoshenko and Euler–Bernoulli closed forms; Saint-Venant's principle (tension through a coupling), pure bending σ = M z / I, torsion of a circular tube φ = T L / (G J), τ = T r / J.
Part H: Explicit solver core (X1), as implemented
The papers and books fieldcraft-explicit and fieldcraft_fem::uniform are written from (cited
again in the module docs):
- Time integration, energy balance, element eigenvalue inequality: T. Belytschko, W. K. Liu, B. Moran, K. Elkhodary, Nonlinear Finite Elements for Continua and Structures, 2nd ed., Wiley 2014 (ch. 6: central differences in the half-step form with variable increments, the energy balance check, the critical time step).
- One-point hexahedron and hourglass control: D. P. Flanagan, T. Belytschko, IJNME 17(5):679–706, 1981 (integrated gradients b, mean strain, the γ hourglass shape vectors orthogonal to linear fields, viscous and stiffness resisting forces). Our scaling of the coefficient with ρ, c and the element size is our own: κ is the fraction of critical damping (viscous) or the squared frequency ratio (stiffness) of a cube's hourglass modes at 2c/h.
- Element frequency bound: in the spirit of D. P. Flanagan, T. Belytschko, J. Appl. Mech. 51(1):35–40, 1984; we bound uᵀKu ≤ (k/V) λ_max(Σ b bᵀ) ‖u‖² with k = max(3λ + 2μ, 2μ) (isotropic) or 2 λ_max(D), which is exact for a cube; the 3 × 3 eigenvalue in closed form after O. K. Smith, Commun. ACM 4(4):168, 1961.
- Average nodal pressure tetrahedron: J. Bonet, A. J. Burton, Commun. Numer. Methods Eng. 14(5):437–449, 1998.
- Bulk viscosity and its time-step correction: J. von Neumann, R. D. Richtmyer, J. Appl. Phys. 21(3):232–237, 1950; M. L. Wilkins, J. Comput. Phys. 36(3):281–303, 1980.
- Springs and dashpots: lagged-velocity damping and the damped stable increment Δt ≤ (2/ω)(√(1 + ξ²) − ξ), Belytschko et al. 2014, §6.2–6.3; Gershgorin's bound on M^{-1/2} K M^{-1/2} per degree of freedom. Verified against the damped oscillator's decay e^{−ξωt} and period 2π/ω_d.
- Rigid walls as kinematic velocity constraints: T. J. R. Hughes, R. L. Taylor, J. L. Sackman, A. Curnier, W. Kanoknukulchai, CMAME 8(3):249–276, 1976.
- Verification: d'Alembert's solution of the 1D wave equation (front at c t, σ = ρ c v), the elastic bar impact on a rigid wall (contact 2L/c, rebound at the impact speed; Hughes et al. 1976), Euler–Bernoulli and the implicit modal solver for the cantilever period. The one-point element keeps 1 − 1/n² of the bending energy with n elements through the depth, which predicts its period with viscous hourglass control to 0.03%.
Part I: Lattice Boltzmann core (M12, plan L1), as implemented
fieldcraft-lbm is written from these papers and the book (cited again in its module docs). No
lattice Boltzmann package's code was opened.
- Lattice, equilibrium, units, stream–collide, bounce-back, forcing and boundary conditions: Krüger et al. 2017 (C1.2); D3Q19 from Qian, d'Humières & Lallemand 1992 (C1.3).
- Collision: two relaxation times, Ginzburg, Verhaeghe & d'Humières 2008 (C2.2). The parameter
Λ = (τ⁺ − ½)(τ⁻ − ½) is the step's
magic(default 3/16: walls exactly halfway). - Body force: Guo, Zheng & Shi 2002 (C1.6), split into the symmetric and antisymmetric parts relaxed with τ⁺ and τ⁻.
- Walls: halfway bounce-back, Ladd's moving-wall term and momentum exchange (Ladd 1994, C3.1); momentum exchange also after R. Mei, D. Yu, W. Shyy, L.-S. Luo, Force evaluation in the lattice Boltzmann method involving curved geometry, PRE 65:041203, 2002 (DOI not checked).
- Inlets and outlets: Zou & He 1997 (C3.3), with the D3Q19 transverse-momentum correction of M. Hecht, J. Harting, Implementation of on-site velocity boundary conditions for D3Q19 lattice Boltzmann simulations, J. Stat. Mech. 2010, P01018 (DOI not checked).
- Stability limits (Mach ≤ 0.3, τ⁺ ≥ 0.505, runtime speed ≤ 0.5): Sterling & Chen 1996 and Lallemand & Luo 2000 (C1.5) for the shrinking stable region as τ → ½.
- Voxelisation: Shewchuk's exact
orient2d/orient3d(fieldcraft_mesh::predicates) with a symbolic perturbation after H. Edelsbrunner, E. P. Mücke, Simulation of Simplicity, ACM TOG 9(1):66–104, 1990; link faces by nearest triangle, C. Ericson, Real-Time Collision Detection, Morgan Kaufmann 2005, §5.1.5. - Verification: analytic Poiseuille, Couette and Taylor–Green solutions (C8); the Stokes drag of a simple cubic array of spheres, H. Hasimoto, On the periodic fundamental solutions of the Stokes equations and their application to viscous flow past a cubic array of spheres, JFM 5(2):317–328, 1959, with the higher terms of A. S. Sangani, A. Acrivos, Int. J. Multiphase Flow 8(4):343–360, 1982 (DOIs not checked). Benchmark (published numerical reference values, tagged, not part of the analytic gate): Schäfer & Turek 1996, 2D-1 (C8).
Part J: Large deformation and inelastic materials (X2), as implemented
The papers and books fieldcraft_fem::{rotation, plasticity} and fieldcraft-explicit's X2
update are written from (cited again in the module docs):
- Updated Lagrangian one-point elements, strain increments on the midpoint configuration: T. Belytschko, W. K. Liu, B. Moran, K. Elkhodary, Nonlinear Finite Elements for Continua and Structures, 2nd ed., Wiley 2014 (ch. 4–6); the closed-form integrated gradients b = ∂V/∂x of the hexahedron, D. P. Flanagan, T. Belytschko, IJNME 17(5):679–706, 1981 (we tabulate the 24 coefficients of the volume form and check them against their exact integration).
- Jaumann rate, incrementally objective: T. J. R. Hughes, J. Winget, IJNME 15(12):1862–1867, 1980 (Cayley rotation of the midpoint spin increment; a rigid rotation of any size is exact).
- Green–Naghdi rate: D. P. Flanagan, L. M. Taylor, CMAME 62(3):305–320, 1987 (incremental polar rotation from V̇ = L V − V Ω; we solve [(tr V) I − V] x = axial(D V − V D) and integrate V with the midpoint rule).
- Radial return for J2 with isotropic and linear kinematic (Prager) hardening: J. C. Simo, T. J. R. Hughes, Computational Inelasticity, Springer 1998, §3.3; R. D. Krieg, D. B. Krieg, J. Press. Vessel Technol. 99(4):510–515, 1977.
- Johnson–Cook flow stress (rate clamped at ε̇* ≥ 1, T* in [0, 1], adiabatic heating with a Taylor–Quinney fraction) and fracture strain D1–D5 with D = Σ Δε_p/ε_f: G. R. Johnson, W. H. Cook 1983 (7th Int. Symp. Ballistics) and Eng. Fract. Mech. 21(1):31–48, 1985. The fracture strain is floored at 10⁻⁶ (our choice).
- Erosion: G. R. Johnson, R. A. Stryk, Int. J. Impact Eng. 5:411–421, 1987; T. Belytschko, J. I. Lin, ibid. 5:111–127, 1987 (delete, keep nodal mass and momentum, report the energy).
- Verification: J. K. Dienes, Acta Mech. 32:217–232, 1979 (simple shear, closed forms for both rates); G. I. Taylor, Proc. R. Soc. A 194:289–299, 1948 (the yield stress from the final length and undeformed length of a flat-ended projectile). Published experimental Taylor-bar lengths (Wilkins & Guinan 1973) are not used: that needs the owner's sign-off for a tagged benchmark suite.
Part K: Heat transfer and thermal stress, as implemented
- Conduction. Galerkin form of ρc Ṫ = ∇·(k∇T) + Q with surface flux and convection:
O. C. Zienkiewicz, R. L. Taylor, J. Z. Zhu, The Finite Element Method: Its Basis and
Fundamentals, 7th ed., Butterworth-Heinemann 2013, §3.2; T. J. R. Hughes, The Finite Element
Method, Dover 2000, ch. 1. Kernels in
fieldcraft_fem::heat, solver infieldcraft_solver::heat. - Time integration. The generalized trapezoidal (θ) family, unconditionally stable for θ ≥ ½ (Hughes 2000, §8.2): backward Euler (θ = 1, the default) and Crank–Nicolson (θ = ½).
- Thermal strain. Initial-strain load ∫ Bᵀ D ε_th dV and stress D(ε − ε_th) (Zienkiewicz, Taylor & Zhu 2013, §6.2.3); incompatible modes condensed with the same load.
- Coupled temperature–displacement. One-way coupling (temperature strains the solid) solved in turn, which is the exact monolithic solution of linear quasi-static thermoelasticity without thermoelastic dissipation (B. A. Boley, J. H. Weiner, Theory of Thermal Stresses, Wiley 1960, ch. 1).
- Verification (
crates/solver/tests/thermal.rs, analytic): steady slab conduction, a slab with a heat source and convection or flux (quadratic profile), radial conduction through a thick cylinder (T ∝ ln r), the semi-infinite solid T = erfc(x / 2√(κt)) (H. S. Carslaw, J. C. Jaeger, Conduction of Heat in Solids, 2nd ed., Oxford 1959, §2.4), free and constrained thermal expansion (σ = −EαΔT), the bimetal strip (S. Timoshenko, Analysis of bi-metal thermostats, J. Opt. Soc. Am. 11(3):233–255, 1925), and the coupled step against the heat step followed by the static step.
Part L: Hybrid (mixed u–p) solids, as implemented
- Perturbed-Lagrangian u–p formulation with element-wise condensed discontinuous pressure: T. J. R. Hughes, The Finite Element Method, Dover 2000, §4.3–4.5 (B-bar and mean dilatation as the constant-pressure case); J. C. Nagtegaal, D. M. Parks, J. R. Rice, CMAME 4(2):153–177, 1974 (locking of displacement elements near incompressibility).
- Pressure spaces and the inf-sup condition: F. Brezzi, M. Fortin, Mixed and Hybrid Finite Element Methods, Springer 1991, ch. VI; K.-J. Bathe, Finite Element Procedures, 2nd ed., 2014, §4.5 (Q2–P1disc and P2–P0 stable, Q1–P0 checkerboard-prone, P1–P0 locks).
- Verification (
crates/solver/tests/hybrid.rs, analytic): a block in uniaxial strain at ν = 0.4999 (exact), Lamé's thick cylinder in plane strain at ν = 0.4999 (hex20 1e-5, tet10 1e-3, hex8 3e-3 relative error in the bore displacement, where the displacement hex8 is 80 % too stiff). Cook's membrane is a published benchmark, not part of the analytic gate.
Part M: Nonlinear static analysis (finite strain), as implemented
- Total Lagrangian formulation written with spatial quantities (Kirchhoff stress, spatial tangent, current gradients): J. Bonet, R. D. Wood, Nonlinear Continuum Mechanics for Finite Element Analysis, 2nd ed., Cambridge 2008, ch. 5–9; G. A. Holzapfel, Nonlinear Solid Mechanics, Wiley 2000, §6.6 (the isochoric–volumetric split and its tangents); K.-J. Bathe, Finite Element Procedures, 2nd ed., 2014, §6.3; T. Belytschko, W. K. Liu, B. Moran, K. Elkhodary, Nonlinear Finite Elements for Continua and Structures, 2nd ed., Wiley 2014, ch. 4–6.
- Decoupled neo-Hookean energy: P. J. Flory, Trans. Faraday Soc. 57:829–838, 1961.
- Mixed u–p at finite strain: J. C. Simo, R. L. Taylor, K. S. Pister, CMAME 51:177–208, 1985; mean dilatation: J. C. Nagtegaal, D. M. Parks, J. R. Rice, CMAME 4:153–177, 1974.
- Enhanced assumed strain at finite strain (why incompatible modes are refused for now): J. C. Simo, F. Armero, IJNME 33:1413–1449, 1992; their hourglassing in compression: P. Wriggers, S. Reese, CMAME 135:201–209, 1996.
- Follower pressure and its load stiffness: K. Schweizerhof, E. Ramm, Comput. Struct. 18(6):1099–1114, 1984.
- Newton–Raphson, line search and convergence criteria: M. A. Crisfield, Non-linear Finite Element Analysis of Solids and Structures, vol. 1, Wiley 1991, ch. 9; K.-J. Bathe, A. P. Cimento, CMAME 22:59–85, 1980.
- Symmetric eigen-decomposition for the logarithmic strain: G. H. Golub, C. F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins 2013, §8.5 (cyclic Jacobi).
- Verification references: the elastica, K. E. Bisshopp, D. C. Drucker, Q. Appl. Math. 3(3):272–275, 1945, with K. Mattiasson, IJNME 17(1):145–153, 1981; Cook's membrane (pending its transcribed finite-strain values), R. D. Cook, J. Struct. Div. ASCE 100(ST9):1851–1863, 1974, and J. C. Simo, F. Armero, IJNME 33:1413–1449, 1992; tube inflation, R. S. Rivlin, Phil. Trans. R. Soc. A 242:173–195, 1949, and R. W. Ogden, Non-Linear Elastic Deformations, Dover 1997.
Part N: Implicit plasticity (finite and small strain), as implemented
- Multiplicative J2 plasticity with a Hencky elastic energy and the exponential return map in the principal logarithmic strains, which keeps the classical radial return of the infinitesimal theory: J. C. Simo, Algorithms for static and dynamic multiplicative plasticity that preserve the classical return mapping schemes of the infinitesimal theory, CMAME 99(1):61–112, 1992, DOI 10.1016/0045-7825(92)90123-2; J. C. Simo, T. J. R. Hughes, Computational Inelasticity, Springer 1998, ch. 9.
- The radial return (shared with explicit dynamics) and its consistent tangent K I⊗I + 2Gθ ℙ − 2Gθ̄ n⊗n: Simo & Hughes 1998, §3.3, Box 3.2 (A4.1); J. C. Simo, R. L. Taylor, Consistent tangent operators for rate-independent elastoplasticity, CMAME 48(1):101–118, 1985, DOI 10.1016/0045-7825(85)90070-2.
- The derivative of the matrix logarithm by divided differences (Daleckii–Krein), smooth through equal stretches: R. Bhatia, Matrix Analysis, Springer 1997, §V.3.
- Kinematic hardening at finite strain (refused for now; the route when it comes): additive plasticity in the Lagrangian logarithmic strain space, C. Miehe, N. Apel, M. Lambrecht, CMAME 191(47–48):5383–5425, 2002, DOI 10.1016/S0045-7825(02)00438-3.
- Prager's linear kinematic hardening: W. Prager, The theory of plasticity: a survey of recent achievements, Proc. Inst. Mech. Eng. 169:41–57, 1955.
- Verification references: the thick cylinder's plastic zone and collapse pressure, R. Hill, The Mathematical Theory of Plasticity, Oxford 1950, ch. V; the cantilever's plastic hinge, B. G. Neal, The Plastic Methods of Structural Analysis, 3rd ed., Chapman & Hall 1977, and the continuum's velocity fields, W. Prager, P. G. Hodge, Theory of Perfectly Plastic Solids, Wiley 1951.
Part O: Polynomial hyperelasticity and thermal strain in nonlinear steps, as implemented
- Decoupled invariant-based hyperelasticity, the fictitious stress and elasticity and their projection: G. A. Holzapfel, Nonlinear Solid Mechanics, Wiley 2000, §6.4–6.6 (eqs. 6.168, 6.193).
- Mooney–Rivlin: M. Mooney, A theory of large elastic deformation, J. Appl. Phys. 11(9):582–592, 1940; R. S. Rivlin, Large elastic deformations of isotropic materials IV, Phil. Trans. R. Soc. A 241:379–397, 1948. Yeoh: O. H. Yeoh, Some forms of the strain energy function for rubber, Rubber Chem. Technol. 66(5):754–771, 1993.
- The homogeneous modes of rubber testing: L. R. G. Treloar, The Physics of Rubber Elasticity, 3rd ed., Oxford 1975, ch. 10; the inflation and extension of a tube: R. S. Rivlin, Phil. Trans. R. Soc. A 242:173–195, 1949, and R. W. Ogden, Non-Linear Elastic Deformations, Dover 1997, §5.3.
- Thermal strain by the multiplicative split F = F_m F_θ: V. A. Lubarda, Constitutive theories based on the multiplicative decomposition of deformation gradient: thermoelasticity, elastoplasticity, and biomechanics, Appl. Mech. Rev. 57(2):95–108, 2004.
Part P: Symmetric indefinite factorization, linear buckling and arc-length, as implemented
- Symmetric indefinite pivoting: J. R. Bunch, L. Kaufman, Some stable methods for calculating
inertia and solving symmetric linear systems, Math. Comp. 31(137):163–179, 1977; the bounded
(rook) search, C. Ashcraft, R. G. Grimes, J. G. Lewis, Accurate symmetric indefinite linear
equation solvers, SIAM J. Matrix Anal. Appl. 20(2):513–561, 1998; the panel's partial
factorization of LAPACK's
dsytrf, E. Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM 1999. - Pivoting within supernodes on a static structure: O. Schenk, K. Gärtner, On fast factorization pivoting methods for sparse symmetric indefinite systems, Electron. Trans. Numer. Anal. 23:158–179, 2006. Delayed pivots (the multifrontal alternative, not used: it changes the structure as it goes): I. S. Duff, J. K. Reid, The multifrontal solution of indefinite sparse symmetric linear equations, ACM TOMS 9(3):302–325, 1983; J. W. H. Liu, The multifrontal method for sparse matrix solution: theory and practice, SIAM Review 34(1):82–109, 1992.
- Arc-length: E. Riks, An incremental approach to the solution of snapping and buckling problems, Int. J. Solids Struct. 15(7):529–551, 1979; M. A. Crisfield, A fast incremental/iterative solution procedure that handles "snap-through", Computers & Structures 13:55–62, 1981; E. Ramm, Strategies for tracing the nonlinear response near limit points, in Nonlinear Finite Element Analysis in Structural Mechanics, Springer 1981, 63–89; the predictor's sign, M. Feng, D. Perić, D. R. J. Owen, Computers & Structures 58(3):479–485, 1996. Snap-through of a shallow sinusoidal arch: Y. C. Fung, A. Kaplan, NACA TN 2840, 1952; Timoshenko & Gere 1961, §7.6.
- Iterative refinement: N. J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM 2002, §12.2.
- Linear buckling and the initial-stress stiffness: K.-J. Bathe, Finite Element Procedures, 2nd ed., 2014, §6.8.2; the buckling spectral transformations in the K inner product: R. G. Grimes, J. G. Lewis, H. D. Simon, SIAM J. Matrix Anal. Appl. 15(1):228–272, 1994, §3; Euler's columns with Engesser's shear correction: S. P. Timoshenko, J. M. Gere, Theory of Elastic Stability, 2nd ed., McGraw-Hill 1961, §2.1, §2.17.
Part Q: Contact and friction (explicit), as implemented
The papers and books fieldcraft_fem::contact and fieldcraft_explicit::contact are written
from (cited again in the module docs); docs/fem.md describes the formulation.
- Closest point on a triangle by its Voronoi regions: C. Ericson, Real-Time Collision Detection, Morgan Kaufmann 2005, §5.1.5; on a bilinear quadrilateral by Newton's method on the stationarity conditions, projected on the parameter square: the local search of node-to-segment contact, J. O. Hallquist, G. L. Goudreau, D. J. Benson, CMAME 51:107–137, 1985 (A5.1), and P. Wriggers, Computational Contact Mechanics, 2nd ed., Springer 2006, §4.1.
- Global search by bucket sorting into a uniform grid: D. J. Benson, J. O. Hallquist, CMAME 78:141–163, 1990 (A5.2). We chose a grid over the BVH of A5.4: one pass per increment, memory bounded by caps whatever the mesh, candidates in face order (determinism); the cell grows when a few huge faces would blow the entry cap.
- Segment-to-segment integration (projection on the secondary face's plane, clipping, sub-triangle quadrature): M. A. Puso, T. A. Laursen, A mortar segment-to-segment contact method for large deformation solid mechanics, CMAME 193:601–629, 2004; with the penalty applied at the integration points, K. A. Fischer, P. Wriggers, Comput. Mech. 36:226–244, 2005; polygon clipping, I. E. Sutherland, G. W. Hodgman, Commun. ACM 17(1):32–42, 1974. Chosen over node-to-segment because the latter fails the contact patch test on non-matching meshes (R. L. Taylor, P. Papadopoulos, in Nonlinear Computational Mechanics, Springer 1991, 690–702; M. A. Crisfield, IJNME 48:435–449, 2000), which our first node-to-segment version showed too (12% spread of σ_zz in the patch test, 0.1% now).
- Penalty from the masses and the stable increment (the "soft constraint" idea: J. O. Hallquist, LS-DYNA Theory Manual, LSTC 2006, the contact chapter's soft-constraint option; the bound is ours: Gershgorin's row sums of the integrated contact stiffness with the node's directional area, added to the element frequencies by Weyl's inequality).
- Friction by a regularised (penalty) return map: P. Wriggers, Computational Contact Mechanics, §5.2 and §10.3; J. C. Simo, T. A. Laursen, Comput. Struct. 42(1):97–116, 1992; rate-dependent coefficients reviewed by J. T. Oden, J. A. C. Martins, CMAME 52:527–634, 1985. The exponential decay μ = μ_k + (μ_s − μ_k) e^{−d γ̇} is the form the LS-DYNA and Abaqus manuals document, so the decks carry it unchanged.
- Kinematic rigid walls with Coulomb impulses: T. J. R. Hughes et al., CMAME 8(3):249–276, 1976 (A5.5), the tangential impulse capped at μ times the normal one.
- Verification: the impact of equal bars, K. F. Graff, Wave Motion in Elastic Solids, Dover 1991, §2.1–2.3, and W. Johnson, Impact Strength of Materials, Arnold 1972, §1.6; Hertz's impact of spheres, H. Hertz, J. reine angew. Math. 92:156–171, 1882, and K. L. Johnson, Contact Mechanics, Cambridge 1985, §11.4; the sliding block, any dynamics text (J. L. Meriam, L. G. Kraige, Engineering Mechanics: Dynamics, §3/5).
Part R: Contact in nonlinear static steps (M7), as implemented
The papers fieldcraft_fem::mortar, fieldcraft_fem::dual and fieldcraft_solver::contact are
written from (cited again in the module docs); docs/fem.md describes the formulation.
- Mortar contact, segment to segment, with nodal weighted gaps and the pressure interpolated by the non-mortar side's shape functions: M. A. Puso, T. A. Laursen, A mortar segment-to-segment contact method for large deformation solid mechanics, CMAME 193:601–629, 2004; T. W. McDevitt, T. A. Laursen, A mortar-finite element formulation for frictional contact problems, IJNME 48:1525–1547, 2000; the segmentation (projection on the non-mortar plane, clipping, integration cells) and the linearisation it needs, A. Popp, M. W. Gee, W. A. Wall, A finite deformation mortar contact formulation using a primal–dual active set strategy, IJNME 79:1354–1391, 2009. Chosen over two-pass node-to-surface because mortar passes the contact patch test on non-matching meshes (R. L. Taylor, P. Papadopoulos 1991; M. A. Crisfield 2000, as in Part Q).
- The consistent tangent by automatic differentiation of the mortar integrals rather than by hand: J. Lengiewicz, J. Korelc, S. Stupkiewicz, Automation of finite element formulations for large deformation contact problems, IJNME 85:1252–1279, 2011; forward-mode (truncated Taylor) arithmetic, A. Griewank, A. Walther, Evaluating Derivatives, 2nd ed., SIAM 2008.
- Augmented Lagrangian with Uzawa updates after each converged increment: J. C. Simo, T. A. Laursen, An augmented Lagrangian treatment of contact problems involving friction, Comput. Struct. 42(1):97–116, 1992; P. Wriggers, Computational Contact Mechanics, 2nd ed., Springer 2006, ch. 6 and 10; T. A. Laursen, Computational Contact and Impact Mechanics, Springer 2003.
- Friction: the regularised Coulomb return map at the nodes, J. C. Simo, T. A. Laursen 1992 and P. Wriggers 2006, §5.2 (as in Part Q), on the mortar slip in its rate form (the weighted relative motion projected on the tangent plane), T. W. McDevitt, T. A. Laursen 2000 and M. A. Puso, T. A. Laursen, A mortar segment-to-segment frictional contact method for large deformations, CMAME 193:4891–4913, 2004; C. A. Coulomb's law, Théorie des machines simples, 1785. The tangent is symmetrised like the follower pressure's (the non-symmetric coupling to the pressure is left out; the residual is exact).
- The active set inside Newton (the max() of the regularised pressure, a semismooth Newton method): P. Alart, A. Curnier, A mixed formulation for frictional contact problems prone to Newton like solution methods, CMAME 92:353–375, 1991; Popp et al. 2009.
- Integration of the overlap cells: J. Radon's seven-point degree-5 rule on triangles (A. H. Stroud, Approximate Calculation of Multiple Integrals, Prentice-Hall 1971, T2:5-1).
- Verification: Hertz's contact of cylinders and spheres, H. Hertz, J. reine angew. Math. 92:156–171, 1882; K. L. Johnson, Contact Mechanics, Cambridge 1985, §4.2–4.3 (eqs. 4.45–4.49 for the line contact's pressure and subsurface stresses).