BEGIN_PROVIDER [ double precision, ci_overlap_psidet, (size_ci_overlap_psidet) ] implicit none BEGIN_DOC ! < Phi_0 | det(j) > ! ! Dimensions : det_num END_DOC integer :: i, j, k do k=1,det_num i = det_coef_matrix_rows(k) j = det_coef_matrix_columns(k) ci_overlap_psidet(k) = det_alpha_value(i)*det_beta_value (j)*psidet_inv enddo ci_overlap_psidet_min = min(ci_overlap_psidet_min,minval(ci_overlap_psidet)) ci_overlap_psidet_max = max(ci_overlap_psidet_max,maxval(ci_overlap_psidet)) SOFT_TOUCH ci_overlap_psidet_min ci_overlap_psidet_max END_PROVIDER BEGIN_PROVIDER [ double precision, ci_h_psidet, (size_ci_h_psidet) ] implicit none BEGIN_DOC ! < Phi_0 | det(j) > ! ! Dimensions : det_num END_DOC integer :: i, j, k, l double precision :: T, tmp do k=1,det_num i = det_coef_matrix_rows(k) j = det_coef_matrix_columns(k) T = 0.d0 do l=1,elec_alpha_num T += det_alpha_grad_lapl(4,l,i)*det_beta_value (j) enddo do l=elec_beta_num+1,elec_num T += det_beta_grad_lapl (4,l,j)*det_alpha_value(i) enddo ci_h_psidet(k) = -0.5d0*T + E_pot * det_alpha_value(i)*det_beta_value (j) ci_h_psidet(k) *= psidet_inv enddo ci_h_psidet_min = min(ci_h_psidet_min,minval(ci_h_psidet)) ci_h_psidet_max = max(ci_h_psidet_max,maxval(ci_h_psidet)) SOFT_TOUCH ci_h_psidet_min ci_h_psidet_max END_PROVIDER