mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-25 05:31:48 +02:00
updated default keywords in tc_keywords and ao_twoe_e_ints
This commit is contained in:
parent
22241d5b33
commit
a38bf00975
@ -16,7 +16,7 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
logical :: ok
|
logical :: ok
|
||||||
|
|
||||||
logical, allocatable :: lbanned(:,:)
|
logical, allocatable :: lbanned(:,:)
|
||||||
integer :: puti, putj, ma, mi, s1, s2, i, i1, i2, j
|
integer :: puti, putj, ma, mi, s1, s2, i, i1, i2, j, istate
|
||||||
integer :: hfix, pfix, h1, h2, p1, p2, ib, k, l, mm
|
integer :: hfix, pfix, h1, h2, p1, p2, ib, k, l, mm
|
||||||
|
|
||||||
integer, parameter :: turn2(2) = (/2,1/)
|
integer, parameter :: turn2(2) = (/2,1/)
|
||||||
@ -65,10 +65,12 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,p1)
|
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,p1)
|
||||||
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,p2)
|
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,p2)
|
||||||
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,p1)
|
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,p1)
|
||||||
|
do istate = 1,N_states
|
||||||
|
tmp_rowij(istate,mm) = 0.d0
|
||||||
|
tmp_rowji(istate,mm) = 0.d0
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
!! <alpha|H|psi>
|
!! <alpha|H|psi>
|
||||||
tmp_rowij = 0.d0
|
|
||||||
tmp_rowji = 0.d0
|
|
||||||
do putj=1, hfix-1
|
do putj=1, hfix-1
|
||||||
if(lbanned(putj, ma)) cycle
|
if(lbanned(putj, ma)) cycle
|
||||||
if(banned(putj, puti,bant)) cycle
|
if(banned(putj, puti,bant)) cycle
|
||||||
@ -119,13 +121,15 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
|
|
||||||
!MOVE MI
|
!MOVE MI
|
||||||
pfix = p(1,mi)
|
pfix = p(1,mi)
|
||||||
tmp_rowij = 0.d0
|
|
||||||
tmp_rowij2 = 0.d0
|
|
||||||
tmp_rowji = 0.d0
|
|
||||||
tmp_rowji2 = 0.d0
|
|
||||||
! call get_mo_two_e_integrals_complex(hfix,pfix,p1,mo_num,hij_cache(1,1),mo_integrals_map,mo_integrals_map_2)
|
! call get_mo_two_e_integrals_complex(hfix,pfix,p1,mo_num,hij_cache(1,1),mo_integrals_map,mo_integrals_map_2)
|
||||||
! call get_mo_two_e_integrals_complex(hfix,pfix,p2,mo_num,hij_cache(1,2),mo_integrals_map,mo_integrals_map_2)
|
! call get_mo_two_e_integrals_complex(hfix,pfix,p2,mo_num,hij_cache(1,2),mo_integrals_map,mo_integrals_map_2)
|
||||||
do mm = 1, mo_num
|
do mm = 1, mo_num
|
||||||
|
do istate = 1,N_states
|
||||||
|
tmp_rowij(istate,mm) = 0.d0
|
||||||
|
tmp_rowij2(istate,mm) = 0.d0
|
||||||
|
tmp_rowji(istate,mm) = 0.d0
|
||||||
|
tmp_rowji2(istate,mm) = 0.d0
|
||||||
|
enddo
|
||||||
hij_cache(mm,1) = mo_bi_ortho_tc_two_e(mm,hfix,pfix,p1)
|
hij_cache(mm,1) = mo_bi_ortho_tc_two_e(mm,hfix,pfix,p1)
|
||||||
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,pfix,p2)
|
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,pfix,p2)
|
||||||
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,pfix,p1)
|
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,pfix,p1)
|
||||||
@ -200,10 +204,12 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,p1)
|
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,p1)
|
||||||
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,p2)
|
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,p2)
|
||||||
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,p1)
|
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,p1)
|
||||||
|
do istate = 1, N_states
|
||||||
|
tmp_rowij(istate,mm) = 0.d0
|
||||||
|
tmp_rowji(istate,mm) = 0.d0
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
!! <alpha|H|psi>
|
!! <alpha|H|psi>
|
||||||
tmp_rowij = 0.d0
|
|
||||||
tmp_rowji = 0.d0
|
|
||||||
do putj=1,hfix-1
|
do putj=1,hfix-1
|
||||||
if(banned(putj,puti,1)) cycle
|
if(banned(putj,puti,1)) cycle
|
||||||
if(lbanned(putj,ma)) cycle
|
if(lbanned(putj,ma)) cycle
|
||||||
@ -246,10 +252,6 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
pfix = p(1,mi)
|
pfix = p(1,mi)
|
||||||
p1 = p(1,ma)
|
p1 = p(1,ma)
|
||||||
p2 = p(2,ma)
|
p2 = p(2,ma)
|
||||||
tmp_rowij = 0.d0
|
|
||||||
tmp_rowij2 = 0.d0
|
|
||||||
tmp_rowji = 0.d0
|
|
||||||
tmp_rowji2 = 0.d0
|
|
||||||
! call get_mo_two_e_integrals_complex(hfix,p1,pfix,mo_num,hij_cache(1,1),mo_integrals_map,mo_integrals_map_2)
|
! call get_mo_two_e_integrals_complex(hfix,p1,pfix,mo_num,hij_cache(1,1),mo_integrals_map,mo_integrals_map_2)
|
||||||
! call get_mo_two_e_integrals_complex(hfix,p2,pfix,mo_num,hij_cache(1,2),mo_integrals_map,mo_integrals_map_2)
|
! call get_mo_two_e_integrals_complex(hfix,p2,pfix,mo_num,hij_cache(1,2),mo_integrals_map,mo_integrals_map_2)
|
||||||
do mm = 1, mo_num
|
do mm = 1, mo_num
|
||||||
@ -257,6 +259,12 @@ subroutine get_d1_transp(gen, phasemask, bannedOrb, banned, mat_l, mat_r, mask,
|
|||||||
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,pfix)
|
hij_cache(mm,2) = mo_bi_ortho_tc_two_e(mm,hfix,p2,pfix)
|
||||||
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,pfix)
|
hji_cache(mm,1) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p1,pfix)
|
||||||
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,pfix)
|
hji_cache(mm,2) = mo_bi_ortho_tc_two_e_transp(mm,hfix,p2,pfix)
|
||||||
|
do istate = 1,N_states
|
||||||
|
tmp_rowij (istate,mm) = 0.d0
|
||||||
|
tmp_rowij2(istate,mm) = 0.d0
|
||||||
|
tmp_rowji (istate,mm) = 0.d0
|
||||||
|
tmp_rowji2(istate,mm) = 0.d0
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
putj = p2
|
putj = p2
|
||||||
!! <alpha|H|psi>
|
!! <alpha|H|psi>
|
||||||
|
@ -65,6 +65,9 @@ subroutine tc_pt2
|
|||||||
call pt2_dealloc(pt2_data_err)
|
call pt2_dealloc(pt2_data_err)
|
||||||
call pt2_alloc(pt2_data, N_states)
|
call pt2_alloc(pt2_data, N_states)
|
||||||
call pt2_alloc(pt2_data_err, N_states)
|
call pt2_alloc(pt2_data_err, N_states)
|
||||||
|
if(transpose_two_e_int)then
|
||||||
|
provide mo_bi_ortho_tc_two_e_transp tc_2e_3idx_coulomb_integrals_transp
|
||||||
|
endif
|
||||||
call ZMQ_pt2(E_tc, pt2_data, pt2_data_err, relative_error,0) ! Stochastic PT2 and selection
|
call ZMQ_pt2(E_tc, pt2_data, pt2_data_err, relative_error,0) ! Stochastic PT2 and selection
|
||||||
call diagonalize_CI_tc_bi_ortho(ndet, E_tc,norm,pt2_data,print_pt2)
|
call diagonalize_CI_tc_bi_ortho(ndet, E_tc,norm,pt2_data,print_pt2)
|
||||||
call print_summary_tc(psi_energy_with_nucl_rep, pt2_data, pt2_data_err, N_det, N_configuration, N_states, psi_s2)
|
call print_summary_tc(psi_energy_with_nucl_rep, pt2_data, pt2_data_err, N_det, N_configuration, N_states, psi_s2)
|
||||||
|
@ -691,19 +691,19 @@ subroutine splash_pq(mask, sp, det, i_gen, N_sel, bannedOrb, banned, mat, intere
|
|||||||
if(transpose_two_e_int)then
|
if(transpose_two_e_int)then
|
||||||
call get_d2_new_transp(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d2_new_transp(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
else
|
else
|
||||||
call get_d2_new(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d2_new (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
endif
|
endif
|
||||||
elseif(nt == 3) then
|
elseif(nt == 3) then
|
||||||
if(transpose_two_e_int)then
|
if(transpose_two_e_int)then
|
||||||
call get_d1_transp(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d1_transp(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
else
|
else
|
||||||
call get_d1_new(det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d1_new (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if(transpose_two_e_int)then
|
if(transpose_two_e_int)then
|
||||||
call get_d0_transp (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d0_transp (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
else
|
else
|
||||||
call get_d0_new (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
call get_d0_new (det(1,1,i), phasemask, bannedOrb, banned, mat_l, mat_r, mask, h, p, sp, psi_selectors_coef_transp_tc(1, 1, interesting(i)))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
elseif(nt == 4) then
|
elseif(nt == 4) then
|
||||||
|
@ -89,7 +89,7 @@ subroutine run_stochastic_cipsi
|
|||||||
call pt2_alloc(pt2_data, N_states)
|
call pt2_alloc(pt2_data, N_states)
|
||||||
call pt2_alloc(pt2_data_err, N_states)
|
call pt2_alloc(pt2_data_err, N_states)
|
||||||
if(transpose_two_e_int)then
|
if(transpose_two_e_int)then
|
||||||
provide mo_bi_ortho_tc_two_e_transp
|
provide mo_bi_ortho_tc_two_e_transp tc_2e_3idx_coulomb_integrals_transp
|
||||||
endif
|
endif
|
||||||
call ZMQ_pt2(E_tc, pt2_data, pt2_data_err, relative_error,to_select) ! Stochastic PT2 and selection
|
call ZMQ_pt2(E_tc, pt2_data, pt2_data_err, relative_error,to_select) ! Stochastic PT2 and selection
|
||||||
! stop
|
! stop
|
||||||
|
@ -35,8 +35,8 @@ program tc_bi_ortho
|
|||||||
print*, ' nb of det = ', N_det
|
print*, ' nb of det = ', N_det
|
||||||
|
|
||||||
call routine_diag()
|
call routine_diag()
|
||||||
call write_tc_energy()
|
! call write_tc_energy()
|
||||||
call save_tc_bi_ortho_wavefunction()
|
! call save_tc_bi_ortho_wavefunction()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -76,28 +76,26 @@ subroutine routine_diag()
|
|||||||
PROVIDE noL_2e
|
PROVIDE noL_2e
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PROVIDE htilde_matrix_elmt_bi_ortho
|
|
||||||
return
|
|
||||||
|
|
||||||
if(N_states .eq. 1) then
|
if(N_states .eq. 1) then
|
||||||
|
|
||||||
print*,'eigval_right_tc_bi_orth = ',eigval_right_tc_bi_orth(1)
|
print*,'eigval_right_tc_bi_orth = ',eigval_right_tc_bi_orth(1)
|
||||||
print*,'e_tc_left_right = ',e_tc_left_right
|
! print*,'e_tc_left_right = ',e_tc_left_right
|
||||||
print*,'e_tilde_bi_orth_00 = ',e_tilde_bi_orth_00
|
! print*,'e_tilde_bi_orth_00 = ',e_tilde_bi_orth_00
|
||||||
print*,'e_pt2_tc_bi_orth = ',e_pt2_tc_bi_orth
|
! print*,'e_pt2_tc_bi_orth = ',e_pt2_tc_bi_orth
|
||||||
print*,'e_pt2_tc_bi_orth_single = ',e_pt2_tc_bi_orth_single
|
! print*,'e_pt2_tc_bi_orth_single = ',e_pt2_tc_bi_orth_single
|
||||||
print*,'e_pt2_tc_bi_orth_double = ',e_pt2_tc_bi_orth_double
|
! print*,'e_pt2_tc_bi_orth_double = ',e_pt2_tc_bi_orth_double
|
||||||
print*,'***'
|
! print*,'***'
|
||||||
print*,'e_corr_bi_orth = ',e_corr_bi_orth
|
! print*,'e_corr_bi_orth = ',e_corr_bi_orth
|
||||||
print*,'e_corr_bi_orth_proj = ',e_corr_bi_orth_proj
|
! print*,'e_corr_bi_orth_proj = ',e_corr_bi_orth_proj
|
||||||
print*,'e_corr_bi_orth_proj_abs = ',e_corr_bi_orth_proj_abs
|
! print*,'e_corr_bi_orth_proj_abs = ',e_corr_bi_orth_proj_abs
|
||||||
print*,'e_corr_single_bi_orth = ',e_corr_single_bi_orth
|
! print*,'e_corr_single_bi_orth = ',e_corr_single_bi_orth
|
||||||
print*,'e_corr_double_bi_orth = ',e_corr_double_bi_orth
|
! print*,'e_corr_double_bi_orth = ',e_corr_double_bi_orth
|
||||||
print*,'e_corr_single_bi_orth_abs = ',e_corr_single_bi_orth_abs
|
! print*,'e_corr_single_bi_orth_abs = ',e_corr_single_bi_orth_abs
|
||||||
print*,'e_corr_double_bi_orth_abs = ',e_corr_double_bi_orth_abs
|
! print*,'e_corr_double_bi_orth_abs = ',e_corr_double_bi_orth_abs
|
||||||
print*,'Left/right eigenvectors'
|
print*,'Left/right eigenvectors'
|
||||||
do i = 1,N_det
|
do i = 1,N_det
|
||||||
write(*,'(I5,X,(100(F12.7,X)))')i,leigvec_tc_bi_orth(i,1),reigvec_tc_bi_orth(i,1),leigvec_tc_bi_orth(i,1)*reigvec_tc_bi_orth(i,1)
|
write(*,'(I6,X,(100(F12.7,X)))')i,leigvec_tc_bi_orth(i,1),reigvec_tc_bi_orth(i,1),leigvec_tc_bi_orth(i,1)*reigvec_tc_bi_orth(i,1)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -14,7 +14,7 @@ default: False
|
|||||||
type: logical
|
type: logical
|
||||||
doc: If |true|, three-body terms are included
|
doc: If |true|, three-body terms are included
|
||||||
interface: ezfio,provider,ocaml
|
interface: ezfio,provider,ocaml
|
||||||
default: True
|
default: False
|
||||||
|
|
||||||
[three_e_3_idx_term]
|
[three_e_3_idx_term]
|
||||||
type: logical
|
type: logical
|
||||||
@ -50,7 +50,7 @@ default: False
|
|||||||
type: logical
|
type: logical
|
||||||
doc: If |true|, standard normal-ordering for L (to be used with three_body_h_tc |false|)
|
doc: If |true|, standard normal-ordering for L (to be used with three_body_h_tc |false|)
|
||||||
interface: ezfio,provider,ocaml
|
interface: ezfio,provider,ocaml
|
||||||
default: False
|
default: True
|
||||||
|
|
||||||
[core_tc_op]
|
[core_tc_op]
|
||||||
type: logical
|
type: logical
|
||||||
|
@ -25,16 +25,16 @@ default: 1.e-12
|
|||||||
|
|
||||||
[do_direct_integrals]
|
[do_direct_integrals]
|
||||||
type: logical
|
type: logical
|
||||||
doc: Compute integrals on the fly (very slow, only for debugging)
|
doc: Compute integrals on the fly (Useful only for Cholesky decomposition)
|
||||||
interface: ezfio,provider,ocaml
|
interface: ezfio,provider,ocaml
|
||||||
default: False
|
default: True
|
||||||
ezfio_name: direct
|
ezfio_name: direct
|
||||||
|
|
||||||
[do_ao_cholesky]
|
[do_ao_cholesky]
|
||||||
type: logical
|
type: logical
|
||||||
doc: Perform Cholesky decomposition of AO integrals
|
doc: Perform Cholesky decomposition of AO integrals
|
||||||
interface: ezfio,provider,ocaml
|
interface: ezfio,provider,ocaml
|
||||||
default: False
|
default: True
|
||||||
|
|
||||||
[io_ao_two_e_integrals_erf]
|
[io_ao_two_e_integrals_erf]
|
||||||
type: Disk_access
|
type: Disk_access
|
||||||
|
Loading…
Reference in New Issue
Block a user