クイックスタート
インストール
pip install emout
3D 可視化(PyVista)を使う場合:
pip install "emout[pyvista]"
シミュレーションデータの読み込み
import emout
data = emout.Emout("output_dir")
Emout はディレクトリ内の HDF5 ファイルとパラメータファイル(plasma.inp または plasma.toml)をスキャンします。
変数名は EMSES のファイル名規則から自動的に解決されます:
属性 |
ファイルパターン |
説明 |
|---|---|---|
|
|
静電ポテンシャル |
|
|
種1 の数密度 |
|
|
種1 の電流密度 (x成分) |
|
|
電場 (x成分) |
|
|
磁場 (z成分) |
|
|
再配置された電場 (x成分) |
|
|
2D ベクトル(自動結合) |
|
|
3D ベクトル(自動結合) |
|
|
電流データ(pandas DataFrame) |
|
|
導体データ(pandas DataFrame) |
各属性は時系列オブジェクトです。タイムステップでインデックスすると NumPy 互換の配列を返します:
len(data.phisp) # タイムステップ数
data.phisp[0].shape # (nz, ny, nx)
data.phisp[-1] # 最終ステップ
最初のプロット
# 最終ステップの xz 平面(y = ny/2)の電位 2D カラーマップ
data.phisp[-1, :, data.inp.ny // 2, :].plot()
スライスの軸順序は (t, z, y, x) です。2D または 1D にスライスした後、.plot() を呼ぶだけで SI 単位付きの図が表示されます。
追加出力の結合
シミュレーションが追加ディレクトリに継続出力した場合:
# 自動検出
data = emout.Emout("output_dir", ad="auto")
# 手動指定
data = emout.Emout("output_dir", append_directories=["output_dir_2", "output_dir_3"])
粒子データ
EMSES の粒子出力は種ごとに自動グルーピングされます:
p4 = data.p4 # 種4
p4.x, p4.y, p4.z # 位置の時系列
p4.vx, p4.vy, p4.vz # 速度の時系列
p4.tid # トレース ID
# pandas Series に変換
data.p4.vx[0].val_si.to_series().hist(bins=200)