diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index aa59f38..db8a9c6 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -5910,7 +5910,7 @@ IVDEP for (int l=1 ; l= nidx) break; - ce_mat[i] += v[l] * exp_mat[k]; + ce_mat[i] = ce_mat[i] + v[l] * exp_mat[k]; } } @@ -6730,7 +6730,7 @@ IVDEP #pragma omp simd #endif for (int j=0 ; j<8 ; ++j) { - ce_mat[i][j] += v[l] * exp_mat[k][j]; + ce_mat[i][j] = ce_mat[i][j] + v[l] * exp_mat[k][j]; } } } diff --git a/org/qmckl_jastrow_champ.org b/org/qmckl_jastrow_champ.org index ededef6..4f36b9f 100644 --- a/org/qmckl_jastrow_champ.org +++ b/org/qmckl_jastrow_champ.org @@ -1994,7 +1994,7 @@ qmckl_compute_jastrow_champ_asymp_jasb_hpc (const qmckl_context context, double x = kappa_inv; for (int k = 2; k <= bord_num; ++k) { x *= kappa_inv; - f += b_vector[k]*x; + f = f + b_vector[k]*x; } asymp_jasb[0] = spin_independent == 1 ? asym_one + f : 0.5 * asym_one + f; @@ -2491,7 +2491,7 @@ qmckl_compute_jastrow_champ_factor_ee_hpc (const qmckl_context context, for (int j = 0; j < elec_num; ++j ) { const double* xj = &(ee_distance_rescaled[j * elec_num + ishift]); for (int i = 0; i < j ; ++i) { - factor_ee[nw] += b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); + factor_ee[nw] = factor_ee[nw] + b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); } } @@ -2500,23 +2500,23 @@ qmckl_compute_jastrow_champ_factor_ee_hpc (const qmckl_context context, for (int j = 0; j < up_num; ++j ) { const double* xj = &(ee_distance_rescaled[j * elec_num + ishift]); for (int i = 0; i < j ; ++i) { - factor_ee[nw] += 0.5 * b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); + factor_ee[nw] = factor_ee[nw] + 0.5 * b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); } } for (int j = up_num ; j < elec_num; ++j ) { const double* xj = &(ee_distance_rescaled[j * elec_num + ishift]); for (int i = 0; i < up_num; ++i) { - factor_ee[nw] += b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); + factor_ee[nw] = factor_ee[nw] + b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); } for (int i = up_num ; i < j ; ++i) { - factor_ee[nw] += 0.5 * b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); + factor_ee[nw] = factor_ee[nw] + 0.5 * b_vector[0]*xj[i] / (1. + b_vector[1]*xj[i]); } } } - factor_ee[nw] -= fshift; + factor_ee[nw] = factor_ee[nw] - fshift; for (int j=0; j < elec_num; ++j ) { const double* xj = &(ee_distance_rescaled[j * elec_num + ishift]); @@ -2525,7 +2525,7 @@ qmckl_compute_jastrow_champ_factor_ee_hpc (const qmckl_context context, double xk = x; for (int k = 2; k <= bord_num; ++k) { xk *= x; - factor_ee[nw] += b_vector[k] * xk; + factor_ee[nw] = factor_ee[nw] + b_vector[k] * xk; } } @@ -2991,11 +2991,11 @@ qmckl_compute_jastrow_champ_factor_ee_gl_hpc(const qmckl_context context, f *= 0.5; } - factor_ee_gl_0[i] += f*dx[0]; - factor_ee_gl_1[i] += f*dx[1]; - factor_ee_gl_2[i] += f*dx[2]; - factor_ee_gl_3[i] += f*dx[3]; - factor_ee_gl_3[i] -= f*grad_c2*invdenom*2.0 * b_vector[1]; + factor_ee_gl_0[i] = factor_ee_gl_0[i] + f*dx[0]; + factor_ee_gl_1[i] = factor_ee_gl_1[i] + f*dx[1]; + factor_ee_gl_2[i] = factor_ee_gl_2[i] + f*dx[2]; + factor_ee_gl_3[i] = factor_ee_gl_3[i] + f*dx[3]; + factor_ee_gl_3[i] = factor_ee_gl_3[i] - f*grad_c2*invdenom*2.0 * b_vector[1]; double xk[bord_num+1]; // Nvidia C 23.1-0 compiler crashes here (skylake avx512) nvc nvfoftran --enable-hpc @@ -3007,11 +3007,11 @@ qmckl_compute_jastrow_champ_factor_ee_gl_hpc(const qmckl_context context, for (int k=2 ; k<= bord_num ; ++k) { const double f1 = b_vector[k] * kf[k] * xk[k-2]; const double f2 = f1*xk[1]; - factor_ee_gl_0[i] += f2*dx[0]; - factor_ee_gl_1[i] += f2*dx[1]; - factor_ee_gl_2[i] += f2*dx[2]; - factor_ee_gl_3[i] += f2*dx[3]; - factor_ee_gl_3[i] += f1*kf[k-1]*grad_c2; + factor_ee_gl_0[i] = factor_ee_gl_0[i] + f2*dx[0]; + factor_ee_gl_1[i] = factor_ee_gl_1[i] + f2*dx[1]; + factor_ee_gl_2[i] = factor_ee_gl_2[i] + f2*dx[2]; + factor_ee_gl_3[i] = factor_ee_gl_3[i] + f2*dx[3]; + factor_ee_gl_3[i] = factor_ee_gl_3[i] + f1*kf[k-1]*grad_c2; } } } @@ -4483,15 +4483,15 @@ qmckl_exit_code qmckl_compute_jastrow_champ_factor_en_hpc ( const double* en_distance_rescaled__ = &(en_distance_rescaled_[a*elec_num]); const double* a_vec = &(a_vector[(aord_num+1)*type_nucl_vector[a]]); - factor_en[nw] -= asymp_jasa[type_nucl_vector[a]]*de; + factor_en[nw] = factor_en[nw] - asymp_jasa[type_nucl_vector[a]]*de; for (int64_t i=0 ; iao_basis.ao_num ; ++k) { if ( ctx->ao_basis.ao_nucl[k] == inucl && ctx->ao_basis.ao_ang_mom[k] == 0) { const double ck = ctx->mo_basis.coefficient[k + i*ctx->ao_basis.ao_num]; - qmckl_ten3(mo_vgl_at_r_cusp_s,i,0,inucl) += ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,0,inucl); - qmckl_ten3(mo_vgl_at_r_cusp_s,i,1,inucl) += ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,3,inucl); - qmckl_ten3(mo_vgl_at_r_cusp_s,i,2,inucl) += ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,4,inucl); + qmckl_ten3(mo_vgl_at_r_cusp_s,i,0,inucl) = qmckl_ten3(mo_vgl_at_r_cusp_s,i,0,inucl) + ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,0,inucl); + qmckl_ten3(mo_vgl_at_r_cusp_s,i,1,inucl) = qmckl_ten3(mo_vgl_at_r_cusp_s,i,1,inucl) + ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,3,inucl); + qmckl_ten3(mo_vgl_at_r_cusp_s,i,2,inucl) = qmckl_ten3(mo_vgl_at_r_cusp_s,i,2,inucl) + ck * qmckl_ten3(ao_vgl_at_r_cusp_s,k,4,inucl); } } } @@ -1363,7 +1363,8 @@ qmckl_compute_mo_basis_mo_value_hpc_sp (const qmckl_context context, #pragma omp simd #endif for (int64_t i=0 ; i