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に書き直して機能を追加して拡張したものです.