mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 03:23:29 +01:00
trying to do stuffs in multi state rdms
This commit is contained in:
parent
39da8cad5b
commit
7df2c2a20c
@ -27,7 +27,7 @@ subroutine routine
|
|||||||
do ii = 1, n_act_orb
|
do ii = 1, n_act_orb
|
||||||
i = list_act(ii)
|
i = list_act(ii)
|
||||||
integral = get_two_e_integral(i,j,k,l,mo_integrals_map)
|
integral = get_two_e_integral(i,j,k,l,mo_integrals_map)
|
||||||
accu(1) += act_two_rdm_spin_trace_mo(ii,jj,kk,ll) * integral
|
accu(1) += state_av_act_two_rdm_spin_trace_mo(ii,jj,kk,ll) * integral
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
! condition for alpha/beta spin
|
! condition for alpha/beta spin
|
||||||
ispin = 1
|
ispin = 1
|
||||||
all_states_act_two_rdm_alpha_alpha_mo = 0.D0
|
all_states_act_two_rdm_alpha_alpha_mo = 0.D0
|
||||||
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_alpha_alpha_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,state_weights,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_alpha_alpha_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
@ -31,7 +31,7 @@
|
|||||||
! condition for alpha/beta spin
|
! condition for alpha/beta spin
|
||||||
ispin = 2
|
ispin = 2
|
||||||
all_states_act_two_rdm_beta_beta_mo = 0.d0
|
all_states_act_two_rdm_beta_beta_mo = 0.d0
|
||||||
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_beta_beta_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,state_weights,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_beta_beta_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
@ -53,7 +53,7 @@
|
|||||||
ispin = 3
|
ispin = 3
|
||||||
print*,'ispin = ',ispin
|
print*,'ispin = ',ispin
|
||||||
all_states_act_two_rdm_alpha_beta_mo = 0.d0
|
all_states_act_two_rdm_alpha_beta_mo = 0.d0
|
||||||
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_alpha_beta_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,state_weights,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_alpha_beta_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
@ -77,7 +77,7 @@
|
|||||||
all_states_act_two_rdm_spin_trace_mo = 0.d0
|
all_states_act_two_rdm_spin_trace_mo = 0.d0
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_spin_trace_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,state_weights,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
call orb_range_all_states_two_rdm_openmp(all_states_act_two_rdm_spin_trace_mo,n_act_orb,n_act_orb,list_act,list_act_reverse,ispin,psi_coef,size(psi_coef,2),size(psi_coef,1))
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
! routine that update the DIAGONAL PART of the alpha/beta two body rdm in a specific range of orbitals
|
! routine that update the DIAGONAL PART of the alpha/beta two body rdm in a specific range of orbitals
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer, intent(in) :: dim1
|
integer, intent(in) :: dim1,N_st
|
||||||
double precision, intent(inout) :: big_array(dim1,dim1,dim1,dim1,N_st)
|
double precision, intent(inout) :: big_array(dim1,dim1,dim1,dim1,N_st)
|
||||||
integer(bit_kind), intent(in) :: det_1(N_int,2)
|
integer(bit_kind), intent(in) :: det_1(N_int,2)
|
||||||
integer(bit_kind), intent(in) :: orb_bitmask(N_int)
|
integer(bit_kind), intent(in) :: orb_bitmask(N_int)
|
||||||
@ -123,8 +123,8 @@
|
|||||||
i2 = occ(j,2)
|
i2 = occ(j,2)
|
||||||
h1 = list_orb_reverse(i1)
|
h1 = list_orb_reverse(i1)
|
||||||
h2 = list_orb_reverse(i2)
|
h2 = list_orb_reverse(i2)
|
||||||
big_array(h1,h2,h1,h2,istate) += 0.5d0 * (c_1 )
|
big_array(h1,h2,h1,h2,istate) += 0.5d0 * c_1(istate)
|
||||||
big_array(h2,h1,h2,h1,istate) += 0.5d0 * (c_1 )
|
big_array(h2,h1,h2,h1,istate) += 0.5d0 * c_1(istate)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
do i = 1, n_occ_ab(1)
|
do i = 1, n_occ_ab(1)
|
||||||
@ -334,6 +334,7 @@
|
|||||||
p1 = exc(1,2,2)
|
p1 = exc(1,2,2)
|
||||||
if(.not.is_integer_in_string(p1,orb_bitmask,N_int))return
|
if(.not.is_integer_in_string(p1,orb_bitmask,N_int))return
|
||||||
p1 = list_orb_reverse(p1)
|
p1 = list_orb_reverse(p1)
|
||||||
|
do istate = 1, N_st
|
||||||
do i = 1, n_occ_ab(1)
|
do i = 1, n_occ_ab(1)
|
||||||
h2 = occ(i,1)
|
h2 = occ(i,1)
|
||||||
if(.not.is_integer_in_string(h2,orb_bitmask,N_int))cycle
|
if(.not.is_integer_in_string(h2,orb_bitmask,N_int))cycle
|
||||||
@ -341,6 +342,7 @@
|
|||||||
big_array(h1,h2,p1,h2,istate) += 0.5d0 * c_1(istate) * phase
|
big_array(h1,h2,p1,h2,istate) += 0.5d0 * c_1(istate) * phase
|
||||||
big_array(h2,h1,h2,p1,istate) += 0.5d0 * c_1(istate) * phase
|
big_array(h2,h1,h2,p1,istate) += 0.5d0 * c_1(istate) * phase
|
||||||
enddo
|
enddo
|
||||||
|
enddo
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user