並列化
| 項目 | YADE | LIGGGHTS-PUBLIC | 判定 | 注意 |
|---|---|---|---|---|
| 1台の計算機内 | 共有メモリ並列(OpenMP)やマルチスレッド対応部分がある。Python部分が支配すると伸びにくい。 | 複数プロセス並列計算(MPI)を中心に使う。 | 両方 | 両方に並列化の入口がある。並列化の単位が違う。 |
| 複数CPU並列計算 | YADE-MPIやサブドメイン分割機能がある。 | 基本設計として複数CPU並列計算(MPI)と空間領域分割を使う。 | 両方 | 両方に複数CPU並列計算の入口がある。運用方法と対応範囲は要確認。 |
| 画像処理用計算機での高速化 | GPU高速化の文書はあるが機能範囲に注意。 | GPU/CUDA関連ライブラリはあるが、DEM粒子計算で使える範囲はビルドと対象機能に依存する。 | 要確認 | GPU目的なら、使う接触モデルが対応するか個別確認が必要。 |
| 負荷分散 | 研究用途の分割機構がある。 | LAMMPS系のプロセッサ/領域分割運用がある。 | 両方 | 両方で領域分割を扱うが、設定と対応モデルは同じではない。 |
拡張性
| 追加したいもの | YADE | LIGGGHTS-PUBLIC | 判定 |
|---|---|---|---|
| 新しい接触則 | 接触幾何(Ig2)、接触物性(Ip2)、力の式(Law2)を追加する。 | 接触部品、粒子間相互作用設定、条件設定(fix)を追加する。 | 両方 |
| 新しい境界制御 | プログラミング言語Pythonでまず試作し、必要なら計算処理(Engine)化する。 | 条件設定(fix)を実装する。 | 両方 |
| 新しい出力 | Pythonの記録処理またはC++の記録処理を追加する。 | 測定設定(compute)または保存設定(dump)を追加する。 | 両方 |
| 外部最適化 | Pythonライブラリを直接呼べる。 | 外側のスクリプトから入力生成と結果読み込みを行う。 | 両方 |
| 既存産業DEMの部品利用 | 自作が多くなりやすい。 | 条件設定、三角形メッシュ壁、粒子投入、保存設定がそろう。 | 部分 |
保守・運用
| 観点 | YADE | LIGGGHTS-PUBLIC |
|---|---|---|
| 入力ファイルの読みやすさ | Pythonに慣れていれば読みやすい。自由度が高い分、書き方の流儀が分かれる。 | LAMMPS型入力に慣れていれば読みやすい。コマンド名から機能を追える。 |
| エラー追跡 | Pythonのエラー表示とC++ログを併用する。 | LAMMPS形式のエラーとログを追う。 |
| モデル検証 | 小さいスクリプトで式と挙動を検証する。 | 既定例と公式ドキュメントに沿って検証する。 |
| ケース管理 | Pythonコードで管理する。パラメータを辞書、JSON、CSV化できる。 | 入力ファイル、読み込みファイル、変数、外部スクリプトで管理する。 |
並列化・拡張