10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-06-28 16:12:40 +02:00

Doublet also works. Running tests.

This commit is contained in:
v1j4y 2022-09-15 19:18:13 +02:00
parent 4583fa80b0
commit 409aa82373
3 changed files with 26 additions and 6 deletions

View File

@ -761,7 +761,10 @@ end subroutine get_phase_qp_to_cfg
! 4. DOMO -> SOMO
!print *,"Doing DOMO -> SOMO"
!AIJpqContainer(NSOMOMin,4,1,1,1,1) = 1.0d0
AIJpqContainer(1,1,1:2,1:2,4,NSOMOMin) = 1.0d0
AIJpqContainer(1,1,1,1,4,NSOMOMin) = 1.0d0
AIJpqContainer(1,1,2,2,4,NSOMOMin) = 1.0d0
AIJpqContainer(1,1,2,1,4,NSOMOMin) =-1.0d0
AIJpqContainer(1,1,1,2,4,NSOMOMin) =-1.0d0
do i = NSOMOMin+2, NSOMOMax, 2
Isomo = ISHFT(1_8,i)-1
do j = i,i, 2
@ -779,6 +782,10 @@ end subroutine get_phase_qp_to_cfg
Jsomo = ISHFT(1_8,j)-1
endif
!print *,"k,l=",k,l
!call debug_spindet(Jsomo,1)
!call debug_spindet(Isomo,1)
!AIJpqContainer(i,4,k,l,:,:) = 0.0d0
AIJpqContainer(:,:,k,l,4,i) = 0.0d0
call getApqIJMatrixDims(Isomo, &

View File

@ -324,7 +324,8 @@ subroutine davidson_diag_cfg_hjj(dets_in,u_in,H_jj,energies,dim_in,sze,sze_csf,N
tmpU(kk,ii) = U_csf(ii,shift+kk)
enddo
enddo
!tmpU(1,1)=1.0d0
!tmpU =0.0d0
!tmpU(1,2)=1.0d0
double precision :: irp_rdtsc
double precision :: ticks_0, ticks_1
integer*8 :: irp_imax
@ -333,7 +334,13 @@ subroutine davidson_diag_cfg_hjj(dets_in,u_in,H_jj,energies,dim_in,sze,sze_csf,N
call calculate_sigma_vector_cfg_nst_naive_store(tmpW,tmpU,N_st_diag,sze_csf,1,sze_csf,0,1)
!ticks_1 = irp_rdtsc()
!print *,' ----Cycles:',(ticks_1-ticks_0)/dble(irp_imax)," ----"
!print *,' tmpW(1,1)=',tmpW(1,1)
!print *,' tmpW(1,2)=',tmpW(1,2)
!do ii=1,sze
! if (dabs(tmpW(1,ii)) > 1e-18) then
! print *,tmpW(1,ii)
! print *,ii,"somo=",psi_configuration(1,1,ii)," domo=",psi_configuration(1,2,ii)
! endif
!end do
!stop
do kk=1,N_st_diag
do ii=1,sze_csf

View File

@ -149,7 +149,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
character*(16384) :: write_buffer
double precision :: to_print(3,N_st)
double precision :: cpu, wall
integer :: shift, shift2, itermax, istate
integer :: shift, shift2, itermax, istate, ii
double precision :: r1, r2, alpha
logical :: state_ok(N_st_diag_in*davidson_sze_max)
integer :: nproc_target
@ -362,11 +362,17 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_
irp_imax = 1
!ticks_0 = irp_rdtsc()
!U = 0d0
!U(1,1)=1.0d0
!U(4587,1)=1.0d0
call H_S2_u_0_nstates_openmp(W(1,shift+1),S_d,U(1,shift+1),N_st_diag,sze)
!ticks_1 = irp_rdtsc()
!print *,' ----Cycles:',(ticks_1-ticks_0)/dble(irp_imax)," ----"
!print *,W(1,1)
!print *,' tmpW(4587,1)=',W(4587,1)
!do ii=1,sze
! if (dabs(W(ii,1)) > 1e-18) then
! print *,W(ii,1)
! print *,ii,"alpha=",psi_det(1,1,ii)," beta=",psi_det(1,2,ii)
! endif
!end do
!stop
endif
S(1:sze,shift+1:shift+N_st_diag) = real(S_d(1:sze,1:N_st_diag))