Games201-拉格朗日视角有限元
概念
Deformation 形变 and deformation gradients 形变梯度
elastic 弹性
Strain and stress
Hyperelastic material model 超弹性模型
线性有限元
elastic 弹性的
viscoelastic 粘性的
elastoplastic 弹塑性的
viscopplastic 粘塑性的
有限元的教程
mpm论文https://www.seas.upenn.edu/~cffjiang/research/mpmcourse/mpmcourse.pdf
形变
现在的材料位置和静止时的材料位置的变化
deformation map:把静止位置映射到形变位置 描述形变,形变梯度也是十分重要的一个点
按边形变的demo
有限元方法弹性模拟,显式的 demo 有限元处理自碰撞难以处理
弹性
回复自己静止状态的性质,是很多材料的基础
Hyperelasticity 超弹性
Hyperelastic materials: materials whose stress–strain relationship is defined by a strain energy density function
ψ = ψ(F)
Intuitive understanding: ψ is a potential function that penalizes deformation.
“Stress”: the material’s internal elastic forces. 应力
“Strain”: just replace it with deformation gradients F for now 应变
stress tensor 材料微元的施加的力,材料微元之间的相互作用
可以看成一个3x3的矩阵
有很多种stress tensor 几种tensor可以转化
rest space 静止空间(对应的是形变以后的空间)
traction 牵引力
Young's modulus 杨氏模量E
泊松比v 是正的,比较大,会接近不可压缩体积,橡皮筋中间越拉越细,也有材料有负的泊松比,3d打印会有负的泊松比,泊松比是0是表示橡皮筋中间不会随着拉长而变化,不会保持自己的体积
一边回指定杨氏模量和泊松比,Bulk modulus一般是模拟可压缩液体时候用到
常见的超弹性模型
各项同性材质使用Neo-Hookean
默认都是neo-hookean 如果形变很小会用Linear elasticity导出的一般都是线性方程,Linear elasticity的材料旋转有可能会出现旋转后体积变大而不受到任何物理惩罚的情况(势能不变)
Fixed Corotated是对Linear elasticity的改进版本,为了解决旋转体积变大的问题
FEM
强行式在离散情况下描述物理系统不适用,逐点满足转化成方程的residual和test func的积分得到满足
把空间分成很小的element ,单体,三角形,正方形,四面体,六面体
PDE:偏微分方程式 (Partial differential equation)
能量密度函数关于体积的积分积出来就是弹性势能
Linear tetrahedral finite element
线性三角元素的有限元
形变梯度F是一个常量
求弹性势能,力其实就是势能关于位置求导数 再乘上一个 负一
B是两列的矩阵,一列是a_rest-c_rest 二列是b_rest-c_rest
向量方程
链式法则的求导吧
势能关于顶点位置的导数再取一个负等于顶点受到的力,
总的弹性势能等于所有的element弹性势能之和
自动微分,非常重要,比起自己手动推公式,taichi可以通过定义势能然后可以自动求微分
如果使用自动微分就只需要定义$ f_{t,i}=- \frac{\partial U } {\part x_i}$,定义计算总的弹性能量的函数
ti.Tape传入需要记录的能量变化,在每一次执行某个函数后记录一下能量微分
隐式的有限元需要求二阶导数,非常复杂,自动微分不能求二阶导数
求二阶导需要了解简化方法