実行方式・設計

最終更新日: 2026年5月10日

比較

項目YADELIGGGHTS-PUBLIC判定意味
入力方式Pythonで粒子、壁、計算手順を直接書く。計算場(Scene)、計算処理(Engine)、粒子本体(Body)、接触情報(Interaction)を組み立てる。テキスト入力ファイルに、条件設定コマンド(command/style/fix)を並べて実行する。両方YADEはプログラムを書く感覚、LIGGGHTSは入力ファイルで計算条件を宣言する感覚。
実行単位計算処理のリスト(O.engines)に、重力、接触計算、時間積分などを並べる。実行命令(run)の中で、接触計算、条件設定(fix)、測定(compute)、保存(dump)が動く。両方YADEは処理リスト、LIGGGHTSは入力ファイルのコマンド群として表す。
接触の分解接触幾何(Ig2)、接触物性(Ip2)、力の式(Law2)に分かれる。法線力、接線力、凝着、転がり抵抗、粒子表面モデルを部品として組み合わせる。部分どちらも部品化されるが、分解の仕方が違う。
対話性Python操作画面と画面表示(GUI)で、実行中に状態を見たり属性を変えたりできる。基本は入力ファイルを作って実行する。可視化は結果保存後にParaViewやOVITOで見る。YADEのみ本体に対話的な画面操作画面があるか、という観点。
再現性Pythonスクリプト、設定ファイル、乱数種でケースを管理する。入力ファイル、読み込みデータ、乱数種でケースを管理する。両方再現性は両方で確保できる。管理対象のファイル形式が違う。
外部連携Pythonの最適化、機械学習、後処理ライブラリへ直接つなげる。外部Pythonから入力ファイルを作り、結果ファイルを読み込んで連携できる。両方YADEは本体内Python、LIGGGHTSは外部スクリプト連携として使う。

内部構造

YADEの単位LIGGGHTSの単位
粒子データ粒子本体(Body)、形状(Shape)、位置や速度(State)、材料(Material)。粒子の種類設定(atom_style)で保持する属性を決める。球、複数球粒子、角ばった楕円体状粒子、粒子法流体など。
近傍探索衝突候補を探す処理(Collider)と、形状ごとの外接箱(Aabb)を使う。近傍リスト(neighbor list)と領域分割(domain decomposition)を使う。
接触生成接触幾何(Ig2)で、重なり量、接触点、法線方向を作る。粒子-粒子接触(pair/gran)と粒子-壁接触(wall/gran)が接触を扱う。
接触物性接触物性(Ip2)で、材料から接触剛性、摩擦、凝着などを作る。材料物性設定(material/property)や接触モデルのパラメータで与える。
時間積分時間積分器(NewtonIntegratorなど)で、力から速度と位置を更新する。時間積分の条件設定(fix nve/sphereなど)で粒子の運動を更新する。

YADE実行ループYADE iteration loop
YADE相互作用クラスYADE interaction classes
YADEの接触則部品(Law Functor)YADE law functors

できる/できない

作業YADELIGGGHTS
条件分岐しながら境界を変える可能。Pythonで直接書く。可能。変数、ジャンプ、条件設定(fix)を組み合わせる。
同じ入力形式で大量ケースを回す可能。Python側でケースを管理する。可能。LAMMPS型入力と複数CPU並列計算(MPI)で管理する。
実行中に状態を見て手で調整する可能。画面操作画面(GUI)がある。限定的。本体は入力ファイル実行と保存後可視化が中心。