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 BEGIN_PROVIDER [ double precision, ci_overlap_matrix, (size_ci_overlap_matrix) ] implicit none BEGIN_DOC ! < det(i) | det(j) > ! < det(i) | det(j) > ! ! Dimensions : det_num END_DOC integer :: i, j, k, l, m, n double precision :: f do k=1,det_num i = det_coef_matrix_rows(k) j = det_coef_matrix_columns(k) f = det_alpha_value(i)*det_beta_value (j)*psidet_inv*psidet_inv do l=1,det_num m = det_coef_matrix_rows(l) n = det_coef_matrix_columns(l) ci_overlap_matrix(l) = det_alpha_value(m)*det_beta_value(n) * f enddo enddo ci_overlap_matrix_min = min(ci_overlap_matrix_min,minval(ci_overlap_matrix)) ci_overlap_matrix_max = max(ci_overlap_matrix_max,maxval(ci_overlap_matrix)) SOFT_TOUCH ci_overlap_matrix_min ci_overlap_matrix_max END_PROVIDER