Changeset f5586e for pcp/src/wannier.c
- Timestamp:
- Apr 22, 2008, 8:43:24 AM (17 years ago)
- Children:
- 90c027
- Parents:
- cc46b0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified pcp/src/wannier.c ¶
rcc46b0 rf5586e 1059 1059 // calculate Wannier Centre 1060 1060 for (j=0;j<NDIM;j++) { 1061 WannierCentre[i][j] = Lat->RealBasisQ[j]/(2*PI) * GSL_IMAG( gsl_complex_log( gsl_complex_rect(gsl_matrix_get(A[j*2],i,i),gsl_matrix_get(A[j*2+1],i,i))));1061 WannierCentre[i][j] = sqrt(Lat->RealBasisSQ[j])/(2*PI) * GSL_IMAG( gsl_complex_log( gsl_complex_rect(gsl_matrix_get(A[j*2],i,i),gsl_matrix_get(A[j*2+1],i,i)))); 1062 1062 if (WannierCentre[i][j] < 0) // change wrap around of above operator to smooth 0...Lat->RealBasisSQ 1063 WannierCentre[i][j] = Lat->RealBasisQ[j]+ WannierCentre[i][j];1063 WannierCentre[i][j] = sqrt(Lat->RealBasisSQ[j]) + WannierCentre[i][j]; 1064 1064 } 1065 1065 … … 1093 1093 for (i=0; i < Num; i++) { // go through all occupied wave functions 1094 1094 for (j=0;j<NDIM;j++) 1095 WannierCentre[i][j] = Lat->RealBasisQ[j]/2.;1095 WannierCentre[i][j] = sqrt(Lat->RealBasisSQ[j])/2.; 1096 1096 } 1097 1097 break; … … 1100 1100 for (i=0;i < Num; i++) { // go through all wave functions 1101 1101 for (j=0;j<NDIM;j++) { 1102 tmp = WannierCentre[i][j]/ Lat->RealBasisQ[j]*(double)N[j];1102 tmp = WannierCentre[i][j]/sqrt(Lat->RealBasisSQ[j])*(double)N[j]; 1103 1103 //fprintf(stderr,"(%i) N[%i]: %i\t tmp %e\t floor %e\t ceil %e\n",P->Par.me, j, N[j], tmp, floor(tmp), ceil(tmp)); 1104 1104 if (fabs((double)floor(tmp) - tmp) < fabs((double)ceil(tmp) - tmp)) 1105 WannierCentre[i][j] = (double)floor(tmp)/(double)N[j]* Lat->RealBasisQ[j];1105 WannierCentre[i][j] = (double)floor(tmp)/(double)N[j]*sqrt(Lat->RealBasisSQ[j]); 1106 1106 else 1107 WannierCentre[i][j] = (double)ceil(tmp)/(double)N[j]* Lat->RealBasisQ[j];1107 WannierCentre[i][j] = (double)ceil(tmp)/(double)N[j]*sqrt(Lat->RealBasisSQ[j]); 1108 1108 } 1109 1109 }
Note:
See TracChangeset
for help on using the changeset viewer.