10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-07-11 13:53:44 +02:00

Changed defaults in Davidson

This commit is contained in:
Anthony Scemama 2017-04-18 00:32:22 +02:00
parent 3b2d23c745
commit fd2f7f3447
3 changed files with 9 additions and 6 deletions

View File

@ -7,13 +7,13 @@ default: 1.e-12
[n_states_diag] [n_states_diag]
type: States_number type: States_number
doc: Number of states to consider during the Davdison diagonalization doc: Number of states to consider during the Davdison diagonalization
default: 10 default: 4
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
[davidson_sze_max] [davidson_sze_max]
type: Strictly_positive_int type: Strictly_positive_int
doc: Number of micro-iterations before re-contracting doc: Number of micro-iterations before re-contracting
default: 10 default: 8
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
[state_following] [state_following]

View File

@ -126,7 +126,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_s
sze_8 = align_double(sze) sze_8 = align_double(sze)
itermax = max(3,min(davidson_sze_max, sze/N_st_diag)) itermax = max(3,min(davidson_sze_max, sze/N_st_diag))
PROVIDE nuclear_repulsion expected_s2 PROVIDE nuclear_repulsion expected_s2 singles_alpha_csc
call write_time(iunit) call write_time(iunit)
call wall_time(wall) call wall_time(wall)
@ -138,8 +138,8 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_s
call write_int(iunit,N_st,'Number of states') call write_int(iunit,N_st,'Number of states')
call write_int(iunit,N_st_diag,'Number of states in diagonalization') call write_int(iunit,N_st_diag,'Number of states in diagonalization')
call write_int(iunit,sze,'Number of determinants') call write_int(iunit,sze,'Number of determinants')
r1 = 8.d0*(3.d0*dble(sze_8*N_st_diag*itermax+5.d0*(N_st_diag*itermax)**2 & r1 = 8.d0*(size(singles_alpha_csc)+3.d0*dble(sze_8*N_st_diag*itermax+5.d0*(N_st_diag*itermax)**2 &
+ 4.d0*(N_st_diag*itermax))/(1024.d0**3)) + 4.d0*(N_st_diag*itermax)+nproc*(4.d0*N_det_alpha_unique+2.d0*N_st_diag*sze_8)))/(1024.d0**3)
call write_double(iunit, r1, 'Memory(Gb)') call write_double(iunit, r1, 'Memory(Gb)')
write(iunit,'(A)') '' write(iunit,'(A)') ''
write_buffer = '===== ' write_buffer = '===== '
@ -452,6 +452,7 @@ subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_s
y, s_, s_tmp, & y, s_, s_tmp, &
lambda & lambda &
) )
FREE singles_alpha_csc
end end
subroutine davidson_diag_hjj_sjj_mmap(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_st,N_st_diag,Nint,iunit) subroutine davidson_diag_hjj_sjj_mmap(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sze,N_st,N_st_diag,Nint,iunit)
@ -519,7 +520,7 @@ subroutine davidson_diag_hjj_sjj_mmap(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sz
stop -1 stop -1
endif endif
PROVIDE nuclear_repulsion expected_s2 PROVIDE nuclear_repulsion expected_s2 singles_alpha_csc
call write_time(iunit) call write_time(iunit)
call wall_time(wall) call wall_time(wall)
@ -891,5 +892,6 @@ subroutine davidson_diag_hjj_sjj_mmap(dets_in,u_in,H_jj,S2_jj,energies,dim_in,sz
y, s_, s_tmp, & y, s_, s_tmp, &
lambda & lambda &
) )
FREE singles_alpha_csc
end end

View File

@ -941,6 +941,7 @@ END_PROVIDER
psi_det_alpha_unique, idx0, psi_det_alpha_unique(1,i), N_int, & psi_det_alpha_unique, idx0, psi_det_alpha_unique(1,i), N_int, &
N_det_alpha_unique, s, j) N_det_alpha_unique, s, j)
singles_alpha_csc_idx(i+1) = int(j,8) singles_alpha_csc_idx(i+1) = int(j,8)
enddo
!$OMP END DO !$OMP END DO
deallocate(s) deallocate(s)
!$OMP END PARALLEL !$OMP END PARALLEL