dump2vtk 取扱説明書 & 開発者向け配布手順
本書は dump2vtk.exe(PySide6 GUI + CLI)のユーザー/開発者向けドキュメントです。公式サイト: Open DEM Japan
ダウンロード
私が作成したプログラムをコンパイルしてインストーラとしたEXEファイルを下記で配布しています.
ソースコードも下記で配布しています.
https://github.com/opendemjapan/D2V-dump2vtk-Japanese.git概要
dump2vtk.exe は LIGGGHTS/LAMMPS の dump を VTK に変換するツールです。
GUI は 3 つのタブ(Particles/Header Replace/Force chain)で構成され,CLI は同等機能をサブコマンドとして提供します。
インストール手順は セクション「インストール」 を参照してください。
依存関係(GUI 版では通常同梱):
- 必須:
numpy - GUI:
PySide6 - 任意:
vtk,networkx,python-louvain
インストール
Inno Setup で作成したインストーラから導入します。
セットアップの開始
- 配布物の
dump2vtk-Setup.exeを実行する。 - 言語選択とライセンス確認を行う。既定のインストール先は
C:\Program Files\dump2vtk。 Nextを押し,インストールを実行する。インストーラ画面の例を図 1 に示す。
ショートカットと起動
インストール完了後,スタートメニューに dump2vtk,デスクトップにショートカットが作成されます(既定タスク)。
ショートカットから dump2vtk.exe を起動すると,タスクバーにアプリのアイコンが表示されます。
デスクトップ例を図 2 に示します。
GUI の使い方
GUI は 3 タブ構成です(図 3〜図 5)。
Particles: Dump → VTK
- 左のリストへ dump を 1 つドラッグ&ドロップする。 同名プレフィクスの連番ファイルを自動収集する(数字の位置は末尾でも中間でもよい)。
- 右上の 出力先フォルダを必要に応じて指定(空欄時は入力と同じ場所)。
- Advanced settings では ASCII/BINARY,並列数,チャンクサイズ,
--no-overwrite(既存スキップ)を設定(バックエンドは VTK 固定)。 - Export VTK を押す。進捗バーとログに
Start: particle VTK (parallel)... Done.と表示されれば成功。
Header Replace: ヘッダー置換
ITEM: ENTRIES ... の一括置換)- pair/local 形式の dump(例:
fc0.dump, fc2000.dump, ...)を投入する。 WSL パス(\\wsl.localhost\...)も扱える。 - Replacement header に以下の 1 行を入力する:
ITEM: ENTRIES x1 y1 z1 x2 y2 z2 id1 id2 periodic fx fy fz Fnx Fny Fnz Ftx Fty Ftz - Apply header replacement を押す。各ファイルが
-renamed.dumpとして複製される。
Force chain: フォースネットワーク(出力は VTK)
*-renamed.dumpを 1 つ選ぶと同プレフィクスの連番を自動収集する。- Export network を押す。各ステップの VTK を出力する。
ログに
Start: force chain batch (parallel)... All done.と表示されれば完了。
VTK の出力例(ParaView)
以下に VTK ファイルの表示例を示します。粒子(図 6),フォースチェーン(図 7), Louvain 法による力のネットワーク(図 8)。
CUI(CLI)
以下にコマンドラインでの実行例を示します。画像は配置しません(LaTeX 版の \FloatBarrier 相当の節またぎ制御は不要です)。
lpp(粒子 Dump → VTK)
dump2vtk.exe lpp DUMP_FILES... ^
-o OUTROOT --format {ascii|binary} ^
--cpunum N --chunksize K --no-overwrite
rename(ヘッダー置換)
dump2vtk.exe rename ^
-H "ITEM: ENTRIES x1 y1 z1 x2 y2 z2 id1 id2 periodic fx fy fz Fnx Fny Fnz Ftx Fty Ftz" ^
inputs*.dump --inplace
force(フォースネットワーク + Louvain, 出力は VTK)
dump2vtk.exe force forcechain-*.dump ^
--encoding {ascii|binary} --keep-periodic --resolution 1.0 --seed 42 ^
--write-pointdata --outdir outdir/ --nan-fill 0.0 ^
--cpunum N --chunksize K --no-overwrite
エラーについて
次のエラーが表示されることがあります。
[WinError 1455] The paging file is too small for this operation to complete.
[WinError 1455] ページング ファイルが小さすぎるため、この操作を完了できません。
これは Windows のコミット上限(ページング ファイルを含む利用可能メモリ)に達したときに発生します。
対処: 並列数(CPUs)とチャンクサイズの両方を 1 に設定すると、メモリ使用量が大幅に下がり、エラーを回避できる場合が多いです。
配布(Windows): Nuitka ビルド
Nuitka: 単一 EXE ビルド(PowerShell 例)
$J = [Environment]::ProcessorCount
python -m nuitka --assume-yes-for-downloads --jobs=$J --msvc=latest `
--mode=onefile --enable-plugin=pyside6 `
--windows-icon-from-ico=D2V.ico `
--include-data-files="*.png=assets/" `
--include-data-files="D2V.ico=assets/" `
--output-dir="." --output-filename="dump2vtk.exe" --remove-output dump2vtk.py `
--windows-console-mode=attach
ライセンス
Pizza.py 由来部分は GPL(通常は GPL-2.0 互換)です。GPL 由来コードと結合して配布する場合,配布物全体は GPL に従います。 自作部分は MIT で供与可能ですが,結合配布時は GPL が優先します。主要ライセンスは NumPy(BSD-3),PySide6(LGPL-3), VTK(BSD-3),NetworkX(BSD-3),python-louvain(BSD 系)です。
開発メモ(実装要点)
- DumpReader/Snap: 粒子 dump の読み込み,スケール自動判定。
- find_scalars_vectors: 3 成分ベクトル/スカラー自動検出。
- BDump/FSnap: pair/local dump のストリーミング読込。
- VTK writer: レガシー形式(ASCII/BINARY)。
- Louvain: NetworkX + python-louvain によるコミュニティ集約出力。
- 並列は
multiprocessing.Pool(imap_unordered)を使用。
付録:LAMMPS dump(コマンド → 意味 → 出力:対応色で解説)
以下は LAMMPS/LIGGGHTS の dump 出力について、コマンド → 意味 → 出力の順に、列の対応色で整理したガイドです。 本ドキュメント内に埋め込み表示しています。別タブで開く場合は こちら をクリックしてください。
過去のプログラム
dump2vtk.exeは下記の3つのプログラムを1つのGUIにしたものです.
これらのファイルはpythonで書かれたLPP(/Pizza)をpython3に書き直して機能を追加して拡張したものです.