古いバージョンのBBSは閲覧のみ可能です。
The old BBS is read only.

132

Re^4:Error (supercell3*3*3 Calculation, in Japanese)

Posted on : December 18, 2004 (Sat) 18:19:49

by takafumi ihara

(物・材機構 小林様wrote)
> 計算がうまく行きなによりです。もし差し障りが無ければ、
>どのようにして問題解決に至ったのか(単純なパラメーター
>設定の問題か、メモリー問題か等)示して貰えれば、ありが
>たいです(筆者にとっても参考になるので)。

井原です。返事が遅れ、大変申し訳ありません。
今回のsupercell3*3*3の計算がうまくいかなかった原因ですが、パラメータ設定の問題とメモリーの問題両方がありました。
まずパラメータ設定の問題として…
  & (natmmx=54, ncmpmx=1, msizmx=150, mxlmx=3, nk1x=40, nk3x=21,
& msex=35, ngmx=15, nrpmx=250, ngpmx=250, npmx=100, msr=400)
といったspec*中のパラメータmsizmxを過小に設定していたことがあります。bccのsupercell3*3*3の計算ですので、54個の原子が存在し、d波散乱まで考慮しているので、最低54*9=486に設定しなくてはならないと指摘されました。これは、マニュアルにも載っていることですし、私の完全なうっかりミスです。
次にメモリなどのハードに依存する問題ですが、これくらいの大きさの系になると、msex、nk1x、nk3xは減らしてよいとの指摘を受けました。msex=は用いるエネルギー積分の数らしいのですが、セルフフンシステントな計算だけならば
35ぐらいでもOKらしいです。ただ、最後にDOSを書きたいときにはこれを増やす必要があるとのことです。
(ちなみにこれは、dosを書く前の計算まではmsex=35で計算して、dosを出す段階になってmsex=200とするだけでいいのか? dosを最終的に出したいときは、最初のgo計算から計画的にmsexを高めに設定しておかなければならないのか、よくわかってなかったりするのですが。)なお、supercell3*3*3の計算ではmsex=35で、インプットファイルでk点を1に設定する(アウトプットファイルに表示されるnkは4になる)と、無事計算を行えました。k点はもう少し増やせるかもしれません。

なお、supercell4*4*4の計算ですが、それ用のspec*をコンパイルして得ようとすると以下のようなメッセージが出ました。
***ここから***
f77 -O -o source/spec4.o -c source/spec4.f
source/spec4.f:60: 変数 `_BLNK__' のサイズが大きすぎます
make: *** [source/spec4.o] エラー 1
***ここまで***
spec4.fを見る限りでは、60行目で宣言されている下記の配列の1次元あたりの長さ(つまり、例えば(2*mxlmx-1)**2*ngmx*nkmx*ndmxの大きさ)がコンパイラ(もしくはシステム?)の限界を超えているのが原因ではないか、と考えております。現在もコンパイルは成功しておりません。
***ここから***
complex*16 e(msex,2),tch((2*mxlmx-1)**2*ngmx*nkmx*ndmx)
***ここまで***
ちなみに計算環境は OS:RedHatLinux 8, Compiler:Intel Fortran Compiler 7です。

以上、失礼します。
井原隆文