座標更新

Pythonで個別要素法プログラムの作成



座標の更新

これまでの計算で力を求めていますので、それに基づき粒子の位置を更新します。

位置を更新するには、
力/質量=加速度
加速度×微小時間=速度
速度×微小時間=移動距離
現在の位置+移動距離=更新位置
の流れです。

  1. def update_coord(self):
  2. pe = self.particles
  3. for i in range(self.par_count):
  4. #位置更新(オイラー差分)
  5. ax = pe[i].fx/pe[i].m
  6. ay = pe[i].fy/pe[i].m
  7. aa = pe[i].fm/pe[i].Ir
  8. pe[i].vx += ax*self.dt
  9. pe[i].vy += ay*self.dt
  10. pe[i].va += aa*self.dt
  11. pe[i].dx = pe[i].vx*self.dt
  12. pe[i].dy = pe[i].vy*self.dt
  13. pe[i].da = pe[i].va*self.dt
  14. pe[i].x += pe[i].dx
  15. pe[i].y += pe[i].dy
  16. pe[i].a += pe[i].da

以上で、DEMの主な処理は完了です。

ページトップへ