A backward stable numerical calculation of a function with condition number $\kappa$ will have a relative accuracy of $\kappa\epsilon_{\text{machine}}$. Standard formulations and software implementations of finite-strain elastic materials models make use of the deformation gradient $\boldsymbol F = I + \partial \boldsymbol u/\partial \boldsymbol X$ and Cauchy-Green tensors. These formulations are not numerically stable, leading to loss of several digits of accuracy when used in the small strain regime, and often precluding the use of single precision floating point arithmetic. We trace the source of this instability to specific points of numerical cancellation, interpretable as ill-conditioned steps. We show how to compute various strain measures in a stable way and how to transform common constitutive models to their stable representations, formulated in either initial or current configuration. The stable formulations all provide accuracy of order $\epsilon_{\text{machine}}$. In many cases, the stable formulations have elegant representations in terms of appropriate strain measures and offer geometric intuition that is lacking in their standard representation. We show that algorithmic differentiation can stably compute stresses so long as the strain energy is expressed stably, and give principles for stable computation that can be applied to inelastic materials.
翻译:条件数为κ的函数在进行向后稳定数值计算时,其相对精度可达κϵₘₐᵢₙₑ。现有有限应变弹性材料模型的标准公式及软件实现均采用变形梯度F = I + ∂u/∂X和柯西-格林张量。这些公式不具备数值稳定性,在小应变范围内会导致多位有效数字损失,并常常无法使用单精度浮点运算。我们将这种不稳定性追溯至特定数值抵消点,这些点可解释为病态步骤。我们展示了如何以稳定方式计算各种应变度量,以及如何将常见本构模型转化为稳定表示(可基于初始构型或当前构型)。稳定公式均能提供ϵₘₐᵢₙₑ量级的精度。在许多情况下,稳定公式可通过恰当的应变度量获得优雅的表示,并提供标准表示所缺失的几何直观性。我们证明,只要应变能以稳定方式表达,算法微分就能稳定计算应力,并给出了适用于非弹性材料的稳定计算原则。