FreeFlex マニュアル
ナビゲーションに移動
検索に移動
FreeFlex概要
本FreeFlexは、主に液体および界面系のさまざまな自由エネルギー計算に柔軟に対応できるMDプログラムとして開発された。液体界面でのwater finger座標によって初めてwater finger形成・切断の自由エネルギー障壁が明らかにされたように、既存の方法を超えた新たな座標が求められる場合も多い。FreeFlexは、一般化座標の設定が容易で汎用性が高く、それに対する拘束条件やバイアス・ポテンシャルを課したり、その座標上の自由エネルギー計算を実行しやすいように設計された。
現在のFreeFlexは、自由エネルギー計算手法として、
- 自由エネルギー摂動法 (overlapping distribution法)
- アンブレラサンプリング法
- レプリカ交換アンブレラサンプリング法
の3通りをサポートしている。分子モデルは、点電荷および点双極子の分極モデルをサポートする。MD計算のチューニングについても多くの工夫がなされている。
FreeFlexは、吉川信明君が自らの研究のために作成していたMDプログラムを母体として、2014年度より汎用化を目指した開発が始められた。吉川君、王聆鉴君および森田が開発に加わり、液液界面に関わる吉川、聆鉴君それぞれの研究に必要なMDプログラムを包括する形で開発された。2015年より杉林君、2016年より田原君、2017年より平野君、内藤君、小泉さん、2018年より伊藤君が開発チームに加わって、液液界面での電子移動反応やfaciliated ion transfer、グランドカノニカルMDの研究へと進んでいる。また信田君によってparticle mesh Ewald法やOpenMP並列化が実装され、従来より格段に高速化した。
チュートリアル
- チュートリアル01:水-DCM 界面のシミュレーション
- FreeFlex の基本的な使用方法のチュートリアルとして、コンパイル、系の作成、MD の実行といった一連の流れを説明する。
- また、計算結果を確認するために show_energy.exe を用いてエネルギーの時間変化をグラフとして表示する。
- チュートリアル02:並列実行
- FreeFlex.exe の並列実行についてのチュートリアル。
各実行プログラムの説明
- FreeFlex.exe
- MD 計算を行うプログラム。
- add2.exe
- 初期構造作成のためのプログラム。
- gauss_fit.exe
- WHAMで計算した自由エネルギー面を、多数のガウス関数でフィッティングするプログラム。
- ms2xyz.exe
- msファイルをxyzファイルに変換するプログラム。
- wham.exe
- WHAM計算を行うプログラム。(現在は用いられていない)
- xyz2ms.exe
- msファイル中の座標をxyzファイルの座標で上書きするプログラム。
- old/unlap.exe
- msファイルの分子の重なりを除去するプログラム。(msファイル ver0.3 以上には非対応)
- tools/FEPSHOW.exe
- 状態間の自由エネルギー差を中間状態およびoverlapping distributionで求める。
- tools/RDF.exe
- RDFを計算するプログラム。
- tools/analysis.exe
- monitorシステムによって出力されたデータを解析するプログラム。
- tools/avarage2d.exe
- イオン周りの水分子数の平均値の二次元マップを作成するプログラム。
- tools/fep_2d_to_1d.exe
- 二次元自由エネルギー曲面を積分し、一次元の自由エネルギー曲線を得るプログラム。
- tools/gc_analyzer.exe
- グランドカノニカルMDの出力データから自由エネルギー面と密度分布を計算するプログラム。
- tools/search_traj.exe
- トラジェクトリ情報が記載されたxyzファイルから特定の構造を取り出すプログラム。
- tools/show_energy.exe
- FreeFlexのログファイルから各種エネルギーの変化のグラフを作成するプログラム。
- tools/tapstep_fit.exe
- 一次元自由エネルギー面をステップ状の連続関数でfittingするプログラム。
- tools/therm_int.exe
- MPI並列化された平均力計算の結果から一次元自由エネルギー面を求めるプログラム。
- tools/watnumdist.exe
- イオン周りの水分子数の分布関数を作成するプログラム。
- tools/z_dist.exe
- z方向の分布関数を求めるプログラム。
- mkbias.exe
- &biasdataとbias.csvを作成するプログラム。
- biasdata_gen.exe
- &biasdataを作成するプログラム。
入力ファイルとネームリスト
- &add
- &FreeFlex
- &systemとmsファイルの変数
- &FEP および tools/FEPSHOW.exe中の&INPUT
- &BIAS
- &REUS
- &MONITOR
- &spcoord
- &addCOM
- &constraint
- &addconstr
- &gauss_fit
- &WHAMSETTING
- &WHAM_INPUT
- &dE_dim and &dE_param
- msファイルの仕様
- &nonLB
- &gc, &gc_bias, &gc_density, &gc_free, &gcbias, &accel_dequil
- &conductor
主な機能
モジュール・構造体の一覧(abc 順)
モジュール
- common_module
- 基本的な物理定数、単位変換の定数と、汎用的な関数・サブルーチンを集めたモジュール。
- flexlist_module
- Flexlist module takes care of size-variable lists and the transformation operations between them. It is not a class, but rather a simple module like common_module.
- list_data_module
- This module defined in list_data.F contains an extendable LIST_DATA struct that is used by linked_list_struct and dictionary_struct.
構造体
- bias_system_struct
- Bias module is developed to enable user-definable bias potential calculations for FreeFlex.exe along with spcoord_struct.
- conductor_struct
- 導体分子の設定と分極計算を行う構造体。
- constraint_struct
- 拘束関係の処理を行う構造体。
- coord_struct
- MD 計算で使用する座標・速度を管理する構造体。
- coord_core_strut の拡張構造体で spcoord_struct をメンバ変数に持つ。
- system_struct
- ms ファイルに対する操作を行う構造体。
- delaunay_tri_struct
- The struct that calculates 2D/3D Delaunay triangulation from given set of vertices.
- It contains an interface that calls c++ functions to perform tha actual analysis.
- dictionary_struct
- The struct that provides user access to dictionary data structure.
- This dictionary is actually an array of linked lists managed by a simple hash table.
- diis_struct
- DIIS法(SCF計算の収束加速法)の計算を行う構造体。
- grid_data_1d_struct
- 一次元格子点上のデータを取り扱う構造体。
- grid_data_2d_struct
- 二次元格子点上のデータを取り扱う構造体。
- linked_list_struct
- The struct that provides user access to singly linked list data structure.
- It can also be used as a queue or stack depending on the situation.
- math_graph_plus_struct
- The struct that provides user access to a number of graph theory algorithms.
- It contains an interface that calls c++ functions to perform tha actual analysis.
- piecewise_polynomial_struct
- 区分多項式の構造体。
- piecewise_struct の拡張構造体となっており、polynomial2_struct をメンバ変数に持つ。
- 和・差・積、微分・積分、シフト・反転 等の操作が行える。
- piecewise_struct
- 区分構造(数直線の切り分け方)の構造体。
- 区分多項式(piecewise_polynomial_struct) 等で使われる。
- plot_struct
- gnuplot を用いたグラフ出力のための構造体。
- polynomial2_struct
- 多項式の構造体。
- 和・差・積、微分・積分、シフト・反転 等の操作が行える。
- reus_struct
- The struct that handles 1d/2d REUS calculation.
- This functionality is based on bias_system_struct.
- wham_calc_struct
- The struct that handles WHAM.
式の導出・考察等
- 周期境界条件下の分極についての考察
- REUS法の交換確率の見積もり
- Weighted Histogram Analysis Method
- 1/r の発散の防止について
- Balanced search tree
- 電位差一定のMD計算
- 内部座標に対する微分の式
- Gauss関数による離散データのfitting
- 溶液界面のグランドカノニカルMD
静電相互作用の計算について
- 静電相互作用の計算で用いられている式の根拠となる事項についてまとめたもの。 下記の Polarize.docx, Polarize_a.docx を統合し、大幅に加筆・修正して作成した。 分量が多くファイルが重いと思われるため注意。
- 上記の electrostatic_int.docx の補足を記したテキスト。 分量・数式が多くファイルが重いと思われるため注意。
- エワルド法の逆空間で計算すべき物理量を実装する際に用いる式をまとめたもの。 エワルド法の逆空間・self term の実装に用いる式に対する注意も記載されている。
- 静電相互作用の計算に用いる式の根拠となる事項についてのまとめが記されたテキスト。 古いファイルであるため、基本的に参照する必要はないが、このテキストの8章はParticle Mesh Ewald 法の実装に関するアドバイスが記載されているため、8章は参照する価値がある。
その他のページ