From 409aa823732d9e1bd150da9aac84a66af4d2423a Mon Sep 17 00:00:00 2001 From: v1j4y Date: Thu, 15 Sep 2022 19:18:13 +0200 Subject: [PATCH] Doublet also works. Running tests. --- src/csf/sigma_vector.irp.f | 9 ++++++++- src/davidson/diagonalization_hcfg.irp.f | 11 +++++++++-- src/davidson/diagonalization_hs2_dressed.irp.f | 12 +++++++++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index f9a37077..21c19aaa 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -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, & diff --git a/src/davidson/diagonalization_hcfg.irp.f b/src/davidson/diagonalization_hcfg.irp.f index 7da2e1d2..d2050bc7 100644 --- a/src/davidson/diagonalization_hcfg.irp.f +++ b/src/davidson/diagonalization_hcfg.irp.f @@ -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 diff --git a/src/davidson/diagonalization_hs2_dressed.irp.f b/src/davidson/diagonalization_hs2_dressed.irp.f index b554754d..cd98c925 100644 --- a/src/davidson/diagonalization_hs2_dressed.irp.f +++ b/src/davidson/diagonalization_hs2_dressed.irp.f @@ -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))