10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-26 07:02:14 +02:00

Removed radomization

This commit is contained in:
Anthony Scemama 2016-11-30 22:49:03 +01:00
parent 3adf8cdcb7
commit f9fce87440
2 changed files with 38 additions and 38 deletions

View File

@ -910,30 +910,30 @@ subroutine davidson_diag_hjj_sjj_mrcc(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sz
! ----------------------- ! -----------------------
do k=1,N_st_diag do k=1,N_st_diag
if (state_ok(k)) then ! if (state_ok(k)) then
do i=1,sze do i=1,sze
U(i,shift2+k) = (lambda(k) * U(i,shift2+k) - W(i,shift2+k) ) & U(i,shift2+k) = (lambda(k) * U(i,shift2+k) - W(i,shift2+k) ) &
* (1.d0 + s2(k) * U(i,shift2+k) - S(i,shift2+k) - S_z2_Sz & * (1.d0 + s2(k) * U(i,shift2+k) - S(i,shift2+k) - S_z2_Sz &
)/max(H_jj(i) - lambda (k),1.d-2) )/max(H_jj(i) - lambda (k),1.d-2)
enddo enddo
else ! else
! Randomize components with bad <S2> ! ! Randomize components with bad <S2>
do i=1,sze-2,2 ! do i=1,sze-2,2
call random_number(r1) ! call random_number(r1)
call random_number(r2) ! call random_number(r2)
r1 = dsqrt(-2.d0*dlog(r1)) ! r1 = dsqrt(-2.d0*dlog(r1))
r2 = dtwo_pi*r2 ! r2 = dtwo_pi*r2
U(i,shift2+k) = r1*dcos(r2) ! U(i,shift2+k) = r1*dcos(r2)
U(i+1,shift2+k) = r1*dsin(r2) ! U(i+1,shift2+k) = r1*dsin(r2)
enddo ! enddo
do i=sze-2+1,sze ! do i=sze-2+1,sze
call random_number(r1) ! call random_number(r1)
call random_number(r2) ! call random_number(r2)
r1 = dsqrt(-2.d0*dlog(r1)) ! r1 = dsqrt(-2.d0*dlog(r1))
r2 = dtwo_pi*r2 ! r2 = dtwo_pi*r2
U(i,shift2+k) = r1*dcos(r2) ! U(i,shift2+k) = r1*dcos(r2)
enddo ! enddo
endif ! endif
if (k <= N_st) then if (k <= N_st) then
residual_norm(k) = u_dot_u(U(1,shift2+k),sze) residual_norm(k) = u_dot_u(U(1,shift2+k),sze)

View File

@ -385,31 +385,31 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_s
! ----------------------------------------- ! -----------------------------------------
do k=1,N_st_diag do k=1,N_st_diag
if (state_ok(k)) then ! if (state_ok(k)) then
do i=1,sze do i=1,sze
U(i,shift2+k) = & U(i,shift2+k) = &
(lambda(k) * U(i,shift2+k) - W(i,shift2+k) ) & (lambda(k) * U(i,shift2+k) - W(i,shift2+k) ) &
* (1.d0 + s2(k) * U(i,shift2+k) - S(i,shift2+k) - S_z2_Sz & * (1.d0 + s2(k) * U(i,shift2+k) - S(i,shift2+k) - S_z2_Sz &
)/max(H_jj(i) - lambda (k),1.d-2) )/max(H_jj(i) - lambda (k),1.d-2)
enddo enddo
else ! else
! Randomize components with bad <S2> ! ! Randomize components with bad <S2>
do i=1,sze-2,2 ! do i=1,sze-2,2
call random_number(r1) ! call random_number(r1)
call random_number(r2) ! call random_number(r2)
r1 = dsqrt(-2.d0*dlog(r1)) ! r1 = dsqrt(-2.d0*dlog(r1))
r2 = dtwo_pi*r2 ! r2 = dtwo_pi*r2
U(i,shift2+k) = r1*dcos(r2) ! U(i,shift2+k) = r1*dcos(r2)
U(i+1,shift2+k) = r1*dsin(r2) ! U(i+1,shift2+k) = r1*dsin(r2)
enddo ! enddo
do i=sze-2+1,sze ! do i=sze-2+1,sze
call random_number(r1) ! call random_number(r1)
call random_number(r2) ! call random_number(r2)
r1 = dsqrt(-2.d0*dlog(r1)) ! r1 = dsqrt(-2.d0*dlog(r1))
r2 = dtwo_pi*r2 ! r2 = dtwo_pi*r2
U(i,shift2+k) = r1*dcos(r2) ! U(i,shift2+k) = r1*dcos(r2)
enddo ! enddo
endif ! endif
if (k <= N_st) then if (k <= N_st) then
residual_norm(k) = u_dot_u(U(1,shift2+k),sze) residual_norm(k) = u_dot_u(U(1,shift2+k),sze)