10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-11-13 17:43:55 +01:00

Removed H_apply_threshold

This commit is contained in:
Anthony Scemama 2014-07-29 12:11:26 +02:00
parent 590c5628e4
commit 61771af83a
4 changed files with 18 additions and 21 deletions

View File

@ -42,24 +42,6 @@ BEGIN_PROVIDER [ logical, H_apply_buffer_allocated ]
END_PROVIDER
BEGIN_PROVIDER [ double precision, H_apply_threshold ]
implicit none
BEGIN_DOC
! Theshold on | <Di|H|Dj> |
END_DOC
logical :: has
PROVIDE ezfio_filename
call ezfio_has_determinants_H_apply_threshold(has)
if (has) then
call ezfio_get_determinants_H_apply_threshold(H_apply_threshold)
else
H_apply_threshold = 1.d-10
endif
call write_time(output_Dets)
call write_double(output_Dets, H_apply_threshold, &
'H_apply_threshold')
END_PROVIDER
subroutine resize_H_apply_buffer(new_size,iproc)
implicit none
integer, intent(in) :: new_size, iproc

View File

@ -381,7 +381,7 @@ subroutine $subroutine($params_main)
integer :: ispin, k
PROVIDE H_apply_buffer_allocated mo_bielec_integrals_in_map N_det_selectors psi_generators
PROVIDE psi_det_sorted_bit coef_hf_selector psi_det psi_coef H_apply_threshold ref_bitmask_energy
PROVIDE psi_det_sorted_bit coef_hf_selector psi_det psi_coef ref_bitmask_energy
nmax = ( N_det_generators/nproc ) *nproc
call wall_time(wall_0)

View File

@ -6,7 +6,6 @@ determinants
n_states integer
psi_coef double precision (determinants_n_det,determinants_n_states)
psi_det integer*8 (determinants_n_int*determinants_bit_kind/8,2,determinants_n_det)
H_apply_threshold double precision
n_det_max_jacobi integer
threshold_generators double precision
threshold_selectors double precision

View File

@ -11,7 +11,23 @@ program cisd
pt2 = 1.d0
diag_algorithm = "Lapack"
! do while (maxval(abs(pt2(1:N_st))) > 1.d-4)
if (N_det > n_det_max_fci) then
call diagonalize_CI
call save_wavefunction
psi_det = psi_det_sorted
psi_coef = psi_coef_sorted
N_det = n_det_max_fci
soft_touch N_det psi_det psi_coef
call diagonalize_CI
call save_wavefunction
print *, 'N_det = ', N_det
print *, 'N_states = ', N_states
print *, 'PT2 = ', pt2
print *, 'E = ', CI_energy
print *, 'E+PT2 = ', CI_energy+pt2
print *, '-----'
endif
do while (N_det < n_det_max_fci.and.maxval(abs(pt2(1:N_st))) > pt2_max)
call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st)
if (N_det > n_det_max_fci) then