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 = [
# ...
]
ここで、展開は最初の一回だけ行われ、再帰的な展開はなされないことに注意してください。