REMDにおけるrstout_period指定について

Viewing 1 reply thread
  • Author
    Posts
    • #16672

      ishida-hisashi
      Participant

      量研機構の石田です。

      (genesis2.0を使った)REMD計算において、リスタートファイルをあるステップ毎に出力するようにrstout_periodを指定したのですが、指定通りには出力していないように思えます。(User GuideのREMDにも書いてあるようには見えません。)

      ソースコード全体は理解してはおりませんが、src/spdyn/run_remdにおいて ! MD main loopでMDに関するルーチンが動作します。(vverlet_dynamicsなど)そしてトラジェクトリーやリスタートファイルの出力にはsrc/spdyn/sp_outputにあるoutput_mdがrstout_period毎にoutput_restart_mdをcallしていますが、output_restart_mdの中でremd実行時には何もしないでreturnさせることが( if (output$replica) & return )、リスタートファイルを指定通りには出力しない原因のように思えます。

      実際には、run_remdにおけるoutput_remdでREMDのexchange_period毎にリスタートファイルを出力しているようです。

      私の理解でよいでしょうか?(もしそうならば、REMDのときは、rstout_periodは無視されて、exchange_period毎に出力するとmessageを出力するか、User Guideにその旨が記述されてあると幸いです。)間違いがあれば、ご指摘ください。

      よろしくお願いいたします。

    • #16673

      ckobayashi
      Moderator

      石田様

       

      GENESIS開発チーム、小林です。

      exchange_period/restart_periodに関してご迷惑をおかけしてます。ご指摘ありがとうございました。

      コードを確認したところ、ステップ数がexchange_periodの倍数かつrstout_periodの倍数の時にrestartを記述するようです。(つまり、exchange_period = 1000, rstout_period=5000の場合は5000ステップ毎にrstファイルを出力する)

      rstout_periodがexchange_periodの倍数でない場合に、想定ではないふるまいをします。これに関しては、次期バージョンかそれ以降に、問題のインプットをエラーで終了させるようにし、マニュアルにも記載するように検討します。

      よろしくお願いいたします。

       

      小林

Viewing 1 reply thread

You must be logged in to reply to this topic.