1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-12-23 04:44:03 +01:00

Fixed bug in mo_coef dimensions.

This commit is contained in:
v1j4y 2021-10-01 00:23:07 +02:00
parent f557035e28
commit 4df8a5e066

View File

@ -469,7 +469,7 @@ integer function qmckl_compute_mo_basis_gaussian_vgl_f(context, &
integer :: info_qmckl_dgemm_Gy integer :: info_qmckl_dgemm_Gy
integer :: info_qmckl_dgemm_Gz integer :: info_qmckl_dgemm_Gz
integer :: info_qmckl_dgemm_lap integer :: info_qmckl_dgemm_lap
integer*8 :: M, N, K, LDA, LDB, LDC integer*8 :: M, N, K, LDA, LDB, LDC, i,j
integer*8 :: inucl, iprim, iwalk, ielec, ishell integer*8 :: inucl, iprim, iwalk, ielec, ishell
double precision :: x, y, z, two_a, ar2, r2, v, cutoff double precision :: x, y, z, two_a, ar2, r2, v, cutoff
@ -500,31 +500,31 @@ integer function qmckl_compute_mo_basis_gaussian_vgl_f(context, &
! Value ! Value
info_qmckl_dgemm_value = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & info_qmckl_dgemm_value = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, &
ao_vgl(:, ielec, iwalk, 1), LDA, & ao_vgl(:, ielec, iwalk, 1), LDA, &
coef_normalized(1:mo_num,1:ao_num),size(coef_normalized,1) * 1_8, & coef_normalized(1:ao_num,1:mo_num),size(coef_normalized,1) * 1_8, &
beta, & beta, &
mo_vgl(:,ielec,iwalk,1),LDC) mo_vgl(:,ielec,iwalk,1),LDC)
! Grad_x ! Grad_x
info_qmckl_dgemm_Gx = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & info_qmckl_dgemm_Gx = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, &
ao_vgl(:, ielec, iwalk, 2), LDA, & ao_vgl(:, ielec, iwalk, 2), LDA, &
coef_normalized(1:mo_num,1:ao_num),size(coef_normalized,1) * 1_8, & coef_normalized(1:ao_num,1:mo_num),size(coef_normalized,1) * 1_8, &
beta, & beta, &
mo_vgl(:,ielec,iwalk,2),LDC) mo_vgl(:,ielec,iwalk,2),LDC)
! Grad_y ! Grad_y
info_qmckl_dgemm_Gy = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & info_qmckl_dgemm_Gy = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, &
ao_vgl(:, ielec, iwalk, 3), LDA, & ao_vgl(:, ielec, iwalk, 3), LDA, &
coef_normalized(1:mo_num,1:ao_num),size(coef_normalized,1) * 1_8, & coef_normalized(1:ao_num,1:mo_num),size(coef_normalized,1) * 1_8, &
beta, & beta, &
mo_vgl(:,ielec,iwalk,3),LDC) mo_vgl(:,ielec,iwalk,3),LDC)
! Grad_z ! Grad_z
info_qmckl_dgemm_Gz = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & info_qmckl_dgemm_Gz = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, &
ao_vgl(:, ielec, iwalk, 4), LDA, & ao_vgl(:, ielec, iwalk, 4), LDA, &
coef_normalized(1:mo_num,1:ao_num),size(coef_normalized,1) * 1_8, & coef_normalized(1:ao_num,1:mo_num),size(coef_normalized,1) * 1_8, &
beta, & beta, &
mo_vgl(:,ielec,iwalk,4),LDC) mo_vgl(:,ielec,iwalk,4),LDC)
! Lapl_z ! Lapl_z
info_qmckl_dgemm_lap = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, & info_qmckl_dgemm_lap = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, &
ao_vgl(:, ielec, iwalk, 5), LDA, & ao_vgl(:, ielec, iwalk, 5), LDA, &
coef_normalized(1:mo_num,1:ao_num),size(coef_normalized,1) * 1_8, & coef_normalized(1:ao_num,1:mo_num),size(coef_normalized,1) * 1_8, &
beta, & beta, &
mo_vgl(:,ielec,iwalk,5),LDC) mo_vgl(:,ielec,iwalk,5),LDC)
end do end do
@ -783,7 +783,7 @@ double mo_vgl[5][walk_num][elec_num][chbrclf_mo_num];
rc = qmckl_get_mo_basis_vgl(context, &(mo_vgl[0][0][0][0])); rc = qmckl_get_mo_basis_vgl(context, &(mo_vgl[0][0][0][0]));
assert (rc == QMCKL_SUCCESS); assert (rc == QMCKL_SUCCESS);
// Overlap of MOs //// Overlap of MOs
//double ovl[mo_num][mo_num]; //double ovl[mo_num][mo_num];
//for (int i=0; i<mo_num; ++i) { //for (int i=0; i<mo_num; ++i) {
//for (int j=0; j<mo_num; ++j) { //for (int j=0; j<mo_num; ++j) {
@ -793,11 +793,13 @@ assert (rc == QMCKL_SUCCESS);
// //
//for (int iel=0;iel<elec_num;++iel){ //for (int iel=0;iel<elec_num;++iel){
//for (int i=0; i<mo_num; ++i) { //for (int i=0; i<mo_num; ++i) {
//for (int i=0; i<mo_num; ++i) { //for (int j=0; j<mo_num; ++j) {
// mo_coefficient[i][i] = 1.0; // ovl[i][j] += mo_vgl[0][0][iel][i] * mo_vgl[0][0][iel][j];
//} //}
//} //}
//} //}
//for (int i=0;i<mo_num-1;++i)
// printf("%d) %10.14f (%10.14f)\n",ovl[i][i], ovl[i][i+1]);
printf("\n"); printf("\n");