From 0c9d9b50dde547d92ca511e99f1c3cfdece6d5ba Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 11 May 2015 15:50:39 +0200 Subject: [PATCH] Move do_pseudo --- scripts/pseudo/put_pseudo_in_ezfio.py | 2 +- src/MonoInts/EZFIO.cfg | 6 - src/MonoInts/Makefile | 6 +- src/MonoInts/NEEDED_CHILDREN_MODULES | 2 +- .../pot_ao_pseudo_ints.irp.f} | 107 ++++++++++++++++++ .../int.f90 => MonoInts/pseudopot.f90} | 0 src/NEEDED_MODULES | 2 +- src/Pseudo/EZFIO.cfg | 7 ++ src/Pseudo_integrals/ASSUMPTIONS.rst | 0 src/Pseudo_integrals/EZFIO.cfg | 5 - src/Pseudo_integrals/Makefile | 6 - src/Pseudo_integrals/NEEDED_CHILDREN_MODULES | 1 - src/Pseudo_integrals/README.rst | 31 ----- 13 files changed, 120 insertions(+), 55 deletions(-) delete mode 100644 src/MonoInts/EZFIO.cfg rename src/{Pseudo_integrals/pot_ao_ints_pseudo.irp.f => MonoInts/pot_ao_pseudo_ints.irp.f} (51%) rename src/{Pseudo_integrals/int.f90 => MonoInts/pseudopot.f90} (100%) delete mode 100644 src/Pseudo_integrals/ASSUMPTIONS.rst delete mode 100644 src/Pseudo_integrals/EZFIO.cfg delete mode 100644 src/Pseudo_integrals/Makefile delete mode 100644 src/Pseudo_integrals/NEEDED_CHILDREN_MODULES delete mode 100644 src/Pseudo_integrals/README.rst diff --git a/scripts/pseudo/put_pseudo_in_ezfio.py b/scripts/pseudo/put_pseudo_in_ezfio.py index 40d6d045..98641a18 100755 --- a/scripts/pseudo/put_pseudo_in_ezfio.py +++ b/scripts/pseudo/put_pseudo_in_ezfio.py @@ -335,4 +335,4 @@ if __name__ == "__main__": ezfio.pseudo_pseudo_n_kl = zip(*n_kl) ezfio.pseudo_pseudo_dz_kl = zip(*dz_kl) - ezfio.pseudo_integrals_do_pseudo = True + ezfio.pseudo_do_pseudo = True diff --git a/src/MonoInts/EZFIO.cfg b/src/MonoInts/EZFIO.cfg deleted file mode 100644 index 33a8d619..00000000 --- a/src/MonoInts/EZFIO.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[do_pseudo] -type: logical -doc: Using pseudo potential integral of not -interface: input -default: False - diff --git a/src/MonoInts/Makefile b/src/MonoInts/Makefile index b1f3b02c..abe31fed 100644 --- a/src/MonoInts/Makefile +++ b/src/MonoInts/Makefile @@ -1,6 +1,6 @@ # Define here all new external source files and objects.Don't forget to prefix the # object files with IRPF90_temp/ -SRC= -OBJ= +SRC=pseudopot.f90 +OBJ=IRPF90_temp/pseudopot.o -include $(QPACKAGE_ROOT)/src/Makefile.common \ No newline at end of file +include $(QPACKAGE_ROOT)/src/Makefile.common diff --git a/src/MonoInts/NEEDED_CHILDREN_MODULES b/src/MonoInts/NEEDED_CHILDREN_MODULES index be46a359..31cf3c24 100644 --- a/src/MonoInts/NEEDED_CHILDREN_MODULES +++ b/src/MonoInts/NEEDED_CHILDREN_MODULES @@ -1 +1 @@ -MOs Pseudo_integrals +MOs Pseudo diff --git a/src/Pseudo_integrals/pot_ao_ints_pseudo.irp.f b/src/MonoInts/pot_ao_pseudo_ints.irp.f similarity index 51% rename from src/Pseudo_integrals/pot_ao_ints_pseudo.irp.f rename to src/MonoInts/pot_ao_pseudo_ints.irp.f index 857614e0..6d1a1cba 100644 --- a/src/Pseudo_integrals/pot_ao_ints_pseudo.irp.f +++ b/src/MonoInts/pot_ao_pseudo_ints.irp.f @@ -110,3 +110,110 @@ END_PROVIDER deallocate(n_k_dump,v_k_dump, dz_k_dump) END_PROVIDER + + + BEGIN_PROVIDER [ double precision, pseudo_integral_non_local, (ao_num_align,ao_num)] + implicit none + BEGIN_DOC +! Local pseudo-potential + END_DOC + double precision :: alpha, beta, gama, delta + integer :: num_A,num_B + double precision :: A_center(3),B_center(3),C_center(3) + integer :: power_A(3),power_B(3) + integer :: i,j,k,l,n_pt_in,m + double precision :: Vloc, Vpseudo + + double precision :: cpu_1, cpu_2, wall_1, wall_2, wall_0 + integer :: thread_num + + pseudo_integral_non_local = 0.d0 + + !! Dump array + integer, allocatable :: n_kl_dump(:,:) + double precision, allocatable :: v_kl_dump(:,:), dz_kl_dump(:,:) + + allocate(n_kl_dump(pseudo_kmax,0:pseudo_lmax), v_kl_dump(pseudo_kmax,0:pseudo_lmax), dz_kl_dump(pseudo_kmax,0:pseudo_lmax)) + + ! _ + ! / _. | _ | + ! \_ (_| | (_ |_| | + ! + + write(output_monoints,*) 'Providing the nuclear electron pseudo integrals ' + + call wall_time(wall_1) + call cpu_time(cpu_1) + + !$OMP PARALLEL & + !$OMP DEFAULT (NONE) & + !$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,C_center,power_A,power_B, & + !$OMP num_A,num_B,Z,c,n_pt_in, & + !$OMP n_kl_dump, v_kl_dump, dz_kl_dump, & + !$OMP wall_0,wall_2,thread_num, output_monoints) & + !$OMP SHARED (ao_num,ao_prim_num,ao_expo_ordered_transp,ao_power,ao_nucl,nucl_coord,ao_coef_normalized_ordered_transp, & + !$OMP pseudo_integral_non_local,nucl_num,nucl_charge, & + !$OMP pseudo_klocmax,pseudo_lmax,pseudo_kmax,pseudo_n_kl, pseudo_v_kl, pseudo_dz_kl, & + !$OMP wall_1) + + !$OMP DO SCHEDULE (guided) + + do j = 1, ao_num + + num_A = ao_nucl(j) + power_A(1:3)= ao_power(j,1:3) + A_center(1:3) = nucl_coord(num_A,1:3) + + do i = 1, ao_num + + num_B = ao_nucl(i) + power_B(1:3)= ao_power(i,1:3) + B_center(1:3) = nucl_coord(num_B,1:3) + + do l=1,ao_prim_num(j) + alpha = ao_expo_ordered_transp(l,j) + + do m=1,ao_prim_num(i) + beta = ao_expo_ordered_transp(m,i) + double precision :: c + c = 0.d0 + + do k = 1, nucl_num + double precision :: Z + Z = nucl_charge(k) + + C_center(1:3) = nucl_coord(k,1:3) + + n_kl_dump = pseudo_n_kl(k,1:pseudo_kmax,0:pseudo_lmax) + v_kl_dump = pseudo_v_kl(k,1:pseudo_kmax,0:pseudo_lmax) + dz_kl_dump = pseudo_dz_kl(k,1:pseudo_kmax,0:pseudo_lmax) + + c = c + Vpseudo(pseudo_lmax,pseudo_kmax,v_kl_dump,n_kl_dump,dz_kl_dump,A_center,power_A,alpha,B_center,power_B,beta,C_center) + + enddo + pseudo_integral_non_local(i,j) = pseudo_integral_non_local(i,j) + & + ao_coef_normalized_ordered_transp(l,j)*ao_coef_normalized_ordered_transp(m,i)*c + enddo + enddo + enddo + + call wall_time(wall_2) + if (thread_num == 0) then + if (wall_2 - wall_0 > 1.d0) then + wall_0 = wall_2 + write(output_monoints,*) 100.*float(j)/float(ao_num), '% in ', & + wall_2-wall_1, 's' + endif + endif + enddo + + !$OMP END DO + !$OMP END PARALLEL + + + deallocate(n_kl_dump,v_kl_dump, dz_kl_dump) + + + END_PROVIDER + + diff --git a/src/Pseudo_integrals/int.f90 b/src/MonoInts/pseudopot.f90 similarity index 100% rename from src/Pseudo_integrals/int.f90 rename to src/MonoInts/pseudopot.f90 diff --git a/src/NEEDED_MODULES b/src/NEEDED_MODULES index 4fc01a26..f933d925 100644 --- a/src/NEEDED_MODULES +++ b/src/NEEDED_MODULES @@ -1 +1 @@ -AOs Bielec_integrals Bitmask CID CID_SC2_selected CID_selected CIS CISD CISD_selected CISD_SC2_selected Determinants Electrons Ezfio_files Full_CI Generators_full Hartree_Fock MOGuess MonoInts MOs MP2 Nuclei Output Selectors_full Utils Molden FCIdump Generators_CAS CAS_SD DDCI_selected MRCC Pseudo_integrals Pseudo +AOs Bielec_integrals Bitmask CID CID_SC2_selected CID_selected CIS CISD CISD_selected CISD_SC2_selected Determinants Electrons Ezfio_files Full_CI Generators_full Hartree_Fock MOGuess MonoInts MOs MP2 Nuclei Output Selectors_full Utils Molden FCIdump Generators_CAS CAS_SD DDCI_selected MRCC Pseudo diff --git a/src/Pseudo/EZFIO.cfg b/src/Pseudo/EZFIO.cfg index bf6714b4..8a6afa2c 100644 --- a/src/Pseudo/EZFIO.cfg +++ b/src/Pseudo/EZFIO.cfg @@ -48,3 +48,10 @@ doc: test type: double precision interface: input_without_default size: (nuclei.nucl_num,pseudo.pseudo_kmax,0:pseudo.pseudo_lmax) + +[do_pseudo] +type: logical +doc: Using pseudo potential integral of not +interface: input +default: False + diff --git a/src/Pseudo_integrals/ASSUMPTIONS.rst b/src/Pseudo_integrals/ASSUMPTIONS.rst deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Pseudo_integrals/EZFIO.cfg b/src/Pseudo_integrals/EZFIO.cfg deleted file mode 100644 index f56bc325..00000000 --- a/src/Pseudo_integrals/EZFIO.cfg +++ /dev/null @@ -1,5 +0,0 @@ -[do_pseudo] -type: logical -doc: Using pseudo potential integral of not -interface: input -default: False \ No newline at end of file diff --git a/src/Pseudo_integrals/Makefile b/src/Pseudo_integrals/Makefile deleted file mode 100644 index 5cf11b78..00000000 --- a/src/Pseudo_integrals/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# Define here all new external source files and objects.Don't forget to prefix the -# object files with IRPF90_temp/ -SRC=int.f90 -OBJ=IRPF90_temp/int.o - -include $(QPACKAGE_ROOT)/src/Makefile.common diff --git a/src/Pseudo_integrals/NEEDED_CHILDREN_MODULES b/src/Pseudo_integrals/NEEDED_CHILDREN_MODULES deleted file mode 100644 index 4ac9b92b..00000000 --- a/src/Pseudo_integrals/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ -AOs Electrons Pseudo diff --git a/src/Pseudo_integrals/README.rst b/src/Pseudo_integrals/README.rst deleted file mode 100644 index d7af3283..00000000 --- a/src/Pseudo_integrals/README.rst +++ /dev/null @@ -1,31 +0,0 @@ -======================= -Pseudo_integrals Module -======================= - -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. NEEDED_MODULES file. - -`ao_nucl_elec_integral_pseudo `_ - Pseudo-potential integrals (local + non-local) - -`ao_nucl_elec_integral_pseudo_local `_ - interaction nuclear electron - -`ao_nucl_elec_integral_pseudo_non_local `_ - interaction nuclear electron - - - -Needed Modules -============== - -.. Do not edit this section. It was auto-generated from the -.. NEEDED_MODULES file. - -* `AOs `_ -* `Electrons `_ -* `Pseudo `_ -