Time integation
时间步长越大在同样的时间内,模拟的速度越大
- 前向欧拉,显式欧拉,Forward Euler
用已知预测未知
2. semi-implict Euler
3. 后向欧拉,隐式欧拉,Backward Euler
显式积分器vs隐式积分器
显式积分器(还有RK等)
-
未来状态只依赖于过去的状态
-
易于实现
-
容易爆炸:
c为常数,m为质量,k为sitffness 刚度系数,Δt越小,模拟越精确,但同样时间内所需模拟次数越多,Δt越大,模拟越粗糙,并且容易发生爆炸
一个标准的弹簧振子系统,其震荡周期为:
为了在模拟时不发生爆炸,保持一定的模拟精确程度,Δt必须远小于T -
不适合stiff materials
隐式时间积分器(后向、中点法middle-point,…) -
未来状态依赖于未来和过去
-
未来依赖于未来 导致是蛋生鸡还是鸡生蛋问题:需要去解决一个system of (linear) equations
-
不太容易实现
-
每一步变的昂贵但时间步长更大
(1)sometimes brings you benefits (2)but sometimes not
-
带来额外的numerical damping and locking
后续参考:知乎笔记
杂记
FEM会出现自相交问题,自相交问题处理起来很困难,采用MPM方法一般不会有这样的问题,在自相交之前会在网格上处理碰撞问题
欧拉视角是完全不动的(网格法),拉格朗日视角是随波逐流的(粒子法)