continue: Error when single atom system, scf.EigenvalueSolver is Band ( No.1 ) |
- Date: 2012/01/21 04:15
- Name: A. M. Ito <ito.atsushi@nifs.ac.jp>
- I think the course of this error is function "Eigen_HH" in the file gEigenBand_lapack.ch. In this function, the some variables become infinity value or gnanh, for example gp[i1].rh. Because, when gs2 == 0.0h, then gu1.r == 0.0h. Here, from the code for line 124 to 155, if (i == n -1) then gs2 == 0.0h because the loop for lines 142 to 145 is skipped. Therefore, in this case, p[i1].r and so on become infinity every time.
Here, see another function "Eigen_HH" in the file gEigen_lapack.ch. In this function, the gifh sentence in line 458 is as follows: if (ABSTOL<fabs(s2)){ By this sentence, if gs2 == 0.0h then calculation of gp[i1].rh is skipped. That is, this infinity problem does not happen when scf.EigenvalueSolver is Cluster. On the other hand, "Eigen_HH" in the file gEigenBand_lapack.ch. The corresponding gifh sentence is written in line 156 as follows: if ( ABSTOL<fabs(s2) || i==(n-1) ){ From this line, only when (i==n-1), the problem by gs2==0.0h is not skipped. This gifh sencense is correct?
As a test, when the gifh sentence of line 156 in file gEigenBand_lapack.ch is changed to if ( ABSTOL<fabs(s2) ){ then total energy does not become infinity, and become correct value, even if Atoms.UnitVectors are larger than cutoff length of PAO file and scf.EigenvalueSolver is Band.
Sticky point is, if some variavles in the function "Eigen_HH" becomes so large value (infinity), but if it is not gnanh, convergent total energy is returned. But, the calculation under the input parameter of gSi Si7.0-s2p2d1 Si_PBE11h returns gnanh as total energy.
Please check this point. I hope the problem is solved. Thank you very much for reading. Best regards,
Atsushi M. Ito (NIFS)
|
|