Hookean elastic material with XPBD

This document combines the XPBD formulation with the Hookean energy model to derive the Hookean-elastic constraint and its XPBD compliance.

Constraint function and compliance for the Hookean model

We know that the elastic energy potential derived from a single constraint \(\mathcal C_j\) in the XPBD model is

\[U(x)=\frac{1}{2}\alpha_j^{-1}\left(\mathcal{C}_j(x)\right)^2,\]

where \(\alpha_j\) is the compliance factor corresponding to the constraint.

On the other hand, the total elastic strain energy for an element of volume \(V_e\) stored in a Hookean material due to deformation is given by:

\[W_{\mathrm{tot}}(\mathbf{F}) = V_e\,W(\mathbf{F}) = V_e\,E\,\widehat{W}(\mathbf{F})\]

where \(W(\mathbf{F})\) is the elastic strain energy density and \(\widehat{W}(\mathbf{F})\) is the elastic strain energy density, normalized by Young’s modulus \(E\), defined by:

\[W_{\mathrm{tot}}(\mathbf{F}) = Ve\,W(\mathbf{F})\quad\text{and}\quad W(\mathbf{F}) = E\,\widehat{W}(\mathbf{F}).\]

When simulating an Hookean elastic material with XPBD, both expressions of the elastic enargy equalize

\[\frac{1}{2}\alpha_j^{-1}\left(\mathcal{C}_j(\mathbf{F})\right)^2 = V_e E \,\widehat{W}(\mathbf{F})\]

so \(\alpha_j\) is proportional to \(\frac{1}{V_e E}\), and we have

\[C_{\mathrm{Hooke}}(\mathbf{F}) = \sqrt{2\,\widehat{W}(\mathbf{F})}.\]

This constraint function evaluates to zero when the material is in its undeformed state (\(\mathbf{F} = \mathbf{I}_3\)), and it evaluates to a positive value whenever deformation occurs (\(\mathbf{F} \neq \mathbf{I}_3\)).

Constraint gradient

The gradient of the Hookean constraint with respect to the position \(\mathbf{x}_i\) of each particle is derived using the chain rule as:

\[\nabla_{\mathbf{x}_i}C_{\mathrm{Hooke}}(\mathbf{x}) = \frac{1}{C_{\mathrm{Hooke}}(\mathbf{x})}\nabla_{\mathbf{x}_i}\widehat{W}(\mathbf{F}).\]

The derivative of \(\widehat{W}(\mathbf{F})\) with respect to \(\mathbf{F}\) can be explicitly computed as:

\[\frac{\partial \widehat{W}(\mathbf{F})}{\partial \mathbf{F}} = \mathbf{S}\mathbf{F}\]

The deformation gradient \(\mathbf{F}\) is typically computed as:

\[\mathbf{F} = \left(\sum_i m_i \mathbf{r}_i\bar{\mathbf{r}}_i^T\right)\,Q^{-1},\]

where:

  • \(\mathbf{r}_i=x_i-x_{cm}\) is the position of particle \(i\) relative to center of mass.

  • \(\bar{\mathbf{r}}_i=\bar{x}_i-\bar{x}_{cm}\) is the rest position of particle \(i\) relative to rest center of mass.

  • \(Q = \left(\sum_i m_i \bar{\mathbf{r}}_i\bar{\mathbf{r}}_i^T\right)\) is the rest-state inertia tensor, which encodes the distribution of mass and initial configuration of the particles.

When differentiating \(\mathbf{F}\) with respect to \(\mathbf{x}_i\), we obtain a direct relation involving the matrix \(\mathbf{Q}\) and the rest position vectors \(\bar{\mathbf{r}}_i\):

\[\frac{\partial \mathbf{F}}{\partial \mathbf{x}_i} = m_i\,\mathbf{Q}^{-T}\bar{\mathbf{r}}_i\]

Substituting these results into our chain rule expression, we obtain a clear, compact expression of the gradient for the Hookean constraint:

\[\nabla_{\mathbf{x}_i}C_{\mathrm{Hooke}}(\mathbf{x}) = \frac{m_i}{C_{\mathrm{Hooke}}(\mathbf{x})}\mathbf{S}\mathbf{F}\mathbf{Q}^{-T}\bar{\mathbf{r}}_i.\]