上一章我们已经求出了三阶张量 ∂x∂F 在非线性有限元分析中,这个三阶张量有时被描述为与几何刚度相关的导数或贡献,因为它捕捉了在几何非线性情况下的变形过程中,当空间位置变化时,变形梯度如何发生变化
我们接着要来看看 ∂F∂Ψ 的情况,在上一章中,我们只是已经分析出它是一个矩阵 (二阶张量),但是并没有真正计算它,因为对于不同的 弹性势能 定义,会得到不同的结果,所以它也称为 应力张量 Stress Tensor
不同的弹性势能 Ψ 由变形梯度 F 的不同形式作为能量函数 Ψ 的参数,也就是说,对不同的弹性势能函数求 ∂F∂Ψ,将得到不同的 应力张量 Stress Tensor
狄利克雷能量 Dirichlet Energy - 第一类 Piola-Kirchhoff 应力张量
当我们对 狄利克雷能量 Dirichlet Energy
ΨDirichlet=∥F∥F2
求 ∂F∂Ψ,我们将得到第一类 Piola-Kirchhoff 应力张量 可以简写为 PK1,有时它被写为 P(F)
∂F∂ΨDirichlet=P(F)=∂F∂∥F∥F2=2F
St. Venant Kirchhoff - 第二类 Piola-Kirchhoff 应力张量
我们可以对 StVK 能量的拉伸部分进行分析
ΨStvk,stretch=∥E∥F2
其中 E=21(FTF−I) 是 Green-Lagrange 应变张量
根据我们学到的经验,我们应该对函数取其直接变量形式的导数,然后把复杂的变量代换放入链式法则中,Stvk 能量的直接变量是 E,也就是 Green-Lagrange 应变张量 ,这相当于定义了一个新的中间变量
∂x∂Ψ=∂E∂Ψ∂F∂E∂x∂F
我们需要计算一个新的基变换张量 ∂x∂E,一旦计算出了它,那么计算 第二类 Piola-Kirchhoff 应力张量 将非常简单
∂E∂ΨStvk,stretch=E
第一类应力张量是 弹性势能 对 变形梯度 求导定义的 ∂F∂Ψ,而第二类应力张量是 弹性势能 对 应变张量 求导定义的 ∂E∂Ψ
StVK 是唯一依赖于 应变张量 E 的能量,其他所有能都直接由变形梯度 F 定义,我们引入这个中间张量可以简化计算
ΨStvk,stretch∂F∂ΨStvk,stretch=41∥FTF−I∥F2=41(∥FTF∥F2+trI−2tr(FTF))=41(∥FTF∥F2+trI−2∥F∥F2)=PStvk,stretch(F)=F(FTF−I)=FE
完整的 StVK 能量
我们一直只研究了 StVK 的拉伸项,现在是时候来看看完整的能量定义了
ΨStVK=μ∥E∥F2+2λ(trE)2
其中 ∥E∥F2 项是原先的拉伸项,但是新的体积保持项 (trE)2 被添加进来,常量系数,μ 和 λ 告诉模型需要多少相对拉伸阻力或体积保持
最终 PK1 是
∂F∂ΨStvk=PStvk(F)=μFE+λ(trE)F
As-Rigid-As-Possible ARAP 能量
ARAP 能量 可以被展开为如下形式
ΨARAP=2μ∥F−R∥F2=2μ(∥F∥F2+∥R∥F2−2tr(FTR))=2μ(∥F∥F2+∥R∥F2−2tr S)
- 其中 S=FTR 这是由于 极分解 polar decomposition F=RS 得到的 S 是对称的
我们可以得到 PK1
∂F∂ΨARAP=P(F)ARAP=μ(F−R)
Neo-Hookean 能量
我们知道 Neo-Hookean 能量 是
ΨNeo-Hookean=∥F∥F2−3
如果我们求它的 PK1
∂F∂ΨNeo-Hookean=PNeo-Hookean(F)=2F
这看上去似乎和 狄利克雷能量 的应力张量一致,但是在 Mooney 在 1940 年的论文中,变形梯度 F 需要满足一个硬性条件: detF=1 但是这个条件对于 CG 里常见的形变来说过于苛刻
有许多其他形式的 Neo-Hookean 能量,其中比较流行的是 Bonet 和 Wood 在 2008 年提出的
ΨBW08=2μ(∥F∥F2−3)−μlog(J)+2λ(log(J))2
- F 是形变梯度
- J=det(F) 是体积比,表示体积变形的程度
- μ 和 λ 是材料的拉梅常数 (材料常数)
在这个能量函数中
- 2μ(∥F∥F2−3) 这一项类似之前定义的简单 Neo-Hookean 能量 形式,描述了材料的剪切变形
- −μlog(J) 这一项涉及体积变形,通过 J=detF 的对数来描述体积变化,它确保了在无体积变化的情况下,体积变形项不对能量有贡献
- 2λ(log(J))2 这一项进一步控制体积变形,尤其是在大体积变化时,提供了额外的刚度
可以看到,体积保持 volume preserving 是这种能量形式的特色,而它来自于 J=detF 这告诉我们有多少体积被压缩或没有被压缩,事实上,任何声称“体积保持”但不包含 detF 的能量都不能真正良好的保持体积
由于 detF 会大量出现,所以为它引入一个专门的符号 J 是值得的,并且这个记号在大量的文献中被广泛使用
Bonet and Wood (2008), Marsden and Hughes (1994), Bower (2009)
ΨBW08 的 PK1 是
∂F∂ΨBW08=PBW08(F)=μ(F−J1∂F∂J)+λJlogJ∂F∂J
这里新出现的项是 J 的梯度 ∂F∂J,在 3D 情况下,这一项可以用变形梯度 F 列的叉积来表示
F∂F∂J= ∣ f0 ∣∣f1∣∣f2∣= ∣ f1×f2 ∣∣f2×f0∣∣f0×f1∣