パラメータファイル (data.inp)

emout は EMSES のパラメータファイル(plasma.inp または plasma.toml)を読み込み、辞書風オブジェクトとして属性アクセスできるようにします。

パラメータへのアクセス

import emout

data = emout.Emout("output_dir")

# 辞書スタイル(グループ名 + パラメータ名)
data.inp["tmgrid"]["nx"]    # → 例: 256
data.inp["plasma"]["wp"]    # → 例: [1.0, 0.05]

# グループ名を省略(あいまいでなければ)
data.inp["nx"]              # → data.inp["tmgrid"]["nx"] と同じ

# 属性スタイル
data.inp.tmgrid.nx
data.inp.nx                 # グループ名省略

よく使うパラメータ

グリッド

パラメータ

グループ

説明

nx, ny, nz

tmgrid

グリッドの次元数

dx, dy, dz

tmgrid

グリッド間隔(EMSES 単位。SI は data.unit.length を参照)

nx, ny, nz = data.inp.nx, data.inp.ny, data.inp.nz

時間

パラメータ

グループ

説明

dt

tmgrid

時間ステップ

ifdiag

tmgrid

出力間隔(ifdiag ステップごとに出力)

nstep

tmgrid

総ステップ数

dt = data.inp.dt
total_time_steps = data.inp.nstep
output_interval = data.inp.ifdiag

プラズマ

パラメータ

グループ

説明

nspec

plasma

粒子種数

wp

plasma

種ごとのプラズマ周波数

qm

plasma

種ごとの比電荷

path

plasma

種ごとの熱速度

peth

plasma

熱速度(別名)

nspec = data.inp.nspec
wp = data.inp.wp        # プラズマ周波数のリスト
qm = data.inp.qm        # 比電荷のリスト

境界条件

パラメータ

グループ

説明

mtd_vbnd

emissn

各軸の境界タイプ(0=周期, 1=ディリクレ, 2=ノイマン)

btypes = data.inp.mtd_vbnd  # 例: [0, 2, 0] → 周期-ノイマン-周期

TOML 形式 (plasma.toml)

emout は plasma.toml を透過的にサポートします。plasma.inpplasma.toml の両方が存在する場合、plasma.toml が優先されます。

data = emout.Emout("output_dir")
data.inp.nx          # ファイル形式に関係なく同じインターフェース

生の TOML 構造へのアクセス

data.inp.toml        # 生の TOML 辞書(OrderedDict)を返す

TOML 形式では namelist グループに対応するセクションヘッダーを使います:

[tmgrid]
nx = 256
ny = 256
nz = 512
dt = 0.5

[plasma]
nspec = 2
wp = [1.0, 0.05]
qm = [-1.0, 0.001]

単位変換キー

plasma.inp の 1 行目に単位変換キーを記述できます:

!!key dx=[0.5],to_c=[10000.0]
  • dx: グリッド間隔(メートル [m])

  • to_c: EMSES 内部単位での光速

このキーにより data.unit を通じた SI 単位変換が有効になります。plasma.toml では以下のように記述します:

[meta.unit_conversion]
dx = 0.5
to_c = 10000.0

変換キーが存在しない場合、data.unitNone となり、SI 機能(val_si, use_si=True)は EMSES 生単位にフォールバックします。