diff --git a/devel/variance/.gitignore b/devel/variance/.gitignore deleted file mode 100644 index 1561915..0000000 --- a/devel/variance/.gitignore +++ /dev/null @@ -1,59 +0,0 @@ -IRPF90_temp/ -IRPF90_man/ -build.ninja -irpf90.make -ezfio_interface.irp.f -irpf90_entities -tags -Makefile -ao_basis -ao_one_e_ints -ao_two_e_erf_ints -ao_two_e_ints -aux_quantities -becke_numerical_grid -bitmask -cis -cisd -cipsi -davidson -davidson_dressed -davidson_undressed -density_for_dft -determinants -dft_keywords -dft_utils_in_r -dft_utils_one_e -dft_utils_two_body -dressing -dummy -electrons -ezfio_files -fci -generators_cas -generators_full -hartree_fock -iterations -kohn_sham -kohn_sham_rs -mo_basis -mo_guess -mo_one_e_ints -mo_two_e_erf_ints -mo_two_e_ints -mpi -mrpt_utils -nuclei -perturbation -pseudo -psiref_cas -psiref_utils -scf_utils -selectors_cassd -selectors_full -selectors_utils -single_ref_method -slave -tools -utils -zmq diff --git a/devel/variance/EZFIO.cfg b/devel/variance/EZFIO.cfg deleted file mode 100644 index 0ecc86d..0000000 --- a/devel/variance/EZFIO.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[expected_variance] -type: double precision -doc: Expected variance where the calculation should stop -interface: ezfio, provider, ocaml -default: 0.1 - diff --git a/devel/variance/NEED b/devel/variance/NEED deleted file mode 100644 index c76c9da..0000000 --- a/devel/variance/NEED +++ /dev/null @@ -1 +0,0 @@ -fci diff --git a/devel/variance/README.rst b/devel/variance/README.rst deleted file mode 100644 index 640a967..0000000 --- a/devel/variance/README.rst +++ /dev/null @@ -1,4 +0,0 @@ -======== -variance -======== - diff --git a/devel/variance/rpt2_match.irp.f b/devel/variance/rpt2_match.irp.f deleted file mode 100644 index 03e2edd..0000000 --- a/devel/variance/rpt2_match.irp.f +++ /dev/null @@ -1,118 +0,0 @@ -program variance - implicit none - BEGIN_DOC -! Selected Full Configuration Interaction with Stochastic selection and PT2. - END_DOC - integer :: i,j,k - double precision, allocatable :: pt2(:), var(:), norm(:), rpt2(:) - integer :: to_select - logical, external :: qp_stop - - double precision :: rss - double precision, external :: memory_of_double - PROVIDE H_apply_buffer_allocated N_generators_bitmask - - threshold_generators = 1.d0 - SOFT_TOUCH threshold_generators - - rss = memory_of_double(N_states)*4.d0 - call check_mem(rss,irp_here) - - allocate (pt2(N_states), rpt2(N_states), norm(N_states), var(N_states)) - - double precision :: hf_energy_ref - logical :: has - double precision :: relative_error - - relative_error=PT2_relative_error - - pt2 = -huge(1.e0) - rpt2 = -huge(1.e0) - norm = 0.d0 - var = huge(1.e0) - - if (s2_eig) then - call make_s2_eigenfunction - endif - call diagonalize_CI - call save_wavefunction - - call ezfio_has_hartree_fock_energy(has) - if (has) then - call ezfio_get_hartree_fock_energy(hf_energy_ref) - else - hf_energy_ref = ref_bitmask_energy - endif - - if (N_det > N_det_max) then - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - soft_touch N_det psi_det psi_coef - if (s2_eig) then - call make_s2_eigenfunction - endif - call diagonalize_CI - call save_wavefunction - endif - - double precision :: correlation_energy_ratio - double precision :: error(N_states) - - correlation_energy_ratio = 0.d0 - - do while ( & - (N_det < N_det_max) .and. & - (maxval(abs(rpt2(1:N_states))) > pt2_max) .and. & - (maxval(abs(var(1:N_states))) > variance_max) .and. & - (correlation_energy_ratio <= correlation_energy_ratio_max) & - ) - write(*,'(A)') '--------------------------------------------------------------------------------' - - - to_select = N_det/20 - to_select = max(N_states_diag, to_select) - - pt2 = 0.d0 - var = 0.d0 - norm = 0.d0 - call ZMQ_pt2(psi_energy_with_nucl_rep,pt2,relative_error,error, var, & - norm, to_select) ! Stochastic PT2 and selection - - correlation_energy_ratio = (psi_energy_with_nucl_rep(1) - hf_energy_ref) / & - (psi_energy_with_nucl_rep(1) + pt2(1) - hf_energy_ref) - correlation_energy_ratio = min(1.d0,correlation_energy_ratio) - - call save_energy(psi_energy_with_nucl_rep, pt2) - call write_double(6,correlation_energy_ratio, 'Correlation ratio') - call print_summary(psi_energy_with_nucl_rep,pt2,error,var,norm,N_det,N_occ_pattern,N_states,psi_s2) - - do k=1,N_states - rpt2(k) = pt2(k)/(1.d0 + norm(k)) - enddo - - call save_iterations(psi_energy_with_nucl_rep(1:N_states),rpt2,N_det) - call print_extrapolated_energy() - N_iter += 1 - - if ( (maxval(abs(rpt2(1:N_states))) <= pt2_max) .or. & - (maxval(abs(var(1:N_states))) <= variance_max) .or. & - qp_stop() ) then - exit - endif - ! Add selected determinants - call copy_H_apply_buffer_to_wf() - call save_wavefunction - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - call diagonalize_CI - call save_wavefunction - rpt2(:) = 0.d0 - call save_energy(psi_energy_with_nucl_rep, rpt2) - if (qp_stop()) exit - enddo - -end diff --git a/devel/variance/variance b/devel/variance/variance deleted file mode 100755 index b36cb3d..0000000 Binary files a/devel/variance/variance and /dev/null differ diff --git a/devel/variance/variance.irp.f b/devel/variance/variance.irp.f deleted file mode 100644 index d6b8adb..0000000 --- a/devel/variance/variance.irp.f +++ /dev/null @@ -1,118 +0,0 @@ -program variance - implicit none - BEGIN_DOC -! Selected Full Configuration Interaction with Stochastic selection and PT2. - END_DOC - integer :: i,j,k - double precision, allocatable :: pt2(:), var(:), norm(:), rpt2(:) - integer :: to_select - logical, external :: qp_stop - - double precision :: rss - double precision, external :: memory_of_double - PROVIDE H_apply_buffer_allocated N_generators_bitmask - - threshold_generators = 1.d0 - SOFT_TOUCH threshold_generators - - rss = memory_of_double(N_states)*4.d0 - call check_mem(rss,irp_here) - - allocate (pt2(N_states), rpt2(N_states), norm(N_states), var(N_states)) - - double precision :: hf_energy_ref - logical :: has - double precision :: relative_error - - relative_error=PT2_relative_error - - pt2 = -huge(1.e0) - rpt2 = -huge(1.e0) - norm = 0.d0 - var = huge(1.e0) - - if (s2_eig) then - call make_s2_eigenfunction - endif - call diagonalize_CI - call save_wavefunction - - call ezfio_has_hartree_fock_energy(has) - if (has) then - call ezfio_get_hartree_fock_energy(hf_energy_ref) - else - hf_energy_ref = ref_bitmask_energy - endif - - if (N_det > N_det_max) then - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - soft_touch N_det psi_det psi_coef - if (s2_eig) then - call make_s2_eigenfunction - endif - call diagonalize_CI - call save_wavefunction - endif - - double precision :: correlation_energy_ratio - double precision :: error(N_states) - - correlation_energy_ratio = 0.d0 - - do while ( & - (N_det < N_det_max) .and. & - (maxval(abs(pt2(1:N_states))) > pt2_max) .and. & - (maxval(abs(var(1:N_states))) > variance_max) .and. & - (correlation_energy_ratio <= correlation_energy_ratio_max) & - ) - write(*,'(A)') '--------------------------------------------------------------------------------' - - - to_select = N_det/20 - to_select = max(N_states_diag, to_select) - - pt2 = 0.d0 - var = 0.d0 - norm = 0.d0 - call ZMQ_pt2(psi_energy_with_nucl_rep,pt2,relative_error,error, var, & - norm, to_select) ! Stochastic PT2 and selection - - correlation_energy_ratio = (psi_energy_with_nucl_rep(1) - hf_energy_ref) / & - (psi_energy_with_nucl_rep(1) + pt2(1) - hf_energy_ref) - correlation_energy_ratio = min(1.d0,correlation_energy_ratio) - - call save_energy(psi_energy_with_nucl_rep, pt2) - call write_double(6,correlation_energy_ratio, 'Correlation ratio') - call print_summary(psi_energy_with_nucl_rep,pt2,error,var,norm,N_det,N_occ_pattern,N_states,psi_s2) - - do k=1,N_states - rpt2(k) = pt2(k)/(1.d0 + norm(k)) - enddo - - call save_iterations(psi_energy_with_nucl_rep(1:N_states),rpt2,N_det) - call print_extrapolated_energy() - N_iter += 1 - - if ( (maxval(abs(pt2(1:N_states))) <= pt2_max) .or. & - (maxval(abs(var(1:N_states))) <= variance_max) .or. & - qp_stop() ) then - exit - endif - ! Add selected determinants - call copy_H_apply_buffer_to_wf() - call save_wavefunction - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - call diagonalize_CI - call save_wavefunction - rpt2(:) = 0.d0 - call save_energy(psi_energy_with_nucl_rep, rpt2) - if (qp_stop()) exit - enddo - -end