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:
commit
b0497c6594
@ -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'
|
||||||
|
@ -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.
|
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user