トップQs
タイムライン
チャット
視点

個別要素法

ウィキペディアから

個別要素法
Remove ads

個別要素法(こべつようそほう、: Distinct Element Method、DEM)または離散要素法Discrete Element Method、DEM)は、解析の対象を自由に運動できる多角形や円形・球の要素の集合体としてモデル化し、要素間の接触・滑動を考慮して、各時刻におけるそれぞれの要素の運動を逐次追跡して解析する手法である。もとは岩盤工学に適用するためにPeter A. Cundall (1971)およびCundall and Strack (1979)[1]により発表された論文に端を発しており、現在は液状化や土石流など地盤の挙動解析やコンクリート構造物、粉体化学工学リチウムイオン電池薬学農学など)、磁気相互作用力を有する電子写真システムのトナーの挙動解析などに用いられている。

Thumb
RotatingDrum
Thumb
2粒子間距離を線で表現し, 力大きさを線の太さで表現したものをForce Chain 力鎖とよぶ.
Remove ads

概略

要約
視点

以下に、円形要素を用いた際の運動方程式を示す。

質量、慣性モーメントのある円形要素について、次の運動方程式が成り立つ。

ここに:要素に働く合力、:要素に働く合モーメント、:減衰定数、:要素の変位ベクトル、:要素の回転変位である。

要素同士が接触しているときはは弾性定数)及びは円の半径)、離れているときは、で表される。ただし、重力を考える場合は合力の項で考慮する。

上式を数値積分することで、逐次変位ベクトルと回転変位を得ることができる。

Remove ads

特徴

  • 計算コストは もしくは で線形に近くスケールする。
  • 明示的時間積分のため安定性条件は などにより制限される。
  • 接触履歴を保持することで摩擦・転がり抵抗を自然に扱える。
Remove ads

ソフトウェア

オープンソース

  • LIGGGHTSLAMMPS を基盤に開発された粉体シミュレーション用オープンソース DEM コードで、粒子の熱挙動にも対応する。[2]
  • Yade日本語版 — C++ と Python で実装された拡張性の高い DEM フレームワーク。CFD との連成(CFD–DEM)解析にも利用される。[3]
  • LAMMPS(granular パッケージ) — 汎用分子動力学コード LAMMPS に同梱される粒状体シミュレーション用サブパッケージで、軟球モデルによる粒子間接触力や境界条件が実装されている。[4]

商用ソフト

  • Granuleworks
  • EDEM
  • Rocky DEM

アルゴリズム

1. 初期化

  • 粒子属性(径・質量・慣性モーメントなど)を読み込む。
  • 計算領域をボックス、周期境界、固定壁などとして定義する。
  • セル分割法を用いて「衝突探索ボックス」を生成し、全粒子を登録する。

2. 時間積分ループ

以下ではステップ番号を 、タイムステップを とする。

(a) 接触判定
近接セル内の候補ペアに対し、半径差 を評価し、 なら接触とみなす。
(b) 接触履歴
クーロン摩擦や粘弾性モデルでは接触履歴が必要となる。前ステップで既接触なら
未接触なら
(c) 接触力計算
Hertz-Mindlin 式などを用い、法線力 と接線力 を評価する。
(d) 外力計算
重力 、流体抵抗、磁気力などシミュレーション対象に応じた外力を加算する。
(e) 運動方程式の陽積分
例として単純並進のみを示す。
角運動は陽オイラー四元数を用いるのが一般的である。
(f) 粒子情報更新
位置・速度が確定したら、衝突探索ボックスのセルインデックスを更新する。
(g) 時間終了判定
なら計算終了。それ以外は (a) に戻る。
Remove ads

疑似コード

initialize_particles()
initialize_search_grid()

for t = 0; t < t_end; t += Δt
    build_neighbor_list()
    for each particle i
        Fi, Mi ← 0
    for each contact pair (i, j)
        δn ← overlap(i, j)
        if δn > 0 then
            update_tangential_history(i, j)
            Fij, Mij ← contact_force(δn, history)
            Fi  += Fij
            Fj  -= Fij
            Mi  += Mij
            Mj  -= Mij
    for each particle i
        Fi += external_forces(i)
        vi ← vi + (Fi/mi) Δt
        ωi ← ωi + (Mi/Ii) Δt
        xi ← xi + vi Δt
        update_search_grid_cell(i)
end for
Remove ads

計算の詳細

要約
視点

セル分割法

セル分割法(英: *cell-linked list method*、*link-cell method*)は、短距離カットオフをもつ相互作用を扱う離散要素法(DEM)や分子動力学 (MD) シミュレーションで、近傍粒子対を線形時間で検索する空間分割アルゴリズムである。計算領域をカットオフ半径以上の立方体セルに区切り、各セル内に存在する粒子番号をリンクリストとして保持することで、粒子 個に対するペア探索の計算量を に削減できる。

主な手順は以下のとおり[5][6]

  1. セル分割 — シミュレーションボックスを辺長 の格子セルに分割し、セル番号 を割り当てる。
  2. リンクリスト構築 — 各粒子の座標から所属セルを計算し、セル毎に先頭ポインタ head と粒子間リンク lscl の単方向リストを更新する。
  3. 近傍探索/力計算 — 各粒子について自身が属するセルと 26 個の隣接セル内の粒子だけを走査し、距離がカットオフ半径 未満のペアに対して力を評価する(ニュートン第三法則を用いて重複計算を排除)。
  4. セル更新 — 各タイムステップで粒子がセル境界を越えた場合、対応するリンクリストを再構築する。

アルゴリズムの平均計算量は

であり、セル体積 と平均粒子密度 が一定なら粒子数に対して線形にスケールする。セル長 は密度、カットオフ半径、キャッシュライン長などの実装パラメータによって最適値が異なる。

物理量計算

球粒子の慣性モーメント

Hertz–Mindlin 接触

, , は有効ヤング率・有効せん断弾性率・有効半径)

粘性減衰と反発係数

[7]

数値積分の安定条件

[8]

法線・接線成分の計算

単位法線ベクトル
相対並進速度
法線速度
接線速度
法線方向オーバーラップ
接線方向オーバーラップ(連続表現)
接線方向オーバーラップ(離散更新)
ここで は接線方向の単位ベクトルであり,
  • の場合
  • の場合
角速度の分解(粒子 i

接触モデル

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

摩擦モデル

条件を超えた場合は

転がり抵抗

[9]

運動方程式

積分

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

オイラー前進法(Explicit Euler)
  • 速度更新
  • 位置更新
  • 角運動量更新
セントラルディファレンス法(中央差分)
  • 位置更新
  • 速度評価
  • 角運動量更新
シンプレクティック・オイラー法(Semi-implicit Euler)
  • 速度更新
  • 位置更新
  • 角運動量更新
リープフロッグ法(Velocity Verlet 型)
  • 速度半ステップ
  • 位置更新
  • 角運動量半ステップ
4 次 Runge–Kutta 法(RK4)
内部ステージ

更新式

Remove ads

脚注

参考文献

関連項目

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads