From 17dd70e86d85457bc5f47c563eb144937874edec Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 26 Jun 2017 18:27:52 +0200 Subject: [PATCH] Cleaning --- plugins/CASSCF/EZFIO.cfg | 10 - plugins/CASSCF/H_apply.irp.f | 39 --- plugins/CASSCF/NEEDED_CHILDREN_MODULES | 1 - plugins/CASSCF/README.rst | 20 -- plugins/CASSCF/casscf.irp.f | 217 ------------- plugins/CAS_SD/EZFIO.cfg | 10 - plugins/CAS_SD/H_apply.irp.f | 37 --- plugins/CAS_SD/NEEDED_CHILDREN_MODULES | 1 - plugins/CAS_SD/README.rst | 295 ------------------ plugins/CAS_SD/cas_s.irp.f | 92 ------ plugins/CAS_SD/cas_s_selected.irp.f | 123 -------- plugins/CAS_SD/cas_sd.irp.f | 123 -------- plugins/CAS_SD/cas_sd_selected.irp.f | 123 -------- plugins/CAS_SD/tree_dependency.png | Bin 111575 -> 0 bytes plugins/Perturbation/EZFIO.cfg | 4 +- .../Selectors_CASSD/NEEDED_CHILDREN_MODULES | 1 - plugins/Selectors_CASSD/README.rst | 12 - plugins/Selectors_CASSD/selectors.irp.f | 95 ------ plugins/Selectors_CASSD/zmq.irp.f | 121 ------- 19 files changed, 2 insertions(+), 1322 deletions(-) delete mode 100644 plugins/CASSCF/EZFIO.cfg delete mode 100644 plugins/CASSCF/H_apply.irp.f delete mode 100644 plugins/CASSCF/NEEDED_CHILDREN_MODULES delete mode 100644 plugins/CASSCF/README.rst delete mode 100644 plugins/CASSCF/casscf.irp.f delete mode 100644 plugins/CAS_SD/EZFIO.cfg delete mode 100644 plugins/CAS_SD/H_apply.irp.f delete mode 100644 plugins/CAS_SD/NEEDED_CHILDREN_MODULES delete mode 100644 plugins/CAS_SD/README.rst delete mode 100644 plugins/CAS_SD/cas_s.irp.f delete mode 100644 plugins/CAS_SD/cas_s_selected.irp.f delete mode 100644 plugins/CAS_SD/cas_sd.irp.f delete mode 100644 plugins/CAS_SD/cas_sd_selected.irp.f delete mode 100644 plugins/CAS_SD/tree_dependency.png delete mode 100644 plugins/Selectors_CASSD/NEEDED_CHILDREN_MODULES delete mode 100644 plugins/Selectors_CASSD/README.rst delete mode 100644 plugins/Selectors_CASSD/selectors.irp.f delete mode 100644 plugins/Selectors_CASSD/zmq.irp.f diff --git a/plugins/CASSCF/EZFIO.cfg b/plugins/CASSCF/EZFIO.cfg deleted file mode 100644 index e9e6e92e..00000000 --- a/plugins/CASSCF/EZFIO.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[energy] -type: double precision -doc: "Calculated CAS-SCF energy" -interface: ezfio - -[energy_pt2] -type: double precision -doc: "Calculated selected CAS-SCF energy with PT2 correction" -interface: ezfio - diff --git a/plugins/CASSCF/H_apply.irp.f b/plugins/CASSCF/H_apply.irp.f deleted file mode 100644 index 35c45fb6..00000000 --- a/plugins/CASSCF/H_apply.irp.f +++ /dev/null @@ -1,39 +0,0 @@ -use bitmasks -BEGIN_SHELL [ /usr/bin/env python ] -from generate_h_apply import * - -s = H_apply("CAS_SD") -print s - -s = H_apply("CAS_SD_selected_no_skip") -s.set_selection_pt2("epstein_nesbet_2x2") -s.unset_skip() -print s - -s = H_apply("CAS_SD_selected") -s.set_selection_pt2("epstein_nesbet_2x2") -print s - -s = H_apply("CAS_SD_PT2") -s.set_perturbation("epstein_nesbet_2x2") -print s - - -s = H_apply("CAS_S",do_double_exc=False) -print s - -s = H_apply("CAS_S_selected_no_skip",do_double_exc=False) -s.set_selection_pt2("epstein_nesbet_2x2") -s.unset_skip() -print s - -s = H_apply("CAS_S_selected",do_double_exc=False) -s.set_selection_pt2("epstein_nesbet_2x2") -print s - -s = H_apply("CAS_S_PT2",do_double_exc=False) -s.set_perturbation("epstein_nesbet_2x2") -print s - -END_SHELL - diff --git a/plugins/CASSCF/NEEDED_CHILDREN_MODULES b/plugins/CASSCF/NEEDED_CHILDREN_MODULES deleted file mode 100644 index 29e39f2f..00000000 --- a/plugins/CASSCF/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ -Generators_CAS Perturbation Selectors_full diff --git a/plugins/CASSCF/README.rst b/plugins/CASSCF/README.rst deleted file mode 100644 index ceeb7477..00000000 --- a/plugins/CASSCF/README.rst +++ /dev/null @@ -1,20 +0,0 @@ -====== -CASSCF -====== - -This module is not a "real" CAS-SCF. It is an orbital optimization step done by : - -1) Doing the CAS+SD -2) Taking one-electron density matrix -3) Cancelling all active-active rotations -4) Finding the order which matches with the input MOs - - -Needed Modules -============== -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. -Documentation -============= -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. diff --git a/plugins/CASSCF/casscf.irp.f b/plugins/CASSCF/casscf.irp.f deleted file mode 100644 index 864b1855..00000000 --- a/plugins/CASSCF/casscf.irp.f +++ /dev/null @@ -1,217 +0,0 @@ -program casscf - implicit none - BEGIN_DOC -! Optimize MOs and CI coefficients of the CAS - END_DOC - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - integer(bit_kind), allocatable :: generators_bitmask_save(:,:,:,:) - - integer :: degree, N_generators_bitmask_save, N_det_ci - double precision :: E_old, E_CI - double precision :: selection_criterion_save, selection_criterion_min_save - - integer :: N_det_old - integer :: i, j, k, l - integer :: i_bit, j_bit, i_int, j_int - integer(bit_kind), allocatable :: bit_tmp(:), cas_bm(:) - character*(64) :: label - - allocate( pt2(N_states), norm_pert(N_states),H_pert_diag(N_states) ) - allocate( generators_bitmask_save(N_int,2,6,N_generators_bitmask) ) - allocate( bit_tmp(N_int), cas_bm(N_int) ) - - PROVIDE N_det_cas - N_det_old = 0 - pt2 = 1.d0 - E_CI = 1.d0 - E_old = 0.d0 - diag_algorithm = "Lapack" - selection_criterion_save = selection_criterion - selection_criterion_min_save = selection_criterion_min - - - cas_bm = 0_bit_kind - do i=1,N_cas_bitmask - do j=1,N_int - cas_bm(j) = ior(cas_bm(j), cas_bitmask(j,1,i)) - cas_bm(j) = ior(cas_bm(j), cas_bitmask(j,2,i)) - enddo - enddo - - ! Save CAS-SD bitmask - generators_bitmask_save = generators_bitmask - N_generators_bitmask_save = N_generators_bitmask - - ! Set the CAS bitmask - do i=1,6 - generators_bitmask(:,:,i,:) = cas_bitmask - enddo - N_generators_bitmask = N_cas_bitmask - SOFT_TOUCH generators_bitmask N_generators_bitmask - - - ! If the number of dets already in the file is larger than the requested - ! number of determinants, truncate the wf - if (N_det > N_det_max) then - call diagonalize_CI - call save_wavefunction - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - 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 - - ! Start MCSCF iteration - - ! CAS-CI - ! ------ - - E_old = E_CI - - ! Reset the selection criterion - selection_criterion = selection_criterion_save - selection_criterion_min = selection_criterion_min_save - SOFT_TOUCH selection_criterion_min selection_criterion selection_criterion_factor - - ! Set the CAS bitmask - do i=1,6 - generators_bitmask(:,:,i,:) = cas_bitmask - enddo - N_generators_bitmask = N_cas_bitmask - SOFT_TOUCH generators_bitmask N_generators_bitmask - - do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_states))) > pt2_max) - N_det_old = N_det - call H_apply_CAS_SD_selected_no_skip(pt2, norm_pert, H_pert_diag, N_states) - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - 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 - endif - call diagonalize_CI - call save_wavefunction - print *, '======' - print *, 'CAS-CI' - print *, '======' - print *, '' - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E(CAS) = ', CI_energy - print *, 'E(CAS)+PT2 = ', CI_energy+pt2 - print *, '-----' - print *, '' - E_CI = sum(CI_energy(1:N_states)+pt2(1:N_states))/dble(N_states) - - call ezfio_set_casscf_energy(CI_energy(1)) - if (N_det == N_det_old) then - exit - endif - - enddo - - ! Super-CI - ! -------- - - selection_criterion_min = 1.d-12 - selection_criterion = 1.d-12 - - ! Set the CAS bitmask - generators_bitmask = generators_bitmask_save - N_generators_bitmask = N_generators_bitmask_save - SOFT_TOUCH generators_bitmask N_generators_bitmask selection_criterion selection_criterion_min selection_criterion_factor - - N_det_ci = N_det - - call H_apply_CAS_SD_selected(pt2, norm_pert, H_pert_diag, N_states) - - - do i=1,mo_tot_num - i_int = ishft(i-1,-bit_kind_shift)+1 - i_bit = j-ishft(i_int-1,bit_kind_shift)-1 - bit_tmp(:) = 0_bit_kind - bit_tmp(i_int) = ibset(0_bit_kind,i_bit) - if (iand(bit_tmp(i_int), cas_bm(i_int)) == 0_bit_kind) then - ! Not a CAS MO - cycle - endif - - do j=1,mo_tot_num - if (j == i) then - cycle - endif - j_int = ishft(j-1,-bit_kind_shift)+1 - j_bit = j-ishft(j_int-1,bit_kind_shift)-1 - bit_tmp(:) = 0_bit_kind - bit_tmp(j_int) = ibset(0_bit_kind,j_bit) - if (iand(bit_tmp(j_int), cas_bm(j_int)) == 0_bit_kind) then - ! Not a CAS MO - cycle - endif - ! Now, both i and j are MOs of the CAS. De-couple them in the DM - one_body_dm_mo(i,j) = 0.d0 - enddo - - enddo - - SOFT_TOUCH one_body_dm_mo - - double precision :: mx, ov - double precision, allocatable :: mo_coef_old(:,:) - integer, allocatable :: iorder(:) - logical, allocatable :: selected(:) - allocate( mo_coef_old(size(mo_coef,1), size(mo_coef,2)), iorder(mo_tot_num), selected(mo_tot_num) ) - mo_coef_old = mo_coef - label = "Canonical" - call mo_as_eigvectors_of_mo_matrix(one_body_dm_mo,size(one_body_dm_mo,1),size(one_body_dm_mo,2),label,-1) - selected = .False. - do j=1,mo_tot_num - mx = -1.d0 - iorder(j) = j - do i=1,mo_tot_num - if (selected(i)) then - cycle - endif - ov = 0.d0 - do l=1,ao_num - do k=1,ao_num - ov = ov + mo_coef_old(k,j) * ao_overlap(k,l) * mo_coef(l,i) - enddo - enddo - ov= dabs(ov) - if (ov > mx) then - mx = ov - iorder(j) = i - endif - enddo - selected( iorder(j) ) = .True. - enddo - mo_coef_old = mo_coef - do i=1,mo_tot_num - mo_coef(:,i) = mo_coef_old(:,iorder(i)) - enddo - - call save_mos - - call write_double(6,E_CI,"Energy(CAS)") - - deallocate( mo_coef_old ) - deallocate( pt2, norm_pert,H_pert_diag ) - deallocate( generators_bitmask_save ) - deallocate( bit_tmp, cas_bm, iorder ) -end diff --git a/plugins/CAS_SD/EZFIO.cfg b/plugins/CAS_SD/EZFIO.cfg deleted file mode 100644 index 7425c8ba..00000000 --- a/plugins/CAS_SD/EZFIO.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[energy] -type: double precision -doc: "Calculated CAS-SD energy" -interface: ezfio - -[energy_pt2] -type: double precision -doc: "Calculated selected CAS-SD energy with PT2 correction" -interface: ezfio - diff --git a/plugins/CAS_SD/H_apply.irp.f b/plugins/CAS_SD/H_apply.irp.f deleted file mode 100644 index f1d0c66b..00000000 --- a/plugins/CAS_SD/H_apply.irp.f +++ /dev/null @@ -1,37 +0,0 @@ -use bitmasks -BEGIN_SHELL [ /usr/bin/env python ] -from generate_h_apply import * - -s = H_apply("CAS_SD") -s.unset_skip() -print s - -s = H_apply("CAS_SD_selected_no_skip") -s.set_selection_pt2("epstein_nesbet_2x2") -s.unset_skip() -print s - -s = H_apply("CAS_SD_selected") -s.set_selection_pt2("epstein_nesbet_2x2") -s.unset_skip() -print s - -s = H_apply("CAS_SD_PT2") -s.set_perturbation("epstein_nesbet_2x2") -print s - - -s = H_apply("CAS_S",do_double_exc=False) -print s - -s = H_apply("CAS_S_selected",do_double_exc=False) -s.set_selection_pt2("epstein_nesbet_2x2") -s.unset_skip() -print s - -s = H_apply("CAS_S_PT2",do_double_exc=False) -s.set_perturbation("epstein_nesbet_2x2") -print s - -END_SHELL - diff --git a/plugins/CAS_SD/NEEDED_CHILDREN_MODULES b/plugins/CAS_SD/NEEDED_CHILDREN_MODULES deleted file mode 100644 index 0b7ce8a9..00000000 --- a/plugins/CAS_SD/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ -Perturbation Selectors_full Generators_CAS Davidson diff --git a/plugins/CAS_SD/README.rst b/plugins/CAS_SD/README.rst deleted file mode 100644 index 20ffa64f..00000000 --- a/plugins/CAS_SD/README.rst +++ /dev/null @@ -1,295 +0,0 @@ -====================== -CAS_SD_selected Module -====================== - -Selected CAS + SD module. - -1) Set the different MO classes using the ``qp_set_mo_class`` command -2) Run the selected CAS+SD program - -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -`full_ci `_ - Undocumented - - -`h_apply_cas_sd `_ - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -`h_apply_cas_sd_diexc `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_monoexc `_ - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_pt2 `_ - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -`h_apply_cas_sd_pt2_diexc `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_pt2_monoexc `_ - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_selected `_ - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -`h_apply_cas_sd_selected_diexc `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_selected_monoexc `_ - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_selected_no_skip `_ - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -`h_apply_cas_sd_selected_no_skip_diexc `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_cas_sd_selected_no_skip_monoexc `_ - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - -Needed Modules -============== - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -.. image:: tree_dependency.png - -* `Perturbation `_ -* `Selectors_full `_ -* `Generators_CAS `_ - -Needed Modules -============== -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. - - -.. image:: tree_dependency.png - -* `Perturbation `_ -* `Selectors_full `_ -* `Generators_CAS `_ -* `Davidson `_ - -Documentation -============= -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. - - -`full_ci `_ - Undocumented - - -h_apply_cas_s - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_s_diexc - Undocumented - - -h_apply_cas_s_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_s_diexcp - Undocumented - - -h_apply_cas_s_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_s_pt2 - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_s_pt2_diexc - Undocumented - - -h_apply_cas_s_pt2_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_s_pt2_diexcp - Undocumented - - -h_apply_cas_s_pt2_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_s_selected - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_s_selected_diexc - Undocumented - - -h_apply_cas_s_selected_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_s_selected_diexcp - Undocumented - - -h_apply_cas_s_selected_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_sd_diexc - Undocumented - - -h_apply_cas_sd_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_diexcp - Undocumented - - -h_apply_cas_sd_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_pt2 - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_sd_pt2_diexc - Undocumented - - -h_apply_cas_sd_pt2_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_pt2_diexcp - Undocumented - - -h_apply_cas_sd_pt2_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_selected - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_sd_selected_diexc - Undocumented - - -h_apply_cas_sd_selected_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_selected_diexcp - Undocumented - - -h_apply_cas_sd_selected_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_selected_no_skip - Calls H_apply on the HF determinant and selects all connected single and double - excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. - - -h_apply_cas_sd_selected_no_skip_diexc - Undocumented - - -h_apply_cas_sd_selected_no_skip_diexcorg - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -h_apply_cas_sd_selected_no_skip_diexcp - Undocumented - - -h_apply_cas_sd_selected_no_skip_monoexc - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - diff --git a/plugins/CAS_SD/cas_s.irp.f b/plugins/CAS_SD/cas_s.irp.f deleted file mode 100644 index c64bdcbc..00000000 --- a/plugins/CAS_SD/cas_s.irp.f +++ /dev/null @@ -1,92 +0,0 @@ -program full_ci - implicit none - integer :: i,k - integer :: N_det_old - - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - integer :: N_st, degree - N_st = N_states - allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st)) - character*(64) :: perturbation - PROVIDE N_det_cas - - N_det_old = 0 - pt2 = 1.d0 - diag_algorithm = "Lapack" - if (N_det > N_det_max) then - call diagonalize_CI - call save_wavefunction - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - 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.and.maxval(abs(pt2(1:N_st))) > pt2_max) - N_det_old = N_det - call H_apply_CAS_S(pt2, norm_pert, H_pert_diag, N_st) - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - 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 - endif - 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 *, '-----' - call ezfio_set_cas_sd_energy(CI_energy(1)) - if (N_det == N_det_old) then - exit - endif - enddo - call diagonalize_CI - - if(do_pt2_end)then - print*,'Last iteration only to compute the PT2' - threshold_selectors = 1.d0 - threshold_generators = 0.999d0 - call H_apply_CAS_S_PT2(pt2, norm_pert, H_pert_diag, N_st) - - print *, 'Final step' - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E = ', CI_energy - print *, 'E+PT2 = ', CI_energy+pt2 - print *, '-----' - call ezfio_set_cas_sd_energy_pt2(CI_energy(1)+pt2(1)) - endif - - - integer :: exc_max, degree_min - exc_max = 0 - print *, 'CAS determinants : ', N_det_cas - do i=1,min(N_det_cas,10) - do k=i,N_det_cas - call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int) - exc_max = max(exc_max,degree) - enddo - call debug_det(psi_cas(1,1,i),N_int) - print *, '' - enddo - print *, 'Max excitation degree in the CAS :', exc_max -end diff --git a/plugins/CAS_SD/cas_s_selected.irp.f b/plugins/CAS_SD/cas_s_selected.irp.f deleted file mode 100644 index 7c77b529..00000000 --- a/plugins/CAS_SD/cas_s_selected.irp.f +++ /dev/null @@ -1,123 +0,0 @@ -program full_ci - implicit none - integer :: i,k - - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - integer :: N_st, degree - N_st = N_states - allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st)) - character*(64) :: perturbation - PROVIDE N_det_cas - - pt2 = 1.d0 - diag_algorithm = "Lapack" - - if (N_det > N_det_max) then - call diagonalize_CI - call save_wavefunction - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - 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 - double precision :: i_H_psi_array(N_states),diag_H_mat_elem,h,i_O1_psi_array(N_states) - double precision :: E_CI_before(N_states) - if(read_wf)then - call i_H_psi(psi_det(1,1,N_det),psi_det,psi_coef,N_int,N_det,psi_det_size,N_states,i_H_psi_array) - h = diag_H_mat_elem(psi_det(1,1,N_det),N_int) - selection_criterion = dabs(psi_coef(N_det,1) * (i_H_psi_array(1) - h * psi_coef(N_det,1))) * 0.1d0 - soft_touch selection_criterion - endif - - - integer :: n_det_before - print*,'Beginning the selection ...' - E_CI_before(1:N_states) = CI_energy(1:N_states) - do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_st))) > pt2_max) - n_det_before = N_det - call H_apply_CAS_SD_selected(pt2, norm_pert, H_pert_diag, N_st) - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - call diagonalize_CI - - if (N_det > N_det_max) then - N_det = N_det_max - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - touch N_det psi_det psi_coef psi_det_sorted psi_coef_sorted psi_average_norm_contrib_sorted - endif - - - call save_wavefunction - if(n_det_before == N_det)then - selection_criterion = selection_criterion * 0.5d0 - endif - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - do k = 1, N_states - print*,'State ',k - print *, 'PT2 = ', pt2(k) - print *, 'E = ', CI_energy(k) - print *, 'E(before)+PT2 = ', E_CI_before(k)+pt2(k) - enddo - print *, '-----' - if(N_states.gt.1)then - print*,'Variational Energy difference' - do i = 2, N_states - print*,'Delta E = ',CI_energy(i) - CI_energy(1) - enddo - endif - if(N_states.gt.1)then - print*,'Variational + perturbative Energy difference' - do i = 2, N_states - print*,'Delta E = ',E_CI_before(i)+ pt2(i) - (E_CI_before(1) + pt2(1)) - enddo - endif - E_CI_before(1:N_states) = CI_energy(1:N_states) - call ezfio_set_cas_sd_energy(CI_energy(1)) - enddo - N_det = min(N_det_max,N_det) - touch N_det psi_det psi_coef - call diagonalize_CI - if(do_pt2_end)then - print*,'Last iteration only to compute the PT2' - threshold_selectors = 1.d0 - threshold_generators = 0.999d0 - call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st) - - print *, 'Final step' - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E = ', CI_energy(1:N_states) - print *, 'E+PT2 = ', CI_energy(1:N_states)+pt2(1:N_states) - print *, '-----' - call ezfio_set_cas_sd_energy_pt2(CI_energy(1)+pt2(1)) - endif - - integer :: exc_max, degree_min - exc_max = 0 - print *, 'CAS determinants : ', N_det_cas - do i=1,min(N_det_cas,10) - do k=i,N_det_cas - call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int) - exc_max = max(exc_max,degree) - enddo - print *, psi_coef_cas_diagonalized(i,:) - call debug_det(psi_cas(1,1,i),N_int) - print *, '' - enddo - print *, 'Max excitation degree in the CAS :', exc_max -end diff --git a/plugins/CAS_SD/cas_sd.irp.f b/plugins/CAS_SD/cas_sd.irp.f deleted file mode 100644 index e2e8cb1f..00000000 --- a/plugins/CAS_SD/cas_sd.irp.f +++ /dev/null @@ -1,123 +0,0 @@ -program full_ci - implicit none - integer :: i,k - - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - integer :: N_st, degree - N_st = N_states - allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st)) - character*(64) :: perturbation - PROVIDE N_det_cas - - pt2 = 1.d0 - diag_algorithm = "Lapack" - - if (N_det > N_det_max) then - call diagonalize_CI - call save_wavefunction - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - 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 - double precision :: i_H_psi_array(N_states),diag_H_mat_elem,h,i_O1_psi_array(N_states) - double precision :: E_CI_before(N_states) - if(read_wf)then - call i_H_psi(psi_det(1,1,N_det),psi_det,psi_coef,N_int,N_det,psi_det_size,N_states,i_H_psi_array) - h = diag_H_mat_elem(psi_det(1,1,N_det),N_int) - selection_criterion = dabs(psi_coef(N_det,1) * (i_H_psi_array(1) - h * psi_coef(N_det,1))) * 0.1d0 - soft_touch selection_criterion - endif - - - integer :: n_det_before - print*,'Beginning the selection ...' - E_CI_before(1:N_states) = CI_energy(1:N_states) - do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_st))) > pt2_max) - n_det_before = N_det - call H_apply_CAS_SD(pt2, norm_pert, H_pert_diag, N_st) - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - call diagonalize_CI - - if (N_det > N_det_max) then - N_det = N_det_max - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - touch N_det psi_det psi_coef psi_det_sorted psi_coef_sorted psi_average_norm_contrib_sorted - endif - - - call save_wavefunction - if(n_det_before == N_det)then - selection_criterion = selection_criterion * 0.5d0 - endif - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - do k = 1, N_states - print*,'State ',k - print *, 'PT2 = ', pt2(k) - print *, 'E = ', CI_energy(k) - print *, 'E(before)+PT2 = ', E_CI_before(k)+pt2(k) - enddo - print *, '-----' - if(N_states.gt.1)then - print*,'Variational Energy difference' - do i = 2, N_states - print*,'Delta E = ',CI_energy(i) - CI_energy(1) - enddo - endif - if(N_states.gt.1)then - print*,'Variational + perturbative Energy difference' - do i = 2, N_states - print*,'Delta E = ',E_CI_before(i)+ pt2(i) - (E_CI_before(1) + pt2(1)) - enddo - endif - E_CI_before(1:N_states) = CI_energy(1:N_states) - call ezfio_set_cas_sd_energy(CI_energy(1)) - enddo - N_det = min(N_det_max,N_det) - touch N_det psi_det psi_coef - call diagonalize_CI - if(do_pt2_end)then - print*,'Last iteration only to compute the PT2' - threshold_selectors = 1.d0 - threshold_generators = 0.999d0 - call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st) - - print *, 'Final step' - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E = ', CI_energy(1:N_states) - print *, 'E+PT2 = ', CI_energy(1:N_states)+pt2(1:N_states) - print *, '-----' - call ezfio_set_cas_sd_energy_pt2(CI_energy(1)+pt2(1)) - endif - - integer :: exc_max, degree_min - exc_max = 0 - print *, 'CAS determinants : ', N_det_cas - do i=1,min(N_det_cas,10) - do k=i,N_det_cas - call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int) - exc_max = max(exc_max,degree) - enddo - print *, psi_coef_cas_diagonalized(i,:) - call debug_det(psi_cas(1,1,i),N_int) - print *, '' - enddo - print *, 'Max excitation degree in the CAS :', exc_max -end diff --git a/plugins/CAS_SD/cas_sd_selected.irp.f b/plugins/CAS_SD/cas_sd_selected.irp.f deleted file mode 100644 index acca7dd8..00000000 --- a/plugins/CAS_SD/cas_sd_selected.irp.f +++ /dev/null @@ -1,123 +0,0 @@ -program full_ci - implicit none - integer :: i,k - - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - integer :: N_st, degree - N_st = N_states - allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st)) - character*(64) :: perturbation - PROVIDE N_det_cas - - pt2 = 1.d0 - diag_algorithm = "Lapack" - - if (N_det > N_det_max) then - call diagonalize_CI - call save_wavefunction - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - N_det = N_det_max - 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 - double precision :: i_H_psi_array(N_states),diag_H_mat_elem,h,i_O1_psi_array(N_states) - double precision :: E_CI_before(N_states) - if(read_wf)then - call i_H_psi(psi_det(1,1,N_det),psi_det,psi_coef,N_int,N_det,psi_det_size,N_states,i_H_psi_array) - h = diag_H_mat_elem(psi_det(1,1,N_det),N_int) - selection_criterion = dabs(psi_coef(N_det,1) * (i_H_psi_array(1) - h * psi_coef(N_det,1))) * 0.1d0 - soft_touch selection_criterion - endif - - - integer :: n_det_before - print*,'Beginning the selection ...' - E_CI_before(1:N_states) = CI_energy(1:N_states) - do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_st))) > pt2_max) - n_det_before = N_det - call H_apply_CAS_SD_selected(pt2, norm_pert, H_pert_diag, N_st) - - PROVIDE psi_coef - PROVIDE psi_det - PROVIDE psi_det_sorted - - call diagonalize_CI - - if (N_det > N_det_max) then - N_det = N_det_max - psi_det = psi_det_sorted - psi_coef = psi_coef_sorted - touch N_det psi_det psi_coef psi_det_sorted psi_coef_sorted psi_average_norm_contrib_sorted - endif - - - call save_wavefunction - if(n_det_before == N_det)then - selection_criterion = selection_criterion * 0.5d0 - endif - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - do k = 1, N_states - print*,'State ',k - print *, 'PT2 = ', pt2(k) - print *, 'E = ', CI_energy(k) - print *, 'E(before)+PT2 = ', E_CI_before(k)+pt2(k) - enddo - print *, '-----' - if(N_states.gt.1)then - print*,'Variational Energy difference' - do i = 2, N_states - print*,'Delta E = ',CI_energy(i) - CI_energy(1) - enddo - endif - if(N_states.gt.1)then - print*,'Variational + perturbative Energy difference' - do i = 2, N_states - print*,'Delta E = ',E_CI_before(i)+ pt2(i) - (E_CI_before(1) + pt2(1)) - enddo - endif - E_CI_before(1:N_states) = CI_energy(1:N_states) - call ezfio_set_cas_sd_energy(CI_energy(1)) - enddo - N_det = min(N_det_max,N_det) - touch N_det psi_det psi_coef - call diagonalize_CI - if(do_pt2_end)then - print*,'Last iteration only to compute the PT2' - threshold_selectors = max(threshold_selectors,threshold_selectors_pt2) - threshold_generators = max(threshold_generators,threshold_generators_pt2) - call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st) - - print *, 'Final step' - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E = ', CI_energy(1:N_states) - print *, 'E+PT2 = ', CI_energy(1:N_states)+pt2(1:N_states) - print *, '-----' - call ezfio_set_cas_sd_energy_pt2(CI_energy(1)+pt2(1)) - endif - - integer :: exc_max, degree_min - exc_max = 0 - print *, 'CAS determinants : ', N_det_cas - do i=1,min(N_det_cas,10) - do k=i,N_det_cas - call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int) - exc_max = max(exc_max,degree) - enddo - print *, psi_cas_coef(i,:) - call debug_det(psi_cas(1,1,i),N_int) - print *, '' - enddo - print *, 'Max excitation degree in the CAS :', exc_max -end diff --git a/plugins/CAS_SD/tree_dependency.png b/plugins/CAS_SD/tree_dependency.png deleted file mode 100644 index e53499c9c12d19c1b043514f8fc6202dd7a4a13f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111575 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

hY16=hM(bF9FvJ zJQApH-z?qlQw|77+txm2d^!o2m0>ao8xgb}w%oaUcke`dTZ`-d*hCnyGmr})U&zP^ zFP8E>kJ@h2OtSUVpy{v#ENVUo3#P9mCyb|63Z*{ezn5NP6j|?jjgUw9seJ9Z*{1)X zLE-t)Adk`^i;+Q}$j4PFbckp=#+yb|kAI%9Qs7m=A}LQ9mfNN<=9E6JN|Lrq-uQLP zGfaIhBn*%u7w0K)oioGU&LW;94OyFjxVHZQxQ1P~JwQyqoSO|c&Ow+_EblQ8z`3pJ z;lmVuGSZj!51VM1tgAEwKH(n&ek4zm_hI7o*g*h<(Ii4T{rhiW|LJhm^44TB6_Ytp zSY;|J11IN^%l<`{Wm{LCK5=4k)*}FW_851@QONtl{g`zuubmzqTJDY-R$wO(n$E%X zQ(^mL)MVpdv^~1|Is5SGwxGI^x*_4JKNfB|XKTCT+)krV^Ra91Rb5$rVQ%*epEjL$ zo>!84>Ec?q?)@YOj(Rygl9+Dm{=?BG_(N@gZua*d56W-*z$++%-XtqdR|o4Bvk z%SEpA)oQF+cqij<{2=!7tbo!RU)VLtEkJ8hUA-DBQYIDzcXV=Ef8z?hRJ?kyW-it_ zR%R-jWor@HjlLL((5*L<4&J>B^==%p41Y30^3kJBO^;})q?NfY`TEi0$B~pP|Ncn- zOo3*n;FMq$Weu@T{49#!-!xH_69TwdniT}a!c44uXkdgShdkgfI1s_CsJhrWuoCr6 zZm4Zg_7gpUjQ9y4-~GEy=CimsZCiFCqXJ{5tmQ5F%o)YxUS7JB(~VqQ%bQLtXwYus zhcaCC)#|iL?_N!}-54RshWl%K4`76t>*q5^I@eG#(hl)Di;df41F0TX7(9|8KcUT1 z*M=n~-&GSdoOETz6J^<#3xp5ER^W*qxChNaCVtec)FQ1Jk)GbY5b?O0%34G;EFWPwol)>qR2il;ACDin9e z-&-b{_lQy0DNEJMYkjjB46M)t<{6IV^bS7tZ?}p3XXwoCO)mTaiC$OSnV+rjSrfy5 zm%}rTK_>vFHT3R~r@H=d5xM+)iOPTpoPRtqHj9a@x>b*(38GB!0&X(Y?Kyq&@R9Ii z!mVv5)Y$Z!%ZQdS<9;^!S*AMRWvicD?q{hJS&W$i{hew{FKX{~1e!sz3yp{`Z@Ve# z-`=oi&jvU7eAaegyBL2!90L3#^&SF9(=-`soi4H=A7RY@a7I(WgSC>s03obfwW`;b z@uHXAlgm$%OduUuxiX@8R^82pX4+U}PLB%zgltzne+56MWrS{`eZxH3bP^#zmE>U{ zpz5Vs_tNjy|DS;*1SJ*{#M%MdZ+K)aGt+FT!2!V6V!_)uRwIxuuC~Ts2<$x5jWah9 z``u0b%L+wSC)sXM&+z#W&}DYZQxxX~1y(*l1d&eTI<>@PEiFeh01@93tr}$Yv!&bX zM!($rVH=1?_5PMIwt8SFDg#W?+Ni7x)qNA!uVmB|Xf#U(l7Y!Yh!>gVq7hc8n!m*L zW!=|bV>Wtj_;FWBrKe`>b$3(dzwp%X;Ky}r{?l(QN0}%<)8>9{j(nV-xEa<0WKY znrH#i49QHg`jn*$MmjNGXAJ5$UTDS|8B=f6r1%TZ1A?ixZmmS|ODaG>)zZ*-xMu4J zk^Lw(x!&~`jU*75lfec-CUN2EiqT}~|nyqW*tR+%>iwrZ6 zj1)o;bw@(QmvM$ucfnB4a&|VuZN9ZsO*Z(OsCyU5WcCp^B!D+$p@R8S#g`FcPqSr< z2kBpl)^%XpSH!lnwmIYGpij=$L^uEB$)@7RjwZtc=p1DsfP~mXJ2VLQNE)%}!2441xx916pe6J~EHlrhaD�IYBo0>n4G~T(9OerHQAQ9JG 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

wPWS?~P^%t?POHL0J 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 MnJ)Hc?K~p>4?X+1R{#J2 diff --git a/plugins/Perturbation/EZFIO.cfg b/plugins/Perturbation/EZFIO.cfg index 5a6ff5f7..43b375cf 100644 --- a/plugins/Perturbation/EZFIO.cfg +++ b/plugins/Perturbation/EZFIO.cfg @@ -1,6 +1,6 @@ -[do_pt2_end] +[do_pt2] type: logical -doc: If true, compute the PT2 at the end of the selection +doc: If true, compute the PT2 interface: ezfio,provider,ocaml default: True diff --git a/plugins/Selectors_CASSD/NEEDED_CHILDREN_MODULES b/plugins/Selectors_CASSD/NEEDED_CHILDREN_MODULES deleted file mode 100644 index 8b137891..00000000 --- a/plugins/Selectors_CASSD/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ - diff --git a/plugins/Selectors_CASSD/README.rst b/plugins/Selectors_CASSD/README.rst deleted file mode 100644 index 19b4ec2b..00000000 --- a/plugins/Selectors_CASSD/README.rst +++ /dev/null @@ -1,12 +0,0 @@ -=============== -Selectors_CASSD -=============== - -Needed Modules -============== -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. -Documentation -============= -.. Do not edit this section It was auto-generated -.. by the `update_README.py` script. diff --git a/plugins/Selectors_CASSD/selectors.irp.f b/plugins/Selectors_CASSD/selectors.irp.f deleted file mode 100644 index 31a8ab4f..00000000 --- a/plugins/Selectors_CASSD/selectors.irp.f +++ /dev/null @@ -1,95 +0,0 @@ -use bitmasks - -BEGIN_PROVIDER [ integer, psi_selectors_size ] - implicit none - psi_selectors_size = psi_det_size -END_PROVIDER - -BEGIN_PROVIDER [ integer, N_det_selectors] - implicit none - BEGIN_DOC - ! For Single reference wave functions, the number of selectors is 1 : the - ! Hartree-Fock determinant - END_DOC - N_det_selectors = N_det -END_PROVIDER - - BEGIN_PROVIDER [ integer(bit_kind), psi_selectors, (N_int,2,psi_selectors_size) ] -&BEGIN_PROVIDER [ double precision, psi_selectors_coef, (psi_selectors_size,N_states) ] - implicit none - BEGIN_DOC - ! Determinants on which we apply for perturbation. - END_DOC - integer :: i, k, l, m - logical :: good - - do i=1,N_det_generators - do k=1,N_int - psi_selectors(k,1,i) = psi_det_generators(k,1,i) - psi_selectors(k,2,i) = psi_det_generators(k,2,i) - enddo - enddo - do k=1,N_states - do i=1,N_det_generators - psi_selectors_coef(i,k) = psi_coef_generators(i,k) - enddo - enddo - - m=N_det_generators - - do i=1,N_det - do l=1,n_cas_bitmask - good = .True. - do k=1,N_int - good = good .and. ( & - iand(not(cas_bitmask(k,1,l)), psi_det_sorted(k,1,i)) == & - iand(not(cas_bitmask(k,1,l)), HF_bitmask(k,1)) .and. ( & - iand(not(cas_bitmask(k,2,l)), psi_det_sorted(k,2,i)) == & - iand(not(cas_bitmask(k,2,l)), HF_bitmask(k,2) )) ) - enddo - if (good) then - exit - endif - enddo - if (.not.good) then - m = m+1 - do k=1,N_int - psi_selectors(k,1,m) = psi_det_sorted(k,1,i) - psi_selectors(k,2,m) = psi_det_sorted(k,2,i) - enddo - psi_selectors_coef(m,:) = psi_coef_sorted(i,:) - endif - enddo - if (N_det /= m) then - print *, N_det, m - stop 'N_det /= m' - endif -END_PROVIDER - -BEGIN_PROVIDER [ double precision, psi_selectors_coef_transp, (N_states,psi_selectors_size) ] - implicit none - BEGIN_DOC - ! Transposed psi_selectors - END_DOC - integer :: i,k - - do i=1,N_det_selectors - do k=1,N_states - psi_selectors_coef_transp(k,i) = psi_selectors_coef(i,k) - enddo - enddo -END_PROVIDER - -BEGIN_PROVIDER [ double precision, psi_selectors_diag_h_mat, (psi_selectors_size) ] - implicit none - BEGIN_DOC - ! Diagonal elements of the H matrix for each selectors - END_DOC - integer :: i - double precision :: diag_H_mat_elem - do i = 1, N_det_selectors - psi_selectors_diag_h_mat(i) = diag_H_mat_elem(psi_selectors(1,1,i),N_int) - enddo -END_PROVIDER - - diff --git a/plugins/Selectors_CASSD/zmq.irp.f b/plugins/Selectors_CASSD/zmq.irp.f deleted file mode 100644 index 2d4987d3..00000000 --- a/plugins/Selectors_CASSD/zmq.irp.f +++ /dev/null @@ -1,121 +0,0 @@ -subroutine zmq_put_psi(zmq_to_qp_run_socket,worker_id, energy, size_energy) - use f77_zmq - implicit none - BEGIN_DOC -! Put the wave function on the qp_run scheduler - END_DOC - integer(ZMQ_PTR), intent(in) :: zmq_to_qp_run_socket - integer, intent(in) :: worker_id - integer, intent(in) :: size_energy - double precision, intent(out) :: energy(size_energy) - integer :: rc - integer*8 :: rc8 - character*(256) :: msg - - write(msg,*) 'put_psi ', worker_id, N_states, N_det, psi_det_size, n_det_generators, n_det_selectors - - rc = f77_zmq_send(zmq_to_qp_run_socket,trim(msg),len(trim(msg)),ZMQ_SNDMORE) - if (rc /= len(trim(msg))) then - print *, 'f77_zmq_send(zmq_to_qp_run_socket,trim(msg),len(trim(msg)),ZMQ_SNDMORE)' - stop 'error' - endif - - rc8 = f77_zmq_send8(zmq_to_qp_run_socket,psi_det,N_int*2_8*N_det*bit_kind,ZMQ_SNDMORE) - if (rc8 /= N_int*2_8*N_det*bit_kind) then - print *, 'f77_zmq_send8(zmq_to_qp_run_socket,psi_det,N_int*2_8*N_det*bit_kind,ZMQ_SNDMORE)' - stop 'error' - endif - - rc8 = f77_zmq_send8(zmq_to_qp_run_socket,psi_coef,psi_det_size*N_states*8_8,ZMQ_SNDMORE) - if (rc8 /= psi_det_size*N_states*8_8) then - print *, 'f77_zmq_send8(zmq_to_qp_run_socket,psi_coef,psi_det_size*N_states*8_8,ZMQ_SNDMORE)' - stop 'error' - endif - - rc = f77_zmq_send(zmq_to_qp_run_socket,energy,size_energy*8,0) - if (rc /= size_energy*8) then - print *, 'f77_zmq_send(zmq_to_qp_run_socket,energy,size_energy*8,0)' - stop 'error' - endif - - rc = f77_zmq_recv(zmq_to_qp_run_socket,msg,len(msg),0) - if (msg(1:rc) /= 'put_psi_reply 1') then - print *, rc, trim(msg) - print *, 'Error in put_psi_reply' - stop 'error' - endif - -end - - - -subroutine zmq_get_psi(zmq_to_qp_run_socket, worker_id, energy, size_energy) - use f77_zmq - implicit none - BEGIN_DOC -! Get the wave function from the qp_run scheduler - END_DOC - integer(ZMQ_PTR), intent(in) :: zmq_to_qp_run_socket - integer, intent(in) :: worker_id - integer, intent(in) :: size_energy - double precision, intent(out) :: energy(size_energy) - integer :: rc - integer*8 :: rc8 - character*(64) :: msg - - write(msg,*) 'get_psi ', worker_id - - rc = f77_zmq_send(zmq_to_qp_run_socket,trim(msg),len(trim(msg)),0) - if (rc /= len(trim(msg))) then - print *, 'f77_zmq_send(zmq_to_qp_run_socket,trim(msg),len(trim(msg)),0)' - stop 'error' - endif - - rc = f77_zmq_recv(zmq_to_qp_run_socket,msg,len(msg),0) - if (msg(1:13) /= 'get_psi_reply') then - print *, rc, trim(msg) - print *, 'Error in get_psi_reply' - stop 'error' - endif - - integer :: N_states_read, N_det_read, psi_det_size_read - integer :: N_det_selectors_read, N_det_generators_read - read(msg(14:rc),*) N_states_read, N_det_read, psi_det_size_read, & - N_det_generators_read, N_det_selectors_read - - N_states = N_states_read - N_det = N_det_read - psi_det_size = psi_det_size_read - TOUCH psi_det_size N_det N_states - - rc8 = f77_zmq_recv8(zmq_to_qp_run_socket,psi_det,N_int*2_8*N_det*bit_kind,0) - if (rc8 /= N_int*2_8*N_det*bit_kind) then - print *, 'f77_zmq_recv(zmq_to_qp_run_socket,psi_det,N_int*2*N_det*bit_kind,ZMQ_SNDMORE)' - stop 'error' - endif - - rc8 = f77_zmq_recv8(zmq_to_qp_run_socket,psi_coef,psi_det_size*N_states*8_8,0) - if (rc8 /= psi_det_size*N_states*8_8) then - print *, '77_zmq_recv8(zmq_to_qp_run_socket,psi_coef,psi_det_size*N_states*8_8,ZMQ_SNDMORE)' - stop 'error' - endif - TOUCH psi_det psi_coef - - rc = f77_zmq_recv(zmq_to_qp_run_socket,energy,size_energy*8,0) - if (rc /= size_energy*8) then - print *, '77_zmq_recv(zmq_to_qp_run_socket,energy,size_energy*8,0)' - stop 'error' - endif - - if (N_det_generators_read > 0) then - N_det_generators = N_det_generators_read - TOUCH N_det_generators - endif - if (N_det_selectors_read > 0) then - N_det_selectors = N_det_selectors_read - TOUCH N_det_selectors - endif - -end - -