slvfeのエラーについて

153 views
Skip to first unread message

Noritaka Inoue

unread,
Oct 10, 2013, 11:51:23 PM10/10/13
to ermod...@googlegroups.com
初めまして。
デンソーの井上と申します。

件名の件ですが、実行後ほどなくして
    「Incorrect energy range with species            1」
というメッセージが出力され、計算が停止してしまいました。
考えられる原因があれば、ご教授いただければ幸いです。

また、solnの計算が30分ほどで終了したのに対し、
refsの計算には47時間(約2日)も要しました。
このような計算時間は想定内でしょうか。
個人的には、refsの計算の方に何か問題があったのでは、
と感じております。

使用したパラメータは、ecdmin以外はデフォルトのものになります。
ermodのバージョンは0.2.4です。

以上、よろしくお願いいたします。
井上 鑑孝

nobuyuki

unread,
Oct 11, 2013, 4:10:15 AM10/11/13
to ermod...@googlegroups.com
井上様

松林です。よろしくお願いいたします

下記の件ですが、ecdminを変えたようですが、
solnとrefsで同じ値になっている必要があります。
solnのparameters_erとrefsのparameters_erをみて、
&histのセクションにある値は、全て同じでないと、
solnとrefsでのエネルギーの座標の取り方が異なり、今回のようなエラーが出たのだと思います

それから、計算時間なのですが、どのような系ですか?
具体的には、溶質と溶媒の分子種、および、溶媒の分子数です。
また、solnとrefsのそれぞれについて、MDのframe数が、どれだけだったでしょうか?

計算時間は、上の情報に強く依存しますので、一旦、上の点を確認させて下さい


2013年10月11日金曜日 12時51分23秒 UTC+9 Noritaka Inoue:

Noritaka Inoue

unread,
Oct 11, 2013, 5:20:32 AM10/11/13
to ermod...@googlegroups.com
松林先生

ご回答まことにありがとうございます。

>solnとrefsで同じ値になっている必要があります。
同じ値を使用したつもりではありますが、
もしかしたらrefsの方で上手く反映されていなかったのも知れません。
もう一度計算条件を精査し、再計算してみます。

>それから、計算時間なのですが、どのような系ですか?
溶媒:原子数110の分子、溶質:原子数90の分子です。
また、モデル内の溶媒分子数は94です。
(具体的な分子種は秘密事項となります、申し訳ありません)

>また、solnとrefsのそれぞれについて、MDのframe数が、どれだけだったでしょうか?
soln、refsともに10000です。


以上、よろしくお願いいたします。
井上 鑑孝

nobuyuki

unread,
Oct 11, 2013, 5:59:40 AM10/11/13
to ermod...@googlegroups.com
井上さん

松林です。

もう一度計算条件を精査し、再計算してみます。
了解です 


>それから、計算時間なのですが、どのような系ですか?
溶媒:原子数110の分子、溶質:原子数90の分子です。
また、モデル内の溶媒分子数は94です。
(具体的な分子種は秘密事項となります、申し訳ありません)
>また、solnとrefsのそれぞれについて、MDのframe数が、どれだけだったでしょうか?
soln、refsともに10000です。
なるほど。refsの場合は、1つのスナップショットに、溶質を仮想的に置きます。
溶質を仮想的に置いて、溶質―溶媒相互作用を計算しますが、
1回仮想的に置くと、結局、solnの1 frame分と同じ計算量です。
そして、デフォルトでは、仮想的に置く回数が、refsの1スナップショットあたり1000回です
(maxinsというパラメータで変更可能です)。

というわけで、solnとrefsのframe数が同じなので、計算時間が1000倍になり、
30分 vs 2日となります。

それで、refsのframe数は、もっと少なくても構いません。
系は、均一系ですか?つまり、ミセルとか膜のように、
1カ所に1つの種類の分子が集まっているわけではないな? 
そうであれば、refs用のtrajectoryの snapshot を save の頻度(MD本体で制御します)は、
solnの場合の 1/10程度で良いです。
その上で、MDそのものの時間も、refsは、solnの1/2〜1/5で良いです。

上で試してみてもらえますか?

nobuyuki

unread,
Oct 11, 2013, 6:36:37 AM10/11/13
to ermod...@googlegroups.com
井上さん

松林です。PSです

> solnとrefsのframe数が同じなので、計算時間が1000倍になり、
> 30分 vs 2日となります。
これは、おかしいですね。すみません。
1000倍であれば、500時間なので20日ですね。
同じスナップショットに、溶質を1000回仮想的に置くのですが、
同じスナップショットを使っているということで、早くなるのかもしれません

ともあれ、均一系であれば
> refs用のtrajectoryの snapshot を save の頻度(MD本体で制御します)は、
> solnの場合の 1/10程度で良いです。
> その上で、MDそのものの時間も、refsは、solnの1/2〜1/5で良いです。

それで、現在は、せっかく、refs用trajectoryがあるので、
refs用MDを、再度走らせなくても良いです。
ermodを走らせる際に、parameters_er で、skpcnf = 10 としておけば、
スナップショットを、9飛ばしで読んで行きます
(つまり、10回の内、1回のスナップショットを使う)

例えば、refs用MDが、100 fsに一回で、trajectoryがsaveされておれば、
skpcnf = 10 とすれば、1 ps毎に読み込むことになります
(デフォルトは、skpcnf = 1で、つまり、全スナップショットの読み込みです)

refs用のMDで、snapshot の save の頻度を、最初は高くしておいて、
その後、skpcnf を色々変えて、問題無いskpcnfの値が分れば、
その後の、refs用MDのsnapshot の save の頻度を下げると、
refs用MDのtrajectory fileが軽くなります。

例えば、最初は、100 fsに一回で、trajectoryをsaveしていたとして、
それで、skpcnf = 10 でも問題無いと分れば、
その後は、1 psに1回で、trajectoryをsaveすれば良いです
(ただし、1 psに1回になれば、ermodを走らせる際は、skpcnf = 1です)。
上のようにすれば、refs用のMDのtrajectory fileのサイズを1/10にできます






2013年10月11日金曜日 18時59分40秒 UTC+9 nobuyuki:

Noritaka Inoue

unread,
Oct 11, 2013, 1:13:22 PM10/11/13
to ermod...@googlegroups.com
松林先生

井上です。
計算時間の件、詳細に解説していただき、ありがとうございます。
対象の系は均一なので、計算時間を大分短縮できそうです。

エラーの件について、結果が得られ次第またご報告させていただきます。

Noritaka Inoue

unread,
Oct 15, 2013, 12:29:52 AM10/15/13
to ermod...@googlegroups.com
松林先生

井上です。
エラーの件ですが、結論を言うとまだ解決できていません。

ecdminは同一の値となっていました。
異なる値となっていた場合、
  At line 421 of file slvfe.F90
  Fortran runtime error: End of file
というエラーメッセージが表示されます。

他に考えられる要因はありませんでしょうか。

P.S.
solnの計算時間は5分程度でした。失礼いたしました。
ですので、先生が最初になされた計算時間の見積もりは正しいと思います。

以上、よろしくお願いいたします。
井上 鑑孝

nobuyuki

unread,
Oct 15, 2013, 1:07:14 AM10/15/13
to ermod...@googlegroups.com
なるほど。

> ecdminは同一の値となっていました。
この設定で正しいです。
となれば、ecdminをさらに小さくする必要があるかと思います。

例えば、ecdmin を、-300 とか、スゴく小さくしてみて、
そして、MDinfoを開けて、frame数を、100とかのように小さくして、短く solnだけ走らせます。
そうすると、uvrange.ttというファイルが出ますので
そこで、溶質―溶媒相互作用の最小値が分かります。
その最小値よりも、少し小さいぐらいの値に、ecdmin を設定して、本番を走らせる、
というやり方で、やってみてもらえますか?

Noritaka Inoue

unread,
Oct 15, 2013, 5:03:38 AM10/15/13
to ermod...@googlegroups.com
松林先生

井上です。
ecdminを更に小さな値に設定したところ、
エラーが解消されました。

迅速かつ丁寧にご教授いただきまして、
まことにありがとうございました。


以上
井上
Reply all
Reply to author
Forward
0 new messages