Games201学习笔记2:拉格朗日视角2
學習教程來自:GAMES201:高級物理引擎實戰指南2020
以下大部分圖片來自教程PPT,僅作為筆記用于學習和分享,侵刪
筆記內容大多為課程內容的翻譯和轉述,外加一些自己的理解,若有不正確的地方懇請大家交流和指正
筆記
0. 顯式時間積分器和隱式時間積分器對比
顯式容易實現,數值上不穩定,對dt更敏感。
隱式較難實現(通常需要求解線性系統、多次迭代、求倒數等),但允許較大dt。
1. 模擬彈性物體
彈性材質是很多材質的基礎(viscoelastic粘彈性, elastoplastic彈性塑料, viscoplastic粘塑性,等)
1.1 形變 Deformation
deformation map ?(向量函數)把物質的靜止位置Xrest映射到形變位置Xdeformed
將此函數對靜止位置求導,得到形變梯度F
J(Jacobian)=形變后體積/靜止體積=矩陣F的行列式
1.2 彈性 Elasticity
材料具有恢復到靜止狀態的性質
超彈性模型Hyperelasticity
ψ:勢能函數,表示單位體積的應變勢能的密度(strain energy density function)。定義了應力和應變的關系
Stress:應力,材料內部的彈性力,用來恢復材料的體積形狀的內力
Strain:應變,材料形變的度量,可用形變梯度F替換
1.3 應力張量 Stress tensor
一個3x3矩陣/2階張量,取材料微元內部的截面的法向量乘以Stress tensor,可以得到對周圍鄰居施加的力(應力?)(Traction)
3種常見的Stress tensor:P、τ、σ
PK1(The First Piola-Kirchhoff stress tensor):對ψ求導,在rest空間下計算得到應力張量(Stress tensor),不對稱
Kirchhoff stress tensor:在形變后的空間計算得到,對稱
Cauchy stress tensor:在形變后的空間計算,對稱(由于角動量守恒)
三者的關系的理解:3個都是stress tensor,Kirchhoff=形變梯度的行列式乘以Cauchy=PK1乘以形變梯度的轉置。J形變梯度的行列式表示形變后體積的變化比值。F轉置表示材料從rest space(形變前空間)到形變后的空間,F轉置求逆則相反,從形變后的空間到rest space。
1.4 幾個描述彈性材料的屬性 Elastic moduli
注意:以下的量均可根據楊氏模量和泊松比計算出,故一般只給出1和2即可得到材料的彈性屬性
1.5 常見的超彈性模型
Linear elasticity:更適用于小范圍的形變,材料在模擬時旋轉后不再符合物理規律
Neo-Hookean模型:
修正后的Corotated模型:其中σi時F的奇異值/特征值(singular values)
2. 有限元 FEM
Finite element method:一個使用了weak formulations的離散化方法,把空間分為一個個Element(如三角元素)
2.1 彈性系統中的有限元
由于形變梯度(deformation gradient)F在一個有限元元素(element)里是一個常數,deformation map ?成為一個仿射變換(affine)
元素的彈性勢能:能把勢能密度在體積上積分得到,由于F是一個常數,故密度也是常數,積分結果為體積乘以密度
勢能定義:-力關于位置求導數 dw = -f ds
2.2 形變梯度F的計算
以下為2維空間下,三角形作為元素的求解F(2x2矩陣)過程,已知deformation map如下
將x分別拆分為三角形3個頂點的位置
1-3 2-3化簡
構建矩陣B和D直接求,其中B可提前計算出(其只和靜止位置相關)
2.3 更新速度和位置
顯式積分器方法,Semi-implicit Euler (aka. symplectic Euler)
其中只求f即可,過程:勢能求導=每個元素的勢能求導再求和=拆出每個元素的勢能,并使用鏈式求導法則=用PK1替換(V為常數,只剩下PK1和F導數)
隱式積分器方法,backward Euler,其中f部分已經再上邊求出,式中需要再對f求一次導數(二階導數),M為對角矩陣,存儲每個節點的質量
總結
以上是生活随笔為你收集整理的Games201学习笔记2:拉格朗日视角2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: w10不能访问网络计算机,Win10系统
- 下一篇: 计算机教师帮带情况,教师帮带工作总结