昇温シミュレーション
エネルギー最小化計算で、エネルギー最小化後の分子構造を得た。この分子構造はこの段階では速度を持っていない。そのため、昇温シミュレーションによって系の原子集団が目標の温度における速度分布を持つようにする。以下のようなmdinファイルをheat.inとして作成し、sanderに読み込ませる。ここでは昇温シミュレーションに関係性の高いパラメータに絞って解説をしてあるが、解説していないパラメータについても参考文献を参照し、意味を理解するようにしておくのがよいだろう。
Heat &cntrl imin=0, # 分子動力学計算を行う ntx=1, # ntx=1, irest=0によってボルツマン分布からランダムに各原子に初期速度を与える irest=0, nstlim=10000, # 分子動力学シミュレーションのステップ数 dt=0.002, ntf=2, ntc=2, tempi=0.0, # 初期温度 temp0=300.0, # 目標温度 ntpr=100, ntwx=100, cut=12.0, ntb=2, ntp=1, ntt=3, # Langevan熱浴で温度を制御する gamma_ln=5.0, # 1 ps当たりのピストンの衝突頻度 ig=-1, # Langevan熱浴や初期速度等に用いられる擬似乱数を現在の日付と時間をベースとして生成する / &wt type='TEMP0', istep1=0, istep2=9000, value1=0.0, value2=300.0 / # 0~9000ステップ目までに300 Kまで温度を上昇させる &wt type='TEMP0', istep1=9001, istep2=10000, value1=300.0, value2=300.0 / # 9000~10000ステップ目は300 Kを維持する &wt type='END' /
エネルギー最小化計算と同様に以下のようにsanderもしくは、pmemdを用いてプログラムを実行する。この時、分子の座標情報はエネルギー最小化計算で得たmin.rstから読み込むことに注意しよう。この計算から1CPUだけでは計算時間がかかるため、並列化計算が出来る環境でのpmemdを用いた実行をおすすめする。ここではpmemdの例を示す。
mpirun -np 並列CPUコア数 $AMBERHOME/bin/pmemd -O -i heat.in -o heat.out -x heat.mdcrd -p test.prmtop -c min.rst -r heat.rst -inf heat.info