P3
Linear Finite Element Method
P4
The Linear FEM Assumption
✅ 假设:三角形的形变是均匀的
In a nutshell, linear FEM assumes that for any point X in the reference triangle, its deformed correspondence is: x=FX+c.
✅ reference triangle:三角形处于没有发生形变的静止的状态。
✅ X和x可以分别是 reference 和 deformed 三角形的顶点或内部点,公式都同样适用。
For any vector between two points, we can use F to convert it from reference to deformed:
xba=xb−xa=FXb+c−FXa−c=FXba.
P5
计算Deformation Gradient
Therefore, we can calculate the deformation gradient by edge vectors.
Problem: F is related to deformation, but it contains rotation.
✅ 期望F只包含形变量、不包含平移和旋转、因为刚体运动不应该有形变,所以要把形变提取出来。
✅平移已经在c里面了,所以只需考虑旋转。
P6
从F中去除旋转
回顾SVD分解
Ideally, we need a tensor to describe shape deformation only. Recall that SVD gives F=UDVT, where only VT and D are relevant to deformation.
✅ VT 看上去是旋转、实际上是为了确定形变的方向、 U 才是真正的旋转
✅ 目的:把F中的U去掉、可以先做 SVD 分解再把U去掉。但本文使用了更简单的方法
Green Strain
So we get rid of U as: G=12(FTF−I)=12(VD2VT−I)=[εuuεuvεuvεvv], Green strain.
✅ G 是一个描述物体形变的有无和大小矩阵,且与关旋转
- If no deformation, G=0; if deformation increases, ||G|| increases.
- Three deformation modes: εuu, εvv and εuv.
- G is rotation invariant: if additional rotation R, then deformation gradient is RF but green strain is the same: G=12(FTRTRF−I)=12(VD2VT−I).
P7
计算能量
Let G be the the green strain describing deformation. We consider the energy density per reference area as: W(G).
✅用形变程度来定义能量。W代表单位面积上的能量,因此称为能量密度。总能量为单位能量X面积.
✅ Aref 为 reference status 下三角形的面积
✅ StVK是一种经典的能量密度函数(Strain Energy Density Function), 在力学中不常用,但在图形学中很常用、原因是简单
✅ S 是一个与力有关的物理量。会在FVM内容中进一步解释。
✅ 能量对位移求导是力。形变是一种位移。能量密度对位移求导是一种类似于力的密度的量。
P8
计算Forces
Given everything we have, we can now calculate the forces.
✅ 力是形变施加到顶点上的力
✅ 绿色部分是上一页S中的内容、灰色部分将在下一页推导。
P9
方法一
Recall that,
❗ F不是力,是deformation gradient.
✅ 假设a,b,c,d是形变后的顶点。
By definition,
G=12(FTF−I)=[12(ax10+cx20)T(ax10+cx20)−1212(ax10+cx20)T(bx10+dx20)12(ax10+cx20)T(bx10+dx20)12(bx10+dx20)T(bx10+dx20)−12]
So:
∂εuu∂x1=a(ax10+cx20)T∂εvv∂x1=b(bx10+dx20)T∂εuv∂x1=12a(bx10+dx20)T+12b(ax10+cx20)T
∂εuu∂x2=c(ax10+cx20)T∂εvv∂x2=d(bx10+dx20)T∂εuv∂x2=12c(bx10+dx20)T+12d(ax10+cx20)T
✅ x为current边的矩阵,r为reference边的矩阵。
P10
方法二
✅ 把 P9 代入 P8 得到 P10
✅ 上一页推导方法从定义出来,过程简单,但很容易出错。这里用矩阵来简化计算,得到同样的结果。
P11
结论
In conclusion, we have:
f1=−ArefFS[ab]f2=−ArefFS[cd]
[f1f2]=−ArefFS[X10X20]−T
✅ f0=−f1−f2
P12
Implementations
🔎 Volino et al. 2009. A simple approach to nonlinear tensile stiffness for accurate cloth simulation. TOG
Only talks about cloth (2D reference -> 3D deformation)
- What about tetrahedron (3D reference -> 3D deformation)?
- Same idea, but everything is now in 3D.
- Deformation gradient F∈R3×3
- Green strain G∈R3×3
- Stress tensor S∈R3×3
- Forces Fi∈R3
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES103_mdbook/