Stress hessian computation in FEM
介绍
在进行软体模拟时,如果使用牛顿法计算最优的下降方向,需要计算能量密度函数Ψ关于位置→x 的Hessian矩阵,即∂2Ψ∂→x2。其中→x是一个四面体的四个顶点的位置。
∂2Ψ∂x2=vec(∂F∂x)Tvec(∂P∂F)vec(∂F∂x)
在进行软体模拟时,如果使用牛顿法计算最优的下降方向,需要计算能量密度函数Ψ关于位置→x 的Hessian矩阵,即∂2Ψ∂→x2。其中→x是一个四面体的四个顶点的位置。
∂2Ψ∂x2=vec(∂F∂x)Tvec(∂P∂F)vec(∂F∂x)
首先,已知
→x=[→x1→x2→x3]Ds=[→x1−→x4→x2−→x4→x3−→x4]∂(Ds)kl∂→xijei⊗ej⊗ek⊗el=∂→xkl∂→xijei⊗ej⊗ek⊗el=δikδjlei⊗ej⊗ek⊗el 这里把→x后三列写成一个3x3的矩阵。D−1m的分量表示为dmn,P的分量表示为Prs,则能量密度函数Ψ关于位置→x 的梯度为:
Projective Dynamics是一种用于软体模拟的方法,算法分为local step和global step两个部分。其中local step可以对于每个四面体约束并行计算,global step只需要求解一个线性方程组,而他的矩阵非常特殊,是一个Gram矩阵,因此可以预先用Cholesky分解。本文主要介绍local step的实现的推导过程。用Corotated strain model的CUDA的实现作为例子。