- Timestamp:
- Apr 21, 2008, 2:19:25 PM (17 years ago)
- Children:
- 4bb8930
- Parents:
- 7853f74
- git-author:
- Frederik Heber <heber@…> (04/18/08 15:34:02)
- git-committer:
- Frederik Heber <heber@…> (04/21/08 14:19:25)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pcp/src/grad.c
r7853f74 rb76b97 189 189 SpeedMeasure(P, LocTime, StartTimeDo); 190 190 // back-transform HGDensity 191 //if (isnan(HGC[0].re)) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): HGC[%i]_%i.re = NaN!\n", 0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); } 191 192 fft_3d_complex_to_real(plan, Lev0->LevelNo, FFTNF1, HGC, work); 192 193 // evaluate exchange potential with this density, add up onto HGCR 193 //if (isnan(HGCR[0])) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): HGcR[ %i]_%i = NaN!\n", 0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); }194 //if (isnan(HGCR[0])) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): HGcR[:%i:]_%i = NaN!\n", 0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); } 194 195 CalculateXCPotentialNoRT(P, HGCR); // add V^{xc} or \epsilon^{xc} upon V^H + V^{ps} 195 196 for (nx=0;nx<Nx;nx++) … … 199 200 iS = nz+Nz*(ny+Ny*nx); 200 201 HGcR[iS] = HGCR[i0]*PsiCR[i0]; /* Matrix Vector Mult */ 201 //if (isnan(HGCR[i0])) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): HGcR[%i]_%i = NaN!\n", i0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); } 202 //if (isnan(PsiCR[i0])) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): PsiCR[%i]_%i = NaN!\n", i0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); } 203 //if (isnan(HGCR[i0])) { fprintf(stderr,"WARNGING: CalculateGradientNoRT(): HGCR[%i]_%i = NaN!\n", i0, R->ActualLocalPsiNo); Error(SomeError, "NaN-Fehler!"); } 202 204 } 203 205 fft_3d_real_to_complex(plan, LevS->LevelNo, FFTNF1, HGcRC, work); … … 467 469 if (P->Lat.Psi.GlobalNo[PsiMaxAdd] != 0) { 468 470 Lat->Energy[UnOccupied].bandgap = gsl_vector_get(eval, Psi->NoOfPsis) - gsl_vector_get(eval, Psi->NoOfPsis-1); 471 //Lat->Energy[UnOccupied].homolumo = gsl_vector_get(eval, Psi->NoOfPsis/2 + 1) - gsl_vector_get(eval, (Psi->NoOfPsis-1)/2); 469 472 if (P->Call.out[NormalOut]) 470 473 fprintf(stderr,"(%i) Band gap: \\epsilon_{%d+%d}(%d+1) - \\epsilon_{%d+%d}(%d) = %lg Ht\n", P->Par.me, NoPsis,P->Lat.Psi.GlobalNo[PsiMaxAdd],NoPsis, NoPsis, P->Lat.Psi.GlobalNo[PsiMaxAdd], NoPsis, Lat->Energy[UnOccupied].bandgap); 474 //fprintf(stderr,"(%i) HOMO-LUMO gap (HOMO is: %i, LUMO is %i): %lg Ht\n", P->Par.me, Psi->NoOfPsis/2 + 1, (Psi->NoOfPsis-1)/2, Lat->Energy[UnOccupied].homolumo); 471 475 } 472 476 // now, calculate \int v_xc (r) n(r) d^3r … … 1044 1048 const int ConDirStep = R->PsiStep; 1045 1049 if (((!R->ScanPotential) || (R->ScanPotential < R->ScanAtStep)) && (Lat->Psi.LocalPsiStatus[R->ActualLocalPsiNo].DoBrent != 1)) { // only evaluate CG once 1050 //if (isnan(P->Grad.GradientArray[ActualGradient][0].re)) { fprintf(stderr,"(%i) WARNING in CalculateNewWave(): ActualGradient_%i[%i] = NaN!\n", P->Par.me, i, 0); Error(SomeError, "NaN-Fehler!"); } 1046 1051 //fprintf(stderr,"(%i) Evaluating ConDirGradient from SD direction...\n", P->Par.me); 1047 1052 CalculateCGGradient(P, LevS->LPsi->LocalPsi[i], … … 1049 1054 Lat->Psi.AddData[i].Lambda); 1050 1055 //fprintf(stderr,"CalculateCGGradient: %lg\n", GradSP(P, LevS, P->Grad.GradientArray[ActualGradient], P->Grad.GradientArray[ActualGradient])); 1051 //if (isnan(P->Grad.GradientArray[ActualGradient][0].re)) { fprintf(stderr,"(%i) WARNING in CalculateNewWave(): ActualGradient_%i[%i] = NaN!\n", P->Par.me, i, 0); Error(SomeError, "NaN-Fehler!"); }1052 1056 CalculatePreConGrad(P, P->Grad.GradientArray[ActualGradient], 1053 1057 P->Grad.GradientArray[PreConGradient], … … 1199 1203 } 1200 1204 } 1201 //fprintf(stderr, " %lg\n", alpha);1205 //fprintf(stderr, "(%i) alpha = %lg\n", P->Par.me, alpha); 1202 1206 if (alpha != 0.0) { 1203 1207 for (p=0; p< Psi->LocalNo; p++) { 1204 1208 Psi->LocalPsiStatus[p].PsiGramSchStatus = (Psi->LocalPsiStatus[p].PsiType == Occupied) ? (int)NotOrthogonal : (int)NotUsedToOrtho; 1205 //if (R->CurrentMin > UnOccupied) fprintf(stderr,"Setting L-Status of %i to %i\n",p, Psi->LocalPsiStatus[p].PsiGramSchStatus); 1209 //if (R->CurrentMin > UnOccupied) 1210 //fprintf(stderr,"(%i) Setting L-Status of %i to %i\n",P->Par.me,p, Psi->LocalPsiStatus[p].PsiGramSchStatus); 1206 1211 } 1207 1212 ResetNo=0; … … 1209 1214 for (p=ResetNo; p < ResetNo+Psi->AllLocalNo[i]-1; p++) { 1210 1215 Psi->AllPsiStatus[p].PsiGramSchStatus = (Psi->LocalPsiStatus[p].PsiType == Occupied) ? (int)NotOrthogonal : (int)NotUsedToOrtho; 1211 //if (R->CurrentMin > UnOccupied) fprintf(stderr,"Setting A-Status of %i to %i\n",p, Psi->AllPsiStatus[p].PsiGramSchStatus); 1216 //if (R->CurrentMin > UnOccupied) 1217 //fprintf(stderr,"(%i) Setting A-Status of %i to %i\n",P->Par.me,p, Psi->AllPsiStatus[p].PsiGramSchStatus); 1212 1218 } 1213 1219 ResetNo += Psi->AllLocalNo[i]; … … 1217 1223 } 1218 1224 SpeedMeasure(P, InitGramSchTime, StartTimeDo); 1219 //fprintf(stderr," UpdateWaveAfterIonMove: ResetGramSch() for %i orbital\n",p);1225 //fprintf(stderr,"(%i) UpdateWaveAfterIonMove: ResetGramSch() for %i orbitals\n",P->Par.me, p); 1220 1226 GramSch(P, LevS, Psi, Orthonormalize); 1221 1227 SpeedMeasure(P, InitGramSchTime, StartTimeDo);
Note:
See TracChangeset
for help on using the changeset viewer.