From 6652da23f57dbb84f490913346ad31c13e628f68 Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Sun, 8 Nov 2020 18:26:54 +0100 Subject: [PATCH] removed symmetry bug in a-b-2-RDM : warning it has no impacts on any quantity as long as all the elements of the two-rdm were used --- src/two_rdm_routines/update_rdm.irp.f | 20 +++++++++++++++++-- .../update_state_av_rdm.irp.f | 16 +++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/two_rdm_routines/update_rdm.irp.f b/src/two_rdm_routines/update_rdm.irp.f index 4d74280e..662b3ee9 100644 --- a/src/two_rdm_routines/update_rdm.irp.f +++ b/src/two_rdm_routines/update_rdm.irp.f @@ -356,12 +356,20 @@ h2 = list_orb_reverse(h2) nkeys += 1 do istate = 1, N_st - values(istate,nkeys) = c_1(istate) * phase + values(istate,nkeys) = 0.5d0 * c_1(istate) * phase enddo keys(1,nkeys) = h1 keys(2,nkeys) = h2 keys(3,nkeys) = p1 keys(4,nkeys) = h2 + nkeys += 1 + do istate = 1, N_st + values(istate,nkeys) = 0.5d0 * c_1(istate) * phase + enddo + keys(1,nkeys) = h2 + keys(2,nkeys) = h1 + keys(3,nkeys) = h2 + keys(4,nkeys) = p1 enddo else ! Mono beta @@ -377,12 +385,20 @@ h2 = list_orb_reverse(h2) nkeys += 1 do istate = 1, N_st - values(istate,nkeys) = c_1(istate) * phase + values(istate,nkeys) = 0.5d0 * c_1(istate) * phase enddo keys(1,nkeys) = h1 keys(2,nkeys) = h2 keys(3,nkeys) = p1 keys(4,nkeys) = h2 + nkeys += 1 + do istate = 1, N_st + values(istate,nkeys) = 0.5d0 * c_1(istate) * phase + enddo + keys(1,nkeys) = h2 + keys(2,nkeys) = h1 + keys(3,nkeys) = h2 + keys(4,nkeys) = p1 enddo endif else if(spin_trace)then diff --git a/src/two_rdm_routines/update_state_av_rdm.irp.f b/src/two_rdm_routines/update_state_av_rdm.irp.f index 35024331..bf7b6148 100644 --- a/src/two_rdm_routines/update_state_av_rdm.irp.f +++ b/src/two_rdm_routines/update_state_av_rdm.irp.f @@ -327,11 +327,17 @@ if(.not.is_integer_in_string(h2,orb_bitmask,N_int))cycle h2 = list_orb_reverse(h2) nkeys += 1 - values(nkeys) = c_1 * phase + values(nkeys) = 0.5d0 * c_1 * phase keys(1,nkeys) = h1 keys(2,nkeys) = h2 keys(3,nkeys) = p1 keys(4,nkeys) = h2 + nkeys += 1 + values(nkeys) = 0.5d0 * c_1 * phase + keys(1,nkeys) = h2 + keys(2,nkeys) = h1 + keys(3,nkeys) = h2 + keys(4,nkeys) = p1 enddo else ! Mono beta @@ -346,11 +352,17 @@ if(.not.is_integer_in_string(h2,orb_bitmask,N_int))cycle h2 = list_orb_reverse(h2) nkeys += 1 - values(nkeys) = c_1 * phase + values(nkeys) = 0.5d0 * c_1 * phase keys(1,nkeys) = h1 keys(2,nkeys) = h2 keys(3,nkeys) = p1 keys(4,nkeys) = h2 + nkeys += 1 + values(nkeys) = 0.5d0 * c_1 * phase + keys(1,nkeys) = h2 + keys(2,nkeys) = h1 + keys(3,nkeys) = h2 + keys(4,nkeys) = p1 enddo endif else if(spin_trace)then