9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 03:23:29 +01:00
This commit is contained in:
Anthony Scemama 2019-10-30 15:28:46 +01:00
parent 4087f1ebbc
commit 328672f6be
2 changed files with 9 additions and 7 deletions

View File

@ -77,6 +77,7 @@ logical function testTeethBuilding(minF, N)
tilde_cW(i) = tilde_cW(i-1) + tilde_w(i) tilde_cW(i) = tilde_cW(i-1) + tilde_w(i)
enddo enddo
tilde_cW(:) = tilde_cW(:) + 1.d0 tilde_cW(:) = tilde_cW(:) + 1.d0
deallocate(tilde_w)
n0 = 0 n0 = 0
testTeethBuilding = .false. testTeethBuilding = .false.
@ -89,19 +90,19 @@ logical function testTeethBuilding(minF, N)
r = tilde_cW(n0 + minF) r = tilde_cW(n0 + minF)
Wt = (1d0 - u0) * f Wt = (1d0 - u0) * f
if (dabs(Wt) <= 1.d-3) then if (dabs(Wt) <= 1.d-3) then
return exit
endif endif
if(Wt >= r - u0) then if(Wt >= r - u0) then
testTeethBuilding = .true. testTeethBuilding = .true.
return exit
end if end if
n0 += 1 n0 += 1
! if(N_det_generators - n0 < minF * N) then
if(n0 > minFN) then if(n0 > minFN) then
return exit
end if end if
end do end do
stop "exited testTeethBuilding" deallocate(tilde_cW)
end function end function
@ -768,7 +769,7 @@ END_PROVIDER
tilde_cW(i) = tilde_cW(i-1) + tilde_w(i) tilde_cW(i) = tilde_cW(i-1) + tilde_w(i)
enddo enddo
tilde_cW(:) = tilde_cW(:) + 1.d0 tilde_cW(:) = tilde_cW(:) + 1.d0
pt2_n_0(1) = 0 pt2_n_0(1) = 0
do do
pt2_u_0 = tilde_cW(pt2_n_0(1)) pt2_u_0 = tilde_cW(pt2_n_0(1))

View File

@ -346,6 +346,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
call isort(indices,iorder,nmax) call isort(indices,iorder,nmax)
deallocate(iorder) deallocate(iorder)
! Start with 32 elements. Size will double along with the filtering.
allocate(preinteresting(0:32), prefullinteresting(0:32), & allocate(preinteresting(0:32), prefullinteresting(0:32), &
interesting(0:32), fullinteresting(0:32)) interesting(0:32), fullinteresting(0:32))
preinteresting(:) = 0 preinteresting(:) = 0
@ -477,7 +478,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d
if (nt > 4) exit if (nt > 4) exit
endif endif
end do end do
case default case default
mobMask(1:N_int,1) = iand(negMask(1:N_int,1), psi_det_sorted(1:N_int,1,preinteresting(ii))) mobMask(1:N_int,1) = iand(negMask(1:N_int,1), psi_det_sorted(1:N_int,1,preinteresting(ii)))
mobMask(1:N_int,2) = iand(negMask(1:N_int,2), psi_det_sorted(1:N_int,2,preinteresting(ii))) mobMask(1:N_int,2) = iand(negMask(1:N_int,2), psi_det_sorted(1:N_int,2,preinteresting(ii)))
nt = 0 nt = 0