9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 03:23:29 +01:00

Open-Shell CSF: Fix bug in convertCSFtoDetBasis.

This commit is contained in:
v1j4y 2022-06-06 15:23:25 +02:00
parent 9b8ee6dd2d
commit e06ab2fd05

View File

@ -334,10 +334,21 @@ void convertCSFtoDetBasis(int64_t Isomo, int MS, int rowsmax, int colsmax, doubl
Get Overlap Get Overlap
************************************/ ************************************/
// Fill matrix // Fill matrix
int rowsbftodetI, colsbftodetI;
/***********************************
Get BFtoDeterminant Matrix
************************************/
printf("In convertcsftodet\n");
convertBFtoDetBasis(Isomo, MS, &bftodetmatrixI, &rowsbftodetI, &colsbftodetI);
int rowsI = 0; int rowsI = 0;
int colsI = 0; int colsI = 0;
getOverlapMatrix(Isomo, MS, &overlapMatrixI, &rowsI, &colsI, &NSOMO); //getOverlapMatrix(Isomo, MS, &overlapMatrixI, &rowsI, &colsI, &NSOMO);
getOverlapMatrix_withDet(bftodetmatrixI, rowsbftodetI, colsbftodetI, Isomo, MS, &overlapMatrixI, &rowsI, &colsI, &NSOMO);
/*********************************** /***********************************
@ -348,14 +359,6 @@ void convertCSFtoDetBasis(int64_t Isomo, int MS, int rowsmax, int colsmax, doubl
gramSchmidt(overlapMatrixI, rowsI, colsI, orthoMatrixI); gramSchmidt(overlapMatrixI, rowsI, colsI, orthoMatrixI);
/***********************************
Get BFtoDeterminant Matrix
************************************/
int rowsbftodetI, colsbftodetI;
convertBFtoDetBasis(Isomo, MS, &bftodetmatrixI, &rowsbftodetI, &colsbftodetI);
/*********************************** /***********************************
Get Final CSF to Det Matrix Get Final CSF to Det Matrix
************************************/ ************************************/
@ -1305,7 +1308,7 @@ void getbftodetfunction(Tree *dettree, int NSOMO, int MS, int *BF1, double *rowv
donepq[i] = 0.0; donepq[i] = 0.0;
for(int i=0;i<npairs;++i){ for(int i=0;i<npairs;++i){
for(int j=0;j<NSOMO;++j) for(int j=0;j<NSOMO;++j)
detslist[i*npairs + j]=0; detslist[i*NSOMO + j]=0;
} }
for(int i = 0; i < NSOMO; i++){ for(int i = 0; i < NSOMO; i++){
@ -1337,8 +1340,11 @@ void getbftodetfunction(Tree *dettree, int NSOMO, int MS, int *BF1, double *rowv
for(int i = 0; i < npairs; i++){ for(int i = 0; i < npairs; i++){
for(int j = 0; j < NSOMO; j++) { for(int j = 0; j < NSOMO; j++) {
inpdet[j] = detslist[i*NSOMO + j]; inpdet[j] = detslist[i*NSOMO + j];
printf(" %d ",inpdet[j]);
} }
printf("\n");
findAddofDetDriver(dettree, NSOMO, inpdet, &addr); findAddofDetDriver(dettree, NSOMO, inpdet, &addr);
printf("(%d) - addr = %d\n",i,addr);
// Calculate the phase for cfg to QP2 conversion // Calculate the phase for cfg to QP2 conversion
//get_phase_cfg_to_qp_inpList(inpdet, NSOMO, &phase_cfg_to_qp); //get_phase_cfg_to_qp_inpList(inpdet, NSOMO, &phase_cfg_to_qp);
//rowvec[addr] = 1.0 * phaselist[i]*phase_cfg_to_qp/sqrt(fac); //rowvec[addr] = 1.0 * phaselist[i]*phase_cfg_to_qp/sqrt(fac);