Skip to main content

Materials

SuperDex Physics supports several material models for soft body simulation. Each model is defined by a strain energy density Ψ(F)\Psi(\mathbf{F}), where F\mathbf{F} is the deformation gradient. The first Piola–Kirchhoff stress P=Ψ/F\mathbf{P} = \partial\Psi/\partial\mathbf{F} and material tangent P/F\partial\mathbf{P}/\partial\mathbf{F} follow from this energy.

Common Parameters

Most isotropic material models use the following constitutive parameters:

ParameterSymbolUnitsDescription
Young's modulusEEPaOverall stiffness. Higher values produce stiffer objects. Must be finite and positive.
Poisson's ratioν\nu--Compressibility. Must be finite and satisfy 1<ν<0.5-1 < \nu < 0.5.

SoftMaterialParams::density is an actor-wide parameter shared by every material model, rather than a field of a model-specific *MaterialParams struct. It specifies mass per unit reference volume in kg/m3^3 and defaults to 1000.

Young's modulus and Poisson's ratio define the Lamé parameters

λ=Eν(1+ν)(12ν) ,μ=E2(1+ν) ,\lambda = \frac{E \nu}{(1 + \nu)(1 - 2\nu)}~, \qquad \mu = \frac{E}{2(1 + \nu)}~,

which are used in the definitions of several different material formulations.

Nearly incompressible materials

Notice that the first Lamé parameter, λ\lambda, diverges when ν\nu approaches the ends of its allowed range. The limit of ν1\nu \to -1 is of little practical interest, but the limit of ν0.5\nu\to 0.5 corresponds to near-incompressibility, and is common in soft materials like rubber and biological tissues. The deformation of these materials occurs almost entirely in shearing modes, whose stiffness is controlled by μ\mu, also known as the shear modulus. The stiffness of volume changes is controlled by the bulk modulus, κ=λ+2μ/3\kappa = \lambda + 2\mu/3, which diverges alongside λ\lambda. Approximating non-trivial shearing deformations on a discrete mesh often still requires some small volume changes of elements, which are penalized by κ\kappa. This causes artificial stiffening known as volumetric locking in the finite element literature. For general simulations of human-scale manipulation problems, it is recommended to avoid this limit and regularize handbook bulk modulus values of soft materials to keep ν0.49\nu\lesssim 0.49.

Available Models

ModelUse CaseLarge DeformationInversion-SafeCost
Linear ElasticSmall displacement gradients onlyNoN/ALowest
Neo-HookeanGeneral-purpose (recommended)YesYesMedium
Saint Venant–KirchhoffLarge rotation, moderate strainYesNoMedium
ARAPShape-preserving deformationYesYesMedium
Active Neo-HookeanMuscle tissue with fiber actuationYesYesHigh
Active Shape Targeting ARAPProgrammable local shape targetsYesYesHigh

For most simulations, Neo-Hookean is the recommended default.

PSD Enforcement

The default choices of algebraic Solvers used to solve implicit stages during time integration assume that energy contributions from soft materials have positive-semidefinite (PSD) Hessians. The exact nonlinear material tangents can become indefinite and break this assumption. The default behavior is therefore to replace them with PSD approximations, to improve solver performance.

A full-eigensystem MaterialPsdStrategy::Projection writes a symmetric material tangent as

PF=QΛQT ,\frac{\partial\mathbf{P}}{\partial\mathbf{F}} = \mathbf{Q}\boldsymbol{\Lambda}\mathbf{Q}^T~,

where the columns of Q\mathbf{Q} are orthonormal eigenvectors and Λ\boldsymbol{\Lambda} is the diagonal matrix of eigenvalues, then replaces it with

Qmax(Λ,ε)QT .\mathbf{Q}\max(\boldsymbol{\Lambda}, \varepsilon)\mathbf{Q}^T~.

Here ε>0\varepsilon > 0 is a small eigenvalue floor, and each diagonal entry λi\lambda_i is replaced by max(λi,ε)\max(\lambda_i, \varepsilon). Some materials use equivalent analytic projections of only their indefinite modes and may preserve structural zero modes.

PSD projection is controlled by two parameters:

  • NonLinearSolverParams::psdProjMode decides when the nonlinear solve requests PSD projection. Its default is PsdProjectionMode::Always; retry modes request projection only after an iteration of Newton's method fails, while PsdProjectionMode::Never never requests it.
  • Each material's MaterialPsdStrategy decides how that material responds to a request. MaterialPsdStrategy::None ignores the request and leaves the material tangent unmodified.

The available material-level PSD strategies are summarized in the following table:

StrategyDescriptionAvailability
MaterialDefaultResolve to the selected material's concrete default strategy.All nonlinear models
ProjectionProject the tangent to be PSD, commonly by replacing λi\lambda_i with max(λi,ε)\max(\lambda_i, \varepsilon).All nonlinear models
FastDrop or filter problematic terms. Faster, but may degrade nonlinear convergence.StVK, Neo-Hookean
AbsEigenProjectionUse absolute eigenvalue filtering, commonly replacing λi\lambda_i with max(λi,ε)\max(\lvert\lambda_i\rvert, \varepsilon).All nonlinear models
PerTermProjectionProject tangent summands independently.Active Shape Targeting ARAP only
NoneDo not modify the material tangent.All nonlinear models

The Linear Elastic model has no material-level psdStrategy field because its tangent is unconditionally PSD.