結果の解析(Analysis)

提供: ComplexRI: Manual
ナビゲーションに移動 検索に移動

monitor システムによって出力されたデータファイルを解析するためのプログラム。 平均値、分布関数、時間相関関数、自由エネルギー等を統一的に扱う(予定)。 具体的にはネームリストで解析方法を指定し、それぞれの解析プログラムに分岐させることを想定している。 monitor システムはバージョンによって出力が変わることが予想されるが、バージョン情報を使用することによりできる限り対応する。

コマンドライン入力

./analysis.exe  nmlfile  files…

nmlfile: ネームリストファイル

files: 解析されるファイル。ワイルドカードの使用も可。


解析されるファイルを複数個指定する場合、同じ形式である必要がある。これらのデータは別のサンプルとみなされて統計平均される。

Namelist

ネームリストファイルでは、全体制御に関わる &analysis と各解析用のネームリスト(methodで指定する名前と同じもの。)の2種類を指定する。

&analysis

skip: 初めに読み飛ばす行数(default:0)。

interval: ここで指定された行数刻みでファイルを読み込む(default:1)。

method: 解析手法の選択(必須)。各種解析用のネームリスト名と同名の文字列(大文字)を指定すること。

各種ネームリストの説明

&average

平均値及び分散の計算に使用するネームリスト。

ncolumn: 計算に使用する列の番号。

&tcf

時間相関関数の計算に使用するネームリスト。

Acolumn, Bcolumn: ここで指定した列の間の時間相関関数 <A(t)B> を計算する。

maxdata: 相関を取る最大のデータ数

file: 計算結果の出力先

プログラム構造

プログラム構造は、monitor systemspcoord system と同様に

のようになっている。

新たに解析機能を追加する際には、抽象構造体 analysis_core_struct の拡張構造体として各解析プログラムを作成し、 analysis_struct 中にポインタの分岐を記述する(ソース内の analysis_xxx_struct の部分を参照)。 拡張構造体 (analysis_xxx_struct) には、

  • subroutine init(unit,nfile,monitor_info): 初期設定、ネームリスト読み込み
unit: ネームリストの装置番号
nfile: データファイルの数
monitor_info(:): 各ファイルのモニターのネームリストの情報
  • character(len=80) function looptype(): ループのタイプを返す関数(後述)
  • subroutine read(unit,ifile): データの読み取り、計算処理
unit: データファイルの装置番号
ifile: データファイルの番号
  • subroutine next(): 次のファイル or ステップに移動する際の処理
  • subroutine write(): 最終処理、データの出力

の5つのサブルーチンを用意する必要がある。

looptype 関数は、複数個のファイルを読み込んで各行(データ)の統計処理をする場合の処理の順番を制御する。 2 つの値をとり、それぞれ

のように処理される。一般に step_first の方がファイルの読み込みが速いため、特別の用途でない限り step_first を使う。

備考

 現在の analysis の仕様では、複数の解析手続きを一度に行うことはできない。そのような場合、入力のネームリストファイルを別々に用意して、analysis.exe の実行をそれぞれに行う。