Reference

Reference #

Mjolnirにはコマンドラインオプションはありません。 設定には入力ファイルを使用し、実行は以下のような形になります。

$ mjolnir sample.toml

ここでは、入力ファイルの主なコンポーネントを紹介します。

ファイルのフォーマットはTOML v1.0.0に準拠します。 TOMLファイルについては公式サイトを参照して下さい。 仕様の日本語への翻訳も提供されています。

入力ファイルには大きく5つの項目があり、それぞれがテーブル、またはテーブルの配列になっています。

[files] #

入力ファイルや出力ファイルのファイル名やパス、フォーマットなどの指定を行います。

[units] #

単位系を設定します。

[[forcefields]]のエネルギーのパラメータや[[systems]]での粒子の位置など、 ファイルから入力される数値は、ここで指定された単位系として解釈されます。

[simulator] #

シミュレーションのプロトコルを決めるテーブルです。 時間刻みや、何ステップのシミュレーションを行うか、何ステップごとに出力するかなどを 設定します。また、計算精度や境界条件の設定も行います。

メインの入力ファイルとは別のファイルとして設定可能です。

[[systems]] #

系にある粒子や系に属するパラメータ、境界の具体的な形などを設定します。 距離などの単位は[units]での設定に準じます。

複数のsystemを扱うシミュレーションのために、テーブルの配列として定義されています。 通常のシミュレーションでは、一つしか定義されません。

メインの入力ファイルとは別のファイルとして設定可能です。

[[forcefields]] #

用いる力場を設定します。 パラメータの単位は[units]での設定に準じます。

複数の力場を扱うシミュレーションのために、テーブルの配列として定義されています。 通常のシミュレーションでは、一つしか定義されません。

メインの入力ファイルとは別のファイルとして設定可能です。

ファイルのインクルード #

入力ファイルの全ての箇所で、includeという変数は特別な意味を持ちます。

includeは文字列型もしくは文字列の配列型を持つことができ、ファイルを指定することができます。 このファイルのパスは[files]テーブルで指定されるfiles.input.pathの影響を受けます。

# main.toml
[[forcefields]]
include = [
    "bond-length.toml",
    "bond-angle.toml"
    "lennard-jones.toml",
]

このようにファイルを指定すると、そのファイル内に定義されている値がincludeを指定したテーブルの下にマージされます。

以下のようなファイルを用意した場合、

# bond-length.toml
[[local]]
interaction = "BondLength"
potential   = "Harmonic"
parameters  = [
    # ...
]

内部的なファイルの内容は以下の形になります。

[[forcefields]]
[[forcefields.local]]
interaction = "BondLength"
potential   = "Harmonic"
parameters  = [
    # ...
]

ここで、展開は最初の一回だけ行われ、再帰的な展開はなされないことに注意してください。