10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-23 04:43:50 +01:00

Updated FCI for S2 eig

This commit is contained in:
Anthony Scemama 2016-11-10 14:42:41 +01:00
commit b0497c6594
5 changed files with 29 additions and 28 deletions

View File

@ -93,8 +93,8 @@ program full_ci
call diagonalize_CI call diagonalize_CI
if(do_pt2_end)then if(do_pt2_end)then
print*,'Last iteration only to compute the PT2' print*,'Last iteration only to compute the PT2'
threshold_selectors = 1.d0 threshold_selectors = max(threshold_selectors,threshold_selectors_pt2)
threshold_generators = 0.999d0 threshold_generators = max(threshold_generators,threshold_generators_pt2)
call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st) call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st)
print *, 'Final step' print *, 'Final step'

View File

@ -8,15 +8,3 @@ type: double precision
doc: Calculated FCI energy + PT2 doc: Calculated FCI energy + PT2
interface: ezfio interface: ezfio
[threshold_generators_pt2]
type: Threshold
doc: Thresholds on generators (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 0.999
[threshold_selectors_pt2]
type: Threshold
doc: Thresholds on selectors (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 1.

View File

@ -48,14 +48,14 @@ program fci_zmq
call diagonalize_CI call diagonalize_CI
call save_wavefunction call save_wavefunction
if (N_det > N_det_max) then ! if (N_det > N_det_max) then
psi_det = psi_det_sorted ! psi_det = psi_det_sorted
psi_coef = psi_coef_sorted ! psi_coef = psi_coef_sorted
N_det = N_det_max ! N_det = N_det_max
soft_touch N_det psi_det psi_coef ! soft_touch N_det psi_det psi_coef
call diagonalize_CI ! call diagonalize_CI
call save_wavefunction ! call save_wavefunction
endif ! endif
print *, 'N_det = ', N_det print *, 'N_det = ', N_det
print *, 'N_states = ', N_states print *, 'N_states = ', N_states
@ -84,8 +84,8 @@ program fci_zmq
if(do_pt2_end)then if(do_pt2_end)then
print*,'Last iteration only to compute the PT2' print*,'Last iteration only to compute the PT2'
threshold_selectors = threshold_selectors_pt2 threshold_selectors = max(threshold_selectors,threshold_selectors_pt2)
threshold_generators = threshold_generators_pt2 threshold_generators = max(threshold_generators,threshold_generators_pt2)
TOUCH threshold_selectors threshold_generators TOUCH threshold_selectors threshold_generators
E_CI_before(1:N_states) = CI_energy(1:N_states) E_CI_before(1:N_states) = CI_energy(1:N_states)
call ZMQ_selection(0, pt2) call ZMQ_selection(0, pt2)

View File

@ -18,3 +18,15 @@ doc: The selection process stops when the energy ratio variational/(variational+
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
default: 0.75 default: 0.75
[threshold_generators_pt2]
type: Threshold
doc: Thresholds on generators (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 0.999
[threshold_selectors_pt2]
type: Threshold
doc: Thresholds on selectors (fraction of the norm) for final PT2 calculation
interface: ezfio,provider,ocaml
default: 1.

View File

@ -10,11 +10,12 @@ subroutine run(N_st,energy)
double precision :: E_new, E_old, delta_e double precision :: E_new, E_old, delta_e
integer :: iteration integer :: iteration
double precision :: E_past(4), lambda double precision :: E_past(4)
integer :: n_it_mrcc_max integer :: n_it_mrcc_max
double precision :: thresh_mrcc double precision :: thresh_mrcc
double precision, allocatable :: lambda(:)
allocate (lambda(N_states))
thresh_mrcc = thresh_dressed_ci thresh_mrcc = thresh_dressed_ci
@ -139,8 +140,8 @@ subroutine run_pt2_old(N_st,energy)
print * ,'Computing the remaining contribution' print * ,'Computing the remaining contribution'
threshold_selectors = 1.d0 threshold_selectors = max(threshold_selectors,threshold_selectors_pt2)
threshold_generators = 0.999d0 threshold_generators = max(threshold_generators,threshold_generators_pt2)
N_det_generators = N_det_non_ref + N_det_ref N_det_generators = N_det_non_ref + N_det_ref
N_det_selectors = N_det_non_ref + N_det_ref N_det_selectors = N_det_non_ref + N_det_ref