ストレステンソルによる単位胞最適化時のエラー
Up to User's Forum (General)お世話になっております。
件名の通りなのですが、Phase/0_2020.01を利用しPAW = on、DFT-D3を利用してgraphite結晶のストレステンソルによる単位胞最適化を行おうとすると異常終了しました。PAWは他の系との比較のためONにしています。MPIありなしに関わらず同じエラーが出ます。またiFortとgfortranの2つの環境下で試しましたが同じところでエラーとなります。なおsample/unitcell_optimization/TiO2_with_correctionを試したところmpiの使用不使用に関わらず正常に実行できることを確認しています。
以下、エラーメッセージです。括弧内に添付した出力ファイル名を併記しています。
Intel Fortran + MKL環境下でのターミナル出力(添付output000_PAW_ifort)
forrtl: 致命的なエラー (67): 入力文で必要なデータが多すぎます。ユニット 321、ファイル /home/USERNAME/Documents/DFT-D3+PAW/./continue_bin_paw.data
Image PC Routine Line Source
phase 00000000055F413B Unknown Unknown Unknown
phase 000000000562344A Unknown Unknown Unknown
phase 000000000068C3B4 m_pseudopotential 15110 m_PseudoPotential.F90
phase 00000000009F4565 m_charge_density_ 8736 m_Charge_Density.F90
phase 0000000001543380 initial_electroni 604 Initial_Electronic_Structure.F90
phase 000000000144C2E4 MAIN__ 115 mdmain0.F90
phase 0000000000404C22 Unknown Unknown Unknown
libc-2.31.so 00007F68D01690B3 __libc_start_main Unknown Unknown
phase 0000000000404B2E Unknown Unknown Unknown
gfortran + BLIS/LAPACK環境下でのターミナル出力(添付output000_PAW_gfortran)
At line 15115 of file m_PseudoPotential.F90 (unit = 321, file = './continue_bin_paw.data')
Fortran runtime error: I/O past end of record on unformatted file
Error termination. Backtrace:
#0 0x7f977c276d3a
#1 0x7f977c277849
#2 0x7f977c27852f
#3 0x7f977c4bff79
#4 0x7f977c4bb20b
#5 0x5615dc3a1f3e
#6 0x5615dc5a23de
#7 0x5615dcaca6a3
#8 0x5615dca2b408
#9 0x5615dc2528ee
#10 0x7f977bf210b2
#11 0x5615dc25292d
#12 0xffffffffffffffff
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[59218,1],0]
Exit code: 2
--------------------------------------------------------------------------
また下記の通り条件を変えたところエラー発生状況が変わりました。
・PAW = offとし、USPPを使用。その他は全て同条件
→ifort環境下、MPI使用でstop at <wd_fermi_error2>が出て異常終了し、outputを見ると途中からNaNが大量に発生していました。またgfortran環境下でも同様に異常終了しました。一方これらはMPI不使用にしたところ正常実行できました。
お手数をおかけいたしますが、解決方法についてご教示いただけないでしょうか。入力ファイルの間違いなど初歩的なミスでしたらすみませんがご容赦ください。
原子の座標を以下の様に修正してお試しください。
atom_list{
coordinate_system = internal
atoms{
#tag element rx ry rz mobile
C 0.000000 0.000000 0.000000 on
C 0.000000 0.000000 0.500000 on
C 0.333333333 0.666666667 0.000000 on
C 0.666666667 0.333333333 0.500000 on
}
}
PHASE/0の対称性自動判別では閾値が厳しく設定されているので、
現在お使いの座標値では1/3や2/3とは認識されません。
上記の様に有効数字を増やすと、グラファイト本来の対称性があるものとみなされます。
異常終了してしまうのは、対称性が低い状態から計算開始して、
途中で(グラファイト本来の)対称性を回復している(対称性が高くなる)ためです。
お送りいただいた計算出力の範囲では原子位置は更新されていないので
途中で対称性が変わる原因は引き続き調べますが、
対称性が高い状態から計算を始めれば、正常に動作することが期待できます。
なお、hexagonalな場合は、lattice_systemをhexagonlに設定することをお勧めします。
tspace{
lattice_system = hexagonal
}