物理量計算
球粒子の慣性モーメント

粘性減衰と反発係数
[7]
数値積分の安定条件
[8]
法線・接線成分の計算
- 単位法線ベクトル

- 相対並進速度

- 法線速度

- 接線速度

- 法線方向オーバーラップ


- 接線方向オーバーラップ(連続表現)

- 接線方向オーバーラップ(離散更新)

- ここで
は接線方向の単位ベクトルであり,
の場合

の場合

- 角速度の分解(粒子 i)


接触モデル
線形ばね–ダッシュポット(Voigtモデル)



摩擦モデル
条件を超えた場合は

転がり抵抗
[9]
運動方程式


積分
粒子 i の並進速度
,位置
,角運動量
を
時間ステップ
に進める代表的な数値積分法を示す。
,
はそれぞれ並進加速度と外力によるトルクである。
- オイラー前進法(Explicit Euler)
- 速度更新

- 位置更新

- 角運動量更新

- セントラルディファレンス法(中央差分)
- 位置更新

- 速度評価

- 角運動量更新

- シンプレクティック・オイラー法(Semi-implicit Euler)
- 速度更新

- 位置更新

- 角運動量更新

- リープフロッグ法(Velocity Verlet 型)
- 速度半ステップ

- 位置更新

- 角運動量半ステップ

- 4 次 Runge–Kutta 法(RK4)
- 内部ステージ
![{\displaystyle {\begin{aligned}k_{1}^{v}&={\vec {a}}_{i}^{\,n},&k_{1}^{x}&={\vec {v}}_{i}^{\,n},&k_{1}^{L}&={\vec {\tau }}_{i}^{\,n},\\[2pt]k_{2}^{v}&={\vec {a}}_{i}\!\left({\vec {x}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{1}^{x},\;{\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{1}^{v}\right),\\k_{2}^{x}&={\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{1}^{v},\\k_{2}^{L}&={\vec {\tau }}_{i}\!\left({\vec {x}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{1}^{x},\;{\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{1}^{v}\right),\\[2pt]k_{3}^{v}&={\vec {a}}_{i}\!\left({\vec {x}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{2}^{x},\;{\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{2}^{v}\right),\\k_{3}^{x}&={\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{2}^{v},\\k_{3}^{L}&={\vec {\tau }}_{i}\!\left({\vec {x}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{2}^{x},\;{\vec {v}}_{i}^{n}+{\tfrac {\Delta t}{2}}k_{2}^{v}\right),\\[2pt]k_{4}^{v}&={\vec {a}}_{i}\!\left({\vec {x}}_{i}^{n}+\Delta t\,k_{3}^{x},\;{\vec {v}}_{i}^{n}+\Delta t\,k_{3}^{v}\right),\\k_{4}^{x}&={\vec {v}}_{i}^{n}+\Delta t\,k_{3}^{v},\\k_{4}^{L}&={\vec {\tau }}_{i}\!\left({\vec {x}}_{i}^{n}+\Delta t\,k_{3}^{x},\;{\vec {v}}_{i}^{n}+\Delta t\,k_{3}^{v}\right).\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/c012e6442a59519b056c5246a24f319dd8c95c08)
- 更新式
![{\displaystyle {\begin{aligned}{\vec {v}}_{i}^{\,n+1}&={\vec {v}}_{i}^{\,n}+{\frac {\Delta t}{6}}\!\left(k_{1}^{v}+2k_{2}^{v}+2k_{3}^{v}+k_{4}^{v}\right),\\[4pt]{\vec {x}}_{i}^{\,n+1}&={\vec {x}}_{i}^{\,n}+{\frac {\Delta t}{6}}\!\left(k_{1}^{x}+2k_{2}^{x}+2k_{3}^{x}+k_{4}^{x}\right),\\[4pt]{\vec {L}}_{i}^{\,n+1}&={\vec {L}}_{i}^{\,n}+{\frac {\Delta t}{6}}\!\left(k_{1}^{L}+2k_{2}^{L}+2k_{3}^{L}+k_{4}^{L}\right).\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/85ab9c388c95b66330d6d927c8ed3297a7e39850)