From b17779547722115707c324f5a1dab76199a660f1 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 24 Dec 2020 00:25:57 +0100 Subject: [PATCH] MPN OK --- devel/mpn/energies.irp.f | 2 +- devel/mpn/mpn.irp.f | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/devel/mpn/energies.irp.f b/devel/mpn/energies.irp.f index d08a9ac..c3a1448 100644 --- a/devel/mpn/energies.irp.f +++ b/devel/mpn/energies.irp.f @@ -8,7 +8,7 @@ BEGIN_PROVIDER [ double precision, energy_det_i, (N_det) ] do k=1,N_det call bitstring_to_list(psi_det(1,1,k), list, n, N_int) - energy_det_i(k) = nuclear_repulsion + energy_det_i(k) = 0.d0 do i=1,n energy_det_i(k) += fock_matrix_diag_mo(list(i)) enddo diff --git a/devel/mpn/mpn.irp.f b/devel/mpn/mpn.irp.f index 193fdae..a351660 100644 --- a/devel/mpn/mpn.irp.f +++ b/devel/mpn/mpn.irp.f @@ -13,20 +13,22 @@ program mpn call generate_fci_space allocate(c_pert(N_det,0:mp_order)) allocate(s2(N_det)) - allocate(e_pert(mp_order+1)) - e_pert = 0.d0 + allocate(e_pert(0:mp_order)) + e_pert(0) = energy_det_i(1) c_pert(:,:) = 0.d0 c_pert(1,0) = 1.d0 - e_pert(1) = nuclear_repulsion + e_pert(1) = hf_energy - e_pert(0) - nuclear_repulsion do k=1,mp_order ! H_ij C^(k-1) call h_s2_u_0_nstates_zmq(c_pert(1,k),s2,c_pert(1,k-1),1,N_det) - e_pert(k) += c_pert(1,k) - print *, k, e_pert(k), sum(e_pert) + if (k>1) then + e_pert(k) += c_pert(1,k) + endif + print *, k, e_pert(k), sum(e_pert) + nuclear_repulsion - c_pert(1,k) = 0.d0 c_pert(:,k) = -c_pert(:,k) + c_pert(1,k) = 0.d0 do l=1,k do i=2,N_det c_pert(i,k) = c_pert(i,k) + e_pert(l) * c_pert(i,k-l)