From 9ee34037add7abc7fd223e6b34f82fd8c2c33737 Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Tue, 18 Dec 2018 19:03:29 +0100 Subject: [PATCH 01/22] added becke_numerical_grid/example.irp.f --- src/becke_numerical_grid/example.irp.f | 71 +++++++++++++++++++ src/becke_numerical_grid/grid_becke.irp.f | 1 - ...d_points.irp.f => grid_becke_vector.irp.f} | 0 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/becke_numerical_grid/example.irp.f rename src/becke_numerical_grid/{selected_points.irp.f => grid_becke_vector.irp.f} (100%) diff --git a/src/becke_numerical_grid/example.irp.f b/src/becke_numerical_grid/example.irp.f new file mode 100644 index 00000000..32f6990a --- /dev/null +++ b/src/becke_numerical_grid/example.irp.f @@ -0,0 +1,71 @@ +subroutine example_becke_numerical_grid + implicit none + include 'constants.include.F' + BEGIN_DOC +! subroutine that illustrates the main features available in becke_numerical_grid + END_DOC + integer :: i,j,k,ipoint + double precision :: integral_1, integral_2,alpha,center(3) + print*,'' + print*,'**************' + print*,'**************' + print*,'routine that illustrates the use of the grid' + print*,'**************' + print*,'This grid is built as the reunion of a spherical grid around each atom' + print*,'Each spherical grid contains a certain number of radial and angular points' + print*,'' + print*,'n_points_integration_angular = ',n_points_integration_angular + print*,'n_points_radial_grid = ',n_points_radial_grid + print*,'' + print*,'As an example of the use of the grid, we will compute the integral of a 3D gaussian' + ! parameter of the gaussian: center of the gaussian is set to the first nucleus + center(1:3)=nucl_coord(1,1:3) + ! alpha = exponent of the gaussian + alpha = 1.d0 + + print*,'' + print*,'The first example uses the grid points as one-dimensional array' + print*,'This is the mostly used representation of the grid' + print*,'It is the easyest way to use it with no drawback in terms of accuracy' + integral_1 = 0.d0 + ! you browse all the grid points as a one-dimensional array + do i = 1, n_points_final_grid + double precision :: weight, r(3) + ! you get x, y and z of the ith grid point + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + weight = final_weight_functions_at_final_grid_points(i) + double precision :: distance, f_r + ! you compute the function to be integrated + distance = dsqrt( (r(1) - center(1))**2 + (r(2) - center(2))**2 + (r(3) - center(3))**2 ) + f_r = dexp(-alpha * distance) + ! you add the contribution of the grid point to the integral + integral_1 += f_r * weight + enddo + print*,'integral_1 =',integral_1 + print*,'(pi/alpha)**1.5 =',(pi / alpha)**1.5 + print*,'' + print*,'' + print*,'The second example uses the grid points as a collection of spherical grids centered on each atom' + print*,'This is mostly useful if one needs to split contributions between radial/angular/atomic of an integral' + ! you browse the nuclei + do i = 1, nucl_num + ! you browse the radial points attached to each nucleus + do j = 1, n_points_radial_grid + ! you browse the angular points attached to each radial point of each nucleus + do k = 1, n_points_integration_angular + r(1) = grid_points_per_atom(1,k,j,i) + r(2) = grid_points_per_atom(2,k,j,i) + r(3) = grid_points_per_atom(3,k,j,i) + weight = final_weight_functions_at_grid_points(k,j,i) + distance = dsqrt( (r(1) - center(1))**2 + (r(2) - center(2))**2 + (r(3) - center(3))**2 ) + f_r = dexp(-alpha * distance) + integral_2 += f_r * weight + enddo + enddo + enddo + print*,'integral_2 =',integral_2 + print*,'(pi/alpha)**1.5 =',(pi / alpha)**1.5 + print*,'' +end diff --git a/src/becke_numerical_grid/grid_becke.irp.f b/src/becke_numerical_grid/grid_becke.irp.f index 1159a9f8..9b268cba 100644 --- a/src/becke_numerical_grid/grid_becke.irp.f +++ b/src/becke_numerical_grid/grid_becke.irp.f @@ -158,7 +158,6 @@ BEGIN_PROVIDER [double precision, weight_functions_at_grid_points, & enddo accu = 1.d0/accu weight_functions_at_grid_points(l,k,j) = tmp_array(j) * accu -! print*,weight_functions_at_grid_points(l,k,j) enddo enddo enddo diff --git a/src/becke_numerical_grid/selected_points.irp.f b/src/becke_numerical_grid/grid_becke_vector.irp.f similarity index 100% rename from src/becke_numerical_grid/selected_points.irp.f rename to src/becke_numerical_grid/grid_becke_vector.irp.f From a750ed71ccef07b36764d1259b46db3ea503ec65 Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Tue, 18 Dec 2018 19:05:32 +0100 Subject: [PATCH 02/22] added exemples for determinants and bitmask --- .../{example.irp.f => exemple.irp.f} | 0 src/bitmask/exemple.irp.f | 81 +++++++++ src/determinants/exemple.irp.f | 165 ++++++++++++++++++ 3 files changed, 246 insertions(+) rename src/becke_numerical_grid/{example.irp.f => exemple.irp.f} (100%) create mode 100644 src/bitmask/exemple.irp.f create mode 100644 src/determinants/exemple.irp.f diff --git a/src/becke_numerical_grid/example.irp.f b/src/becke_numerical_grid/exemple.irp.f similarity index 100% rename from src/becke_numerical_grid/example.irp.f rename to src/becke_numerical_grid/exemple.irp.f diff --git a/src/bitmask/exemple.irp.f b/src/bitmask/exemple.irp.f new file mode 100644 index 00000000..7800e556 --- /dev/null +++ b/src/bitmask/exemple.irp.f @@ -0,0 +1,81 @@ +subroutine example_bitmask + use bitmasks ! you need to include the bitmasks_module.f90 features + implicit none + BEGIN_DOC +! subroutine that illustrates the main features available in bitmask + END_DOC + integer :: i,j + print*,'' + print*,'**************' + print*,'**************' + print*,'MO class: to set the various type of MO class, see the following exectuable' + print*,'qp_set_mo_class' + print*,'**************' + print*,'number of core orbitals = ',n_core_orb + print*,'list of the core orbitals ' + do i = 1, n_core_orb + write(*,'(2(I3,X))')i,list_core(i) + enddo + + print*,'number of inact orbitals = ',n_inact_orb + print*,'list of the inact orbitals ' + do i = 1, n_inact_orb + write(*,'(2(I3,X))')i,list_inact(i) + enddo + + print*,'number of act orbitals = ',n_act_orb + print*,'list of the act orbitals ' + do i = 1, n_act_orb + write(*,'(2(I3,X))')i,list_act(i) + enddo + + print*,'number of virt orbitals = ',n_virt_orb + print*,'list of the virt orbitals ' + do i = 1, n_virt_orb + write(*,'(2(I3,X))')i,list_virt(i) + enddo + print*,'' + print*,'**************' + print*,'**************' + print*,'manipulating bitstrings (usefull for determinant representation)' + print*,'**************' + integer(bit_kind), allocatable :: key(:) + print*,'Size of the integers used to represent all the orbitals ' + print*,'bit_kind = ',bit_kind + print*,'Number of bits in the integers ',bit_kind_size + print*,'Number of integers to represent all the orbitals on integer' + print*,'N_int = ',N_int + allocate(key(N_int)) + print*,'**** ' + print*,' initialize a bistring to zero ' + do i = 1, N_int + key(i) = 0_bit_kind + enddo + print*,'print a human readable representation of the bitstring' + call bitstring_to_str( output, key, N_int ) + print *, trim(output) + integer :: i_orb + character*(2048) :: output + + do i_orb = 1, min(4,mo_tot_num) ! you set the first four bits to 1 in key + call set_bit_to_integer(i_orb,key,N_int) + enddo + print*,'print a human readable representation of the bitstring' + call bitstring_to_str( output, key, N_int ) + print *, trim(output) + print*,'' + integer :: n_elements + integer, allocatable :: list_occ(:) + allocate(list_occ(N_int*bit_kind_size)) + call bitstring_to_list( key, list_occ, n_elements, N_int) + print*,'number of bits set to 1 = ',n_elements + print*,'list of bits set to 1 ' + do i = 1, n_elements + write(*,'(2(I3,X))')i,list_occ(i) + enddo + call clear_bit_to_integer(2,key,N_int) ! you set to 0 the second bit + print*,'print a human readable representation of the bitstring' + call bitstring_to_str( output, key, N_int ) + print *, trim(output) + +end diff --git a/src/determinants/exemple.irp.f b/src/determinants/exemple.irp.f new file mode 100644 index 00000000..24b52232 --- /dev/null +++ b/src/determinants/exemple.irp.f @@ -0,0 +1,165 @@ +subroutine example_determinants + use bitmasks ! you need to include the bitmasks_module.f90 features + implicit none + BEGIN_DOC +! subroutine that illustrates the main features available in determinants + END_DOC + print*,'a determinant is stored as a binary representation of the occupancy of the spatial orbitals' + print*,'see the bitmask module for more information about that ' + print*,'a spin determinant is an array of (N_int) integers of type bit_kind (see bitmask for more information)' + print*,'A determinant containing alpha and beta electrons is an array of dimension (2,N_int)' + integer(bit_kind), allocatable :: det_i(:,:) + allocate(det_i(N_int,2)) + print*,'det_i(1,:) alpha spins ' + print*,'det_i(2,:) beta spins ' + integer :: i,j + print*,'initialize det_i to an electron occupation corresponding RHF or ROHF: ref_bitmask ' + do i = 1, N_int + det_i(i,1) = ref_bitmask(i,1) + det_i(i,2) = ref_bitmask(i,2) + enddo + print*,'' + print*,'print a human readable representation of the determinant ' + call print_det(det_i,N_int) + print*,'doing a single excitation on top of det_i' + integer :: h1,p1,s1,i_ok + h1 = 1 + p1 = elec_alpha_num + 1 + s1 = 1 + print*,'h1 --> p1 of spin s1' + print*,'i_ok == +1 : excitation is possible ' + print*,'i_ok == -1 : excitation is NOT possible ' + call do_mono_excitation(det_i,h1,p1,s1,i_ok) + print*,'h1,p1,s1,i_ok' + print*, h1,p1,s1,i_ok + if(i_ok == -1)then + print*,'excitation was not possible ' + stop + endif + call debug_det(det_i,N_int) + print*,'computing the interaction between ref_determinant and det_i ' + double precision :: h0i,hii,h00 + call i_H_j(det_i,det_i,N_int,h0i) + print*,' < ref | H | det_i > = ',h0i + print*,'computing the diagonal Hamiltonian matrix element of det_i ' + call i_H_j(ref_bitmask,det_i,N_int,hii) + print*,'< det_i | H | det_i > = ',hii + print*,'computing the first-order coefficient of det_i with H0=EN ' + double precision :: c_i + call i_H_j(ref_bitmask,ref_bitmask,N_int,h00) + c_i = h0i/(h00 - hii) + print*,'c_i^{(1)} = ',c_i + print*,'' + print*,'doing another single excitation on top of det_i' + h1 = elec_alpha_num + p1 = elec_alpha_num + 1 + s1 = 2 + call do_mono_excitation(det_i,h1,p1,s1,i_ok) + print*,'h1,p1,s1,i_ok' + print*, h1,p1,s1,i_ok + call i_H_j(det_i,det_i,N_int,h0i) + print*,' < ref | H | det_i > = ',h0i + print*,'computing the diagonal Hamiltonian matrix element of det_i ' + call i_H_j(ref_bitmask,ref_bitmask,N_int,h00) + c_i = h0i/(h00 - hii) + print*,'c_i^{(1)} = ',c_i + print*,'' + print*,'Finding the excitation degree between two arbitrary determinants ' + integer :: exc(0:2,2,2) + double precision :: phase + integer :: h2,p2,s2,degree + call get_excitation_degree(ref_bitmask,det_i,degree,N_int) + print*,'degree = ',degree + print*,'Finding the differences in terms of holes and particles, together with the fermionic phase ' + call get_excitation(ref_bitmask,det_i,exc,degree,phase,N_int) + print*,'Fermionic phase for the excitation from ref_bitmask to det_i' + print*,phase + print*,'put the excitation information in a human readable format' + call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2) + print*,'s1',s1 + print*,'h1,p1 = ',h1,p1 + print*,'s2',s2 + print*,'h2,p2 = ',h2,p2 + print*,'' + print*,'Finding the occupancy of det_i' + integer, allocatable :: occ(:,:) + integer :: n_occ_ab(2) + allocate(occ(N_int*bit_kind_size,2)) + call bitstring_to_list_ab(det_i, occ, n_occ_ab, N_int) + print*,'alpha electrons orbital occupancy' + do i = 1, n_occ_ab(1) ! browsing the alpha electrons + print*,occ(i,1) + enddo + print*,'beta electrons orbital occupancy' + do i = 1, n_occ_ab(2) ! browsing the beta electrons + print*,occ(i,2) + enddo +end + + +subroutine example_determinants_psi_det + use bitmasks ! you need to include the bitmasks_module.f90 features + implicit none + BEGIN_DOC +! subroutine that illustrates the main features available in determinants using the psi_det/psi_coef + END_DOC + read_wf = .True. + touch read_wf + ! you force the wave function to be set to the one in the EZFIO folder + call routine_example_psi_det +end + +subroutine routine_example_psi_det + use bitmasks ! you need to include the bitmasks_module.f90 features + implicit none + BEGIN_DOC +! subroutine that illustrates the main features available in determinants using many determinants + END_DOC + integer :: i,j + integer, allocatable :: degree_list(:) + integer, allocatable :: idx(:) + allocate(degree_list(N_det),idx(0:N_det)) + + print*,'Number of determinants in the wave function' + print*,'N_det = ',N_det + print*,'' + print*,'Printing in a human readable format all Slater determinants ' + do i = 1, N_det + call debug_det(psi_det(1,1,i),N_int) + enddo + print*,'' + print*,'Number of states computed ' + print*,'N_states = ',N_states + print*,'Printing the coefficients for all states for all Slater determinants ' + do j = 1, N_states + print*,'State = ',j + do i = 1, N_det + write(*,'(I9,X,F16.10)')i,psi_coef(i,j) + enddo + enddo + print*,'' + print*,'Finding the connection through a bielectronic operator in the wave function' + print*,'You want to know the connections of the first determinant ' + ! wave function determinant exc degree list + call get_excitation_degree_vector( psi_det , psi_det(1,1,1),degree_list,N_int,N_det,idx) + double precision :: hij + double precision, allocatable :: i_H_psi(:) + allocate(i_H_psi(N_states)) + i_H_psi = 0.d0 + print*,'Computing = \sum_I c_I ' + do i = 1, idx(0) ! number of Slater determinants connected to the first one + print*,'Determinant connected' + call debug_det(psi_det(1,1,idx(i)),N_int) + print*,'excitation degree = ',degree_list(i) + call i_H_j(psi_det(1,1,1) , psi_det(1,1,idx(i)),hij,N_int) + do j = 1, N_states + i_H_psi(j) += hij * psi_coef(idx(i),j) + enddo + enddo + print*,'i_H_psi = ',i_H_psi +end + + + + + From bc39df1a0163ad49d721a980dbd8955cfc0c200a Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Tue, 18 Dec 2018 19:56:00 +0100 Subject: [PATCH 03/22] added density_for_dft, dft_keywords and data_energy_and_density --- src/ao_one_e_integrals/pot_ao_erf_ints.irp.f | 368 ++++++++++++++++++ src/becke_numerical_grid/README.rst | 9 +- .../{exemple.irp.f => example.irp.f} | 0 src/bitmask/bitmasks_routines.irp.f | 31 ++ src/bitmask/{exemple.irp.f => example.irp.f} | 0 src/data_energy_and_density/EZFIO.cfg | 26 ++ src/data_energy_and_density/NEED | 1 + src/data_energy_and_density/README.rst | 6 + .../save_one_body_dm.irp.f | 20 + src/density_for_dft/NEED | 3 + src/density_for_dft/README.rst | 4 + src/density_for_dft/density_for_dft.irp.f | 77 ++++ src/determinants/connected_to_ref.irp.f | 36 +- src/determinants/create_excitations.irp.f | 23 -- .../{exemple.irp.f => example.irp.f} | 0 src/determinants/excitations_utils.irp.f | 16 - src/dft_keywords/EZFIO.cfg | 37 ++ src/dft_keywords/NEED | 1 + src/dft_keywords/README.rst | 7 + src/dft_keywords/keywords.irp.f | 19 + 20 files changed, 638 insertions(+), 46 deletions(-) create mode 100644 src/ao_one_e_integrals/pot_ao_erf_ints.irp.f rename src/becke_numerical_grid/{exemple.irp.f => example.irp.f} (100%) rename src/bitmask/{exemple.irp.f => example.irp.f} (100%) create mode 100644 src/data_energy_and_density/EZFIO.cfg create mode 100644 src/data_energy_and_density/NEED create mode 100644 src/data_energy_and_density/README.rst create mode 100644 src/data_energy_and_density/save_one_body_dm.irp.f create mode 100644 src/density_for_dft/NEED create mode 100644 src/density_for_dft/README.rst create mode 100644 src/density_for_dft/density_for_dft.irp.f rename src/determinants/{exemple.irp.f => example.irp.f} (100%) delete mode 100644 src/determinants/excitations_utils.irp.f create mode 100644 src/dft_keywords/EZFIO.cfg create mode 100644 src/dft_keywords/NEED create mode 100644 src/dft_keywords/README.rst create mode 100644 src/dft_keywords/keywords.irp.f diff --git a/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f b/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f new file mode 100644 index 00000000..d076609c --- /dev/null +++ b/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f @@ -0,0 +1,368 @@ +subroutine give_all_erf_kl_ao(integrals_ao,mu_in,C_center) + implicit none + BEGIN_DOC +! subroutine that returs all integrals over r of type erf(mu_in * |r-C_center|)/|r-C_center| + END_DOC + double precision, intent(in) :: mu_in,C_center(3) + double precision, intent(out) :: integrals_ao(ao_num,ao_num) + double precision :: NAI_pol_mult_erf_ao + integer :: i,j,l,k,m + do k = 1, ao_num + do m = 1, ao_num + integrals_ao(m,k) = NAI_pol_mult_erf_ao(m,k,mu_in,C_center) + enddo + enddo +end + + +double precision function NAI_pol_mult_erf_ao(i_ao,j_ao,mu_in,C_center) + implicit none + BEGIN_DOC + ! computes the following integral : + ! int[-infty;+infty] dr AO_i_ao (r) AO_j_ao(r) erf(mu_in * |r-C_center|)/|r-C_center| + END_DOC + integer, intent(in) :: i_ao,j_ao + double precision, intent(in) :: mu_in, C_center(3) + integer :: i,j,num_A,num_B, power_A(3), power_B(3), n_pt_in + double precision :: A_center(3), B_center(3),integral, alpha,beta, NAI_pol_mult_erf + num_A = ao_nucl(i_ao) + power_A(1:3)= ao_power(i_ao,1:3) + A_center(1:3) = nucl_coord(num_A,1:3) + num_B = ao_nucl(j_ao) + power_B(1:3)= ao_power(j_ao,1:3) + B_center(1:3) = nucl_coord(num_B,1:3) + n_pt_in = n_pt_max_integrals + NAI_pol_mult_erf_ao = 0.d0 + do i = 1, ao_prim_num(i_ao) + alpha = ao_expo_ordered_transp(i,i_ao) + do j = 1, ao_prim_num(j_ao) + beta = ao_expo_ordered_transp(j,j_ao) + integral = NAI_pol_mult_erf(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in,mu_in) + NAI_pol_mult_erf_ao += integral * ao_coef_normalized_ordered_transp(j,j_ao)*ao_coef_normalized_ordered_transp(i,i_ao) + enddo + enddo + + + +end + + + +double precision function NAI_pol_mult_erf(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in,mu_in) +! function that computes the folowing integral : +! int{dr} of (x-A_x)^ax (x-B_X)^bx exp(-alpha (x-A_x)^2 - beta (x-B_x)^2 ) erf(mu_in*(r-R_c))/(r-R_c) + +implicit none +integer, intent(in) :: n_pt_in +double precision,intent(in) :: C_center(3),A_center(3),B_center(3),alpha,beta,mu_in +integer, intent(in) :: power_A(3),power_B(3) +integer :: i,j,k,l,n_pt +double precision :: P_center(3) + +double precision :: d(0:n_pt_in),pouet,coeff,dist,const,pouet_2,factor +double precision :: I_n_special_exact,integrate_bourrin,I_n_bibi +double precision :: V_e_n,const_factor,dist_integral,tmp +double precision :: accu,rint,p_inv,p,rho,p_inv_2 +integer :: n_pt_out,lmax +include 'Utils/constants.include.F' + p = alpha + beta + p_inv = 1.d0/p + p_inv_2 = 0.5d0 * p_inv + rho = alpha * beta * p_inv + + dist = 0.d0 + dist_integral = 0.d0 + do i = 1, 3 + P_center(i) = (alpha * A_center(i) + beta * B_center(i)) * p_inv + dist += (A_center(i) - B_center(i))*(A_center(i) - B_center(i)) + dist_integral += (P_center(i) - C_center(i))*(P_center(i) - C_center(i)) + enddo + const_factor = dist*rho + if(const_factor > 80.d0)then + NAI_pol_mult_erf = 0.d0 + return + endif + double precision :: p_new + p_new = mu_in/dsqrt(p+ mu_in * mu_in) + factor = dexp(-const_factor) + coeff = dtwo_pi * factor * p_inv * p_new + lmax = 20 + + ! print*, "b" + do i = 0, n_pt_in + d(i) = 0.d0 + enddo + n_pt = 2 * ( (power_A(1) + power_B(1)) +(power_A(2) + power_B(2)) +(power_A(3) + power_B(3)) ) + const = p * dist_integral * p_new * p_new + if (n_pt == 0) then + pouet = rint(0,const) + NAI_pol_mult_erf = coeff * pouet + return + endif + +! call give_polynom_mult_center_mono_elec_erf(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in) + p_new = p_new * p_new + call give_polynom_mult_center_mono_elec_erf_opt(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in,p,p_inv,p_inv_2,p_new,P_center) + + + if(n_pt_out<0)then + NAI_pol_mult_erf = 0.d0 + return + endif + accu = 0.d0 + +! sum of integrals of type : int {t,[0,1]} exp-(rho.(P-Q)^2 * t^2) * t^i + do i =0 ,n_pt_out,2 + accu += d(i) * rint(i/2,const) + enddo + NAI_pol_mult_erf = accu * coeff + +end + + +subroutine give_polynom_mult_center_mono_elec_erf_opt(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in,p,p_inv,p_inv_2,p_new,P_center) +!!!! subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw :: +!!!! I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) +!!!! it is for the nuclear electron atraction +implicit none +integer, intent(in) :: n_pt_in +integer,intent(out) :: n_pt_out +double precision, intent(in) :: A_center(3), B_center(3),C_center(3),p,p_inv,p_inv_2,p_new,P_center(3) +double precision, intent(in) :: alpha,beta,mu_in +integer, intent(in) :: power_A(3), power_B(3) +integer :: a_x,b_x,a_y,b_y,a_z,b_z +double precision :: d(0:n_pt_in) +double precision :: d1(0:n_pt_in) +double precision :: d2(0:n_pt_in) +double precision :: d3(0:n_pt_in) +double precision :: accu + accu = 0.d0 +!COMPTEUR irp_rdtsc1 = irp_rdtsc() + ASSERT (n_pt_in > 1) + + double precision :: R1x(0:2), B01(0:2), R1xp(0:2),R2x(0:2) + R1x(0) = (P_center(1) - A_center(1)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(1) - C_center(1))* p_new + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(1) - B_center(1)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(1) - C_center(1))* p_new + !R1xp = (P_x - B_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R2x(0) = p_inv_2 + R2x(1) = 0.d0 + R2x(2) = -p_inv_2* p_new + !R2x = 0.5 / p - 0.5/p ( t * mu/sqrt(p+mu^2) )^2 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + do i = 0,n_pt_in + d1(i) = 0.d0 + enddo + do i = 0,n_pt_in + d2(i) = 0.d0 + enddo + do i = 0,n_pt_in + d3(i) = 0.d0 + enddo + integer :: n_pt1,n_pt2,n_pt3,dim,i + n_pt1 = n_pt_in + n_pt2 = n_pt_in + n_pt3 = n_pt_in + a_x = power_A(1) + b_x = power_B(1) + call I_x1_pol_mult_mono_elec(a_x,b_x,R1x,R1xp,R2x,d1,n_pt1,n_pt_in) +! print*,'passed the first I_x1' + if(n_pt1<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + + R1x(0) = (P_center(2) - A_center(2)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(2) - C_center(2))* p_new + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(2) - B_center(2)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(2) - C_center(2))* p_new + !R1xp = (P_x - B_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + a_y = power_A(2) + b_y = power_B(2) + call I_x1_pol_mult_mono_elec(a_y,b_y,R1x,R1xp,R2x,d2,n_pt2,n_pt_in) +! print*,'passed the second I_x1' + if(n_pt2<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + + + R1x(0) = (P_center(3) - A_center(3)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(3) - C_center(3))* p_new + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(3) - B_center(3)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(3) - C_center(3))* p_new + !R2x = 0.5 / p - 0.5/p ( t * mu/sqrt(p+mu^2) )^2 + a_z = power_A(3) + b_z = power_B(3) + +! print*,'a_z = ',a_z +! print*,'b_z = ',b_z + call I_x1_pol_mult_mono_elec(a_z,b_z,R1x,R1xp,R2x,d3,n_pt3,n_pt_in) +! print*,'passed the third I_x1' + if(n_pt3<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + integer :: n_pt_tmp + n_pt_tmp = 0 + call multiply_poly(d1,n_pt1,d2,n_pt2,d,n_pt_tmp) + do i = 0,n_pt_tmp + d1(i) = 0.d0 + enddo + n_pt_out = 0 + call multiply_poly(d ,n_pt_tmp ,d3,n_pt3,d1,n_pt_out) + do i = 0, n_pt_out + d(i) = d1(i) + enddo + +end + + + + +subroutine give_polynom_mult_center_mono_elec_erf(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out,mu_in) +!!!! subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw :: +!!!! I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) +!!!! it is for the nuclear electron atraction +implicit none +integer, intent(in) :: n_pt_in +integer,intent(out) :: n_pt_out +double precision, intent(in) :: A_center(3), B_center(3),C_center(3) +double precision, intent(in) :: alpha,beta,mu_in +integer, intent(in) :: power_A(3), power_B(3) +integer :: a_x,b_x,a_y,b_y,a_z,b_z +double precision :: d(0:n_pt_in) +double precision :: d1(0:n_pt_in) +double precision :: d2(0:n_pt_in) +double precision :: d3(0:n_pt_in) +double precision :: accu, pq_inv, p10_1, p10_2, p01_1, p01_2 +double precision :: p,P_center(3),rho,p_inv,p_inv_2 + accu = 0.d0 +!COMPTEUR irp_rdtsc1 = irp_rdtsc() + ASSERT (n_pt_in > 1) + p = alpha+beta + p_inv = 1.d0/p + p_inv_2 = 0.5d0/p + do i =1, 3 + P_center(i) = (alpha * A_center(i) + beta * B_center(i)) * p_inv + enddo + + double precision :: R1x(0:2), B01(0:2), R1xp(0:2),R2x(0:2) + R1x(0) = (P_center(1) - A_center(1)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(1) - C_center(1))* mu_in**2 / (p+mu_in*mu_in) + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(1) - B_center(1)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(1) - C_center(1))* mu_in**2 / (p+mu_in*mu_in) + !R1xp = (P_x - B_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R2x(0) = p_inv_2 + R2x(1) = 0.d0 + R2x(2) = -p_inv_2* mu_in**2 / (p+mu_in*mu_in) + !R2x = 0.5 / p - 0.5/p ( t * mu/sqrt(p+mu^2) )^2 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + do i = 0,n_pt_in + d1(i) = 0.d0 + enddo + do i = 0,n_pt_in + d2(i) = 0.d0 + enddo + do i = 0,n_pt_in + d3(i) = 0.d0 + enddo + integer :: n_pt1,n_pt2,n_pt3,dim,i + n_pt1 = n_pt_in + n_pt2 = n_pt_in + n_pt3 = n_pt_in + a_x = power_A(1) + b_x = power_B(1) + call I_x1_pol_mult_mono_elec(a_x,b_x,R1x,R1xp,R2x,d1,n_pt1,n_pt_in) +! print*,'passed the first I_x1' + if(n_pt1<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + + R1x(0) = (P_center(2) - A_center(2)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(2) - C_center(2))* mu_in**2 / (p+mu_in*mu_in) + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(2) - B_center(2)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(2) - C_center(2))* mu_in**2 / (p+mu_in*mu_in) + !R1xp = (P_x - B_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + a_y = power_A(2) + b_y = power_B(2) + call I_x1_pol_mult_mono_elec(a_y,b_y,R1x,R1xp,R2x,d2,n_pt2,n_pt_in) +! print*,'passed the second I_x1' + if(n_pt2<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + + + R1x(0) = (P_center(3) - A_center(3)) + R1x(1) = 0.d0 + R1x(2) = -(P_center(3) - C_center(3))* mu_in**2 / (p+mu_in*mu_in) + ! R1x = (P_x - A_x) - (P_x - C_x) ( t * mu/sqrt(p+mu^2) )^2 + R1xp(0) = (P_center(3) - B_center(3)) + R1xp(1) = 0.d0 + R1xp(2) =-(P_center(3) - C_center(3))* mu_in**2 / (p+mu_in*mu_in) + !R2x = 0.5 / p - 0.5/p ( t * mu/sqrt(p+mu^2) )^2 + a_z = power_A(3) + b_z = power_B(3) + +! print*,'a_z = ',a_z +! print*,'b_z = ',b_z + call I_x1_pol_mult_mono_elec(a_z,b_z,R1x,R1xp,R2x,d3,n_pt3,n_pt_in) +! print*,'passed the third I_x1' + if(n_pt3<0)then + n_pt_out = -1 + do i = 0,n_pt_in + d(i) = 0.d0 + enddo + return + endif + integer :: n_pt_tmp + n_pt_tmp = 0 + call multiply_poly(d1,n_pt1,d2,n_pt2,d,n_pt_tmp) + do i = 0,n_pt_tmp + d1(i) = 0.d0 + enddo + n_pt_out = 0 + call multiply_poly(d ,n_pt_tmp ,d3,n_pt3,d1,n_pt_out) + do i = 0, n_pt_out + d(i) = d1(i) + enddo + +end + diff --git a/src/becke_numerical_grid/README.rst b/src/becke_numerical_grid/README.rst index 43434514..a860eef4 100644 --- a/src/becke_numerical_grid/README.rst +++ b/src/becke_numerical_grid/README.rst @@ -2,7 +2,14 @@ Becke Numerical Grid ==================== -Lebedev-Laikov grids, using the code distributed through CCL (http://www.ccl.net/). +This module contains all quantities needed to build the Becke's grid used in general for DFT integration. Note that it can be used for whatever integration in R^3 as long as the functions to be integrated are mostly concentrated near the atomic regions. + +This grid is built as the reunion of a spherical grid around each atom. Each spherical grid contains a certain number of radial and angular points. + +For a simple example of how to use the grid, see example.irp.f. + +The spherical integration uses Lebedev-Laikov grids, which was used from the code distributed through CCL (http://www.ccl.net/). +See next section for explanations and citation policies. .. code-block:: text diff --git a/src/becke_numerical_grid/exemple.irp.f b/src/becke_numerical_grid/example.irp.f similarity index 100% rename from src/becke_numerical_grid/exemple.irp.f rename to src/becke_numerical_grid/example.irp.f diff --git a/src/bitmask/bitmasks_routines.irp.f b/src/bitmask/bitmasks_routines.irp.f index 34fb244c..97d8ec15 100644 --- a/src/bitmask/bitmasks_routines.irp.f +++ b/src/bitmask/bitmasks_routines.irp.f @@ -1,3 +1,34 @@ +subroutine set_bit_to_integer(i_physical,key,Nint) + use bitmasks + BEGIN_DOC + ! set to 1 the bit number i_physical in the bitstring key + END_DOC + implicit none + integer, intent(in) :: i_physical,Nint + integer(bit_kind), intent(inout) :: key(Nint) + integer :: k,j,i + k = ishft(i_physical-1,-bit_kind_shift)+1 + j = i_physical-ishft(k-1,bit_kind_shift)-1 + key(k) = ibset(key(k),j) +end + + +subroutine clear_bit_to_integer(i_physical,key,Nint) + use bitmasks + BEGIN_DOC + ! set to 0 the bit number i_physical in the bitstring key + END_DOC + implicit none + integer, intent(in) :: i_physical,Nint + integer(bit_kind), intent(inout) :: key(Nint) + integer :: k,j,i + k = ishft(i_physical-1,-bit_kind_shift)+1 + j = i_physical-ishft(k-1,bit_kind_shift)-1 + key(k) = ibclr(key(k),j) +end + + + subroutine bitstring_to_list( string, list, n_elements, Nint) use bitmasks implicit none diff --git a/src/bitmask/exemple.irp.f b/src/bitmask/example.irp.f similarity index 100% rename from src/bitmask/exemple.irp.f rename to src/bitmask/example.irp.f diff --git a/src/data_energy_and_density/EZFIO.cfg b/src/data_energy_and_density/EZFIO.cfg new file mode 100644 index 00000000..7126f257 --- /dev/null +++ b/src/data_energy_and_density/EZFIO.cfg @@ -0,0 +1,26 @@ +[data_energy_var] +type: double precision +doc: Variational energy computed with the wave function +interface: ezfio, provider +size: (determinants.n_states) + +[data_energy_proj] +type: double precision +doc: Projected energy computed with the wave function +interface: ezfio, provider +size: (determinants.n_states) + +[data_one_body_alpha_dm_mo] +interface: ezfio, provider +doc: Alpha one body density matrix on the MO basis computed with the wave function +type: double precision +size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num,determinants.n_states) + + +[data_one_body_beta_dm_mo] +interface: ezfio, provider +doc: Beta one body density matrix on the MO basis computed with the wave function +type: double precision +size: (mo_basis.mo_tot_num,mo_basis.mo_tot_num,determinants.n_states) + + diff --git a/src/data_energy_and_density/NEED b/src/data_energy_and_density/NEED new file mode 100644 index 00000000..d3d4d2c7 --- /dev/null +++ b/src/data_energy_and_density/NEED @@ -0,0 +1 @@ +determinants diff --git a/src/data_energy_and_density/README.rst b/src/data_energy_and_density/README.rst new file mode 100644 index 00000000..8654090e --- /dev/null +++ b/src/data_energy_and_density/README.rst @@ -0,0 +1,6 @@ +============ +Data energy and density +============ + + +This module contains some global variables (such as densities and energies) which are stored in the EZFIO folder in a different place than determinants. This is used in practice to store density matrices which can be obtained from any methods, as long as they are stored in the same MO basis which is used for the calculations. In |RS-DFT| calculations, this can be done to perform damping on the density in order to speed up convergence. diff --git a/src/data_energy_and_density/save_one_body_dm.irp.f b/src/data_energy_and_density/save_one_body_dm.irp.f new file mode 100644 index 00000000..7d65e901 --- /dev/null +++ b/src/data_energy_and_density/save_one_body_dm.irp.f @@ -0,0 +1,20 @@ +program save_one_body_dm + implicit none + BEGIN_DOC +! programs that computes the one body density on the mo basis for alpha and beta electrons from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder data_energy_and_density. +! +! Then, the global variable data_one_body_alpha_dm_mo and data_one_body_beta_dm_mo will automatically read the density in a further calculation. +! +! This can be used to perform dampin on the density in RS-DFT calculation (see the density_for_dft module). + END_DOC + read_wf = .True. + touch read_wf + call routine + +end + +subroutine routine + + call ezfio_set_data_energy_and_density_data_one_body_alpha_dm_mo(one_body_dm_mo_alpha) + call ezfio_set_data_energy_and_density_data_one_body_beta_dm_mo(one_body_dm_mo_beta) +end diff --git a/src/density_for_dft/NEED b/src/density_for_dft/NEED new file mode 100644 index 00000000..80fba7c9 --- /dev/null +++ b/src/density_for_dft/NEED @@ -0,0 +1,3 @@ +determinants +dft_keywords +data_energy_and_density diff --git a/src/density_for_dft/README.rst b/src/density_for_dft/README.rst new file mode 100644 index 00000000..4019f77f --- /dev/null +++ b/src/density_for_dft/README.rst @@ -0,0 +1,4 @@ +========== +DM_for_dft +========== + diff --git a/src/density_for_dft/density_for_dft.irp.f b/src/density_for_dft/density_for_dft.irp.f new file mode 100644 index 00000000..b106ca0b --- /dev/null +++ b/src/density_for_dft/density_for_dft.irp.f @@ -0,0 +1,77 @@ +BEGIN_PROVIDER [double precision, one_body_dm_mo_alpha_for_dft, (mo_tot_num,mo_tot_num, N_states)] + implicit none + BEGIN_DOC +! density matrix for alpha electrons in the MO basis used for all DFT calculations based on the density + END_DOC + double precision :: delta_alpha(mo_tot_num,mo_tot_num,N_states) + if(density_for_dft .EQ. "damping_rs_dft")then + delta_alpha = one_body_dm_mo_alpha - data_one_body_alpha_dm_mo + one_body_dm_mo_alpha_for_dft = data_one_body_alpha_dm_mo + damping_for_rs_dft * delta_alpha + else if (density_for_dft .EQ. "input_density")then + one_body_dm_mo_alpha_for_dft = data_one_body_alpha_dm_mo + else if (density_for_dft .EQ. "WFT")then + provide mo_coef + one_body_dm_mo_alpha_for_dft = one_body_dm_mo_alpha + endif + +END_PROVIDER + +BEGIN_PROVIDER [double precision, one_body_dm_mo_beta_for_dft, (mo_tot_num,mo_tot_num, N_states)] + implicit none + BEGIN_DOC +! density matrix for beta electrons in the MO basis used for all DFT calculations based on the density + END_DOC + double precision :: delta_beta(mo_tot_num,mo_tot_num,N_states) + if(density_for_dft .EQ. "damping_rs_dft")then + delta_beta = one_body_dm_mo_beta - data_one_body_beta_dm_mo + one_body_dm_mo_beta_for_dft = data_one_body_beta_dm_mo + damping_for_rs_dft * delta_beta + else if (density_for_dft .EQ. "input_density")then + one_body_dm_mo_beta_for_dft = data_one_body_beta_dm_mo + else if (density_for_dft .EQ. "WFT")then + provide mo_coef + one_body_dm_mo_beta_for_dft = one_body_dm_mo_beta + endif +END_PROVIDER + +BEGIN_PROVIDER [double precision, one_body_dm_mo_for_dft, (mo_tot_num,mo_tot_num, N_states)] + implicit none + one_body_dm_mo_for_dft = one_body_dm_mo_beta_for_dft + one_body_dm_mo_alpha_for_dft +END_PROVIDER + +BEGIN_PROVIDER [double precision, one_body_dm_average_mo_for_dft, (mo_tot_num,mo_tot_num)] + implicit none + integer :: i + one_body_dm_average_mo_for_dft = 0.d0 + do i = 1, N_states + one_body_dm_average_mo_for_dft(:,:) += one_body_dm_mo_for_dft(:,:,i) * state_average_weight(i) + enddo +END_PROVIDER + + BEGIN_PROVIDER [ double precision, one_body_dm_alpha_ao_for_dft, (ao_num,ao_num,N_states) ] +&BEGIN_PROVIDER [ double precision, one_body_dm_beta_ao_for_dft, (ao_num,ao_num,N_states) ] + BEGIN_DOC +! one body density matrix on the AO basis based on one_body_dm_mo_alpha_for_dft + END_DOC + implicit none + integer :: i,j,k,l,istate + double precision :: mo_alpha,mo_beta + + one_body_dm_alpha_ao_for_dft = 0.d0 + one_body_dm_beta_ao_for_dft = 0.d0 + do k = 1, ao_num + do l = 1, ao_num + do i = 1, mo_tot_num + do j = 1, mo_tot_num + do istate = 1, N_states + mo_alpha = one_body_dm_mo_alpha_for_dft(j,i,istate) + mo_beta = one_body_dm_mo_beta_for_dft(j,i,istate) + one_body_dm_alpha_ao_for_dft(l,k,istate) += mo_coef(k,i) * mo_coef(l,j) * mo_alpha + one_body_dm_beta_ao_for_dft(l,k,istate) += mo_coef(k,i) * mo_coef(l,j) * mo_beta + enddo + enddo + enddo + enddo + enddo + +END_PROVIDER + diff --git a/src/determinants/connected_to_ref.irp.f b/src/determinants/connected_to_ref.irp.f index 1b19ba47..07a94f9d 100644 --- a/src/determinants/connected_to_ref.irp.f +++ b/src/determinants/connected_to_ref.irp.f @@ -249,9 +249,21 @@ integer function connected_to_ref(key,keys,Nint,N_past_in,Ndet) logical :: t double precision :: hij_elec - ! output : 0 : not connected - ! i : connected to determinant i of the past - ! -i : is the ith determinant of the reference wf keys + BEGIN_DOC + ! input : key : a given Slater determinant + ! + ! : keys: a list of Slater determinants + ! + ! : Ndet: the number of Slater determinants in keys + ! + ! : N_past_in the number of Slater determinants for the connectivity research + ! + ! output : 0 : key not connected to the N_past_in first Slater determinants in keys + ! + ! i : key is connected to determinant i of keys + ! + ! -i : key is the ith determinant of the reference wf keys + END_DOC ASSERT (Nint > 0) ASSERT (Nint == N_int) @@ -349,9 +361,21 @@ integer function connected_to_ref_by_mono(key,keys,Nint,N_past_in,Ndet) logical :: t double precision :: hij_elec - ! output : 0 : not connected - ! i : connected to determinant i of the past - ! -i : is the ith determinant of the refernce wf keys + BEGIN_DOC + ! input : key : a given Slater determinant + ! + ! : keys: a list of Slater determinants + ! + ! : Ndet: the number of Slater determinants in keys + ! + ! : N_past_in the number of Slater determinants for the connectivity research + ! + ! output : 0 : key not connected by a MONO EXCITATION to the N_past_in first Slater determinants in keys + ! + ! i : key is connected by a MONO EXCITATION to determinant i of keys + ! + ! -i : key is the ith determinant of the reference wf keys + END_DOC ASSERT (Nint > 0) ASSERT (Nint == N_int) diff --git a/src/determinants/create_excitations.irp.f b/src/determinants/create_excitations.irp.f index fbcf0984..8551d44a 100644 --- a/src/determinants/create_excitations.irp.f +++ b/src/determinants/create_excitations.irp.f @@ -65,26 +65,3 @@ logical function is_spin_flip_possible(key_in,i_flip,ispin) endif end -subroutine set_bit_to_integer(i_physical,key,Nint) - use bitmasks - implicit none - integer, intent(in) :: i_physical,Nint - integer(bit_kind), intent(inout) :: key(Nint) - integer :: k,j,i - k = shiftr(i_physical-1,bit_kind_shift)+1 - j = i_physical-shiftl(k-1,bit_kind_shift)-1 - key(k) = ibset(key(k),j) -end - - -subroutine clear_bit_to_integer(i_physical,key,Nint) - use bitmasks - implicit none - integer, intent(in) :: i_physical,Nint - integer(bit_kind), intent(inout) :: key(Nint) - integer :: k,j,i - k = shiftr(i_physical-1,bit_kind_shift)+1 - j = i_physical-shiftl(k-1,bit_kind_shift)-1 - key(k) = ibclr(key(k),j) -end - diff --git a/src/determinants/exemple.irp.f b/src/determinants/example.irp.f similarity index 100% rename from src/determinants/exemple.irp.f rename to src/determinants/example.irp.f diff --git a/src/determinants/excitations_utils.irp.f b/src/determinants/excitations_utils.irp.f deleted file mode 100644 index a40b5690..00000000 --- a/src/determinants/excitations_utils.irp.f +++ /dev/null @@ -1,16 +0,0 @@ -subroutine apply_mono(i_hole,i_particle,ispin_excit,key_in,Nint) - implicit none - integer, intent(in) :: i_hole,i_particle,ispin_excit,Nint - integer(bit_kind), intent(inout) :: key_in(Nint,2) - integer :: k,j - use bitmasks - ! hole - k = shiftr(i_hole-1,bit_kind_shift)+1 - j = i_hole-shiftl(k-1,bit_kind_shift)-1 - key_in(k,ispin_excit) = ibclr(key_in(k,ispin_excit),j) - - k = shiftr(i_particle-1,bit_kind_shift)+1 - j = i_particle-shiftl(k-1,bit_kind_shift)-1 - key_in(k,ispin_excit) = ibset(key_in(k,ispin_excit),j) - -end diff --git a/src/dft_keywords/EZFIO.cfg b/src/dft_keywords/EZFIO.cfg new file mode 100644 index 00000000..c2eb92e5 --- /dev/null +++ b/src/dft_keywords/EZFIO.cfg @@ -0,0 +1,37 @@ +[exchange_functional] +type: character*(32) +doc: name of the exchange functional +interface: ezfio, provider, ocaml +default: short_range_LDA + +[correlation_functional] +type: character*(32) +doc: name of the correlation functional +interface: ezfio, provider, ocaml +default: short_range_LDA + +[HF_exchange] +type: double precision +doc: Percentage of HF exchange in the DFT model +interface: ezfio,provider,ocaml +default: 0. + +[mu_erf] +type: double precision +doc: cutting of the interaction in the range separated model +interface: ezfio,provider,ocaml +default: 0.5 +ezfio_name: mu_erf + + +[density_for_dft] +type: character*(32) +doc: Type of density used for DFT calculation. If WFT it uses the density of the WFT stored in terms of determinants. If input_density it uses the one-body dm stored in data_.../ . If damping_rs_dft it uses the damping density between WFT and input_density +interface: ezfio, provider, ocaml +default: WFT + +[damping_for_rs_dft] +type: double precision +doc: damping factor for the density used in RSFT. +interface: ezfio,provider,ocaml +default: 0.5 diff --git a/src/dft_keywords/NEED b/src/dft_keywords/NEED new file mode 100644 index 00000000..5a3182ed --- /dev/null +++ b/src/dft_keywords/NEED @@ -0,0 +1 @@ +ezfio_files diff --git a/src/dft_keywords/README.rst b/src/dft_keywords/README.rst new file mode 100644 index 00000000..089420cc --- /dev/null +++ b/src/dft_keywords/README.rst @@ -0,0 +1,7 @@ +============ +DFT Keywords +============ + +This module contains all keywords which are related to a DFT calculation + + diff --git a/src/dft_keywords/keywords.irp.f b/src/dft_keywords/keywords.irp.f new file mode 100644 index 00000000..10769c28 --- /dev/null +++ b/src/dft_keywords/keywords.irp.f @@ -0,0 +1,19 @@ +BEGIN_PROVIDER [ character*(32), DFT_TYPE] + implicit none + BEGIN_DOC +! defines the type of DFT applied: LDA, GGA etc ... + END_DOC + logical :: is_lda + if(correlation_functional.eq."None")then + is_lda = (index(exchange_functional,"LDA") .ne. 0) + else if(exchange_functional.eq."None")then + is_lda = (index(correlation_functional,"LDA") .ne. 0) + else + is_lda = (index(correlation_functional,"LDA") .ne. 0) .and. (index(exchange_functional,"LDA") .ne. 0) + endif + if(is_lda)then + DFT_TYPE = "LDA" + else + DFT_TYPE = "GGA" + endif +END_PROVIDER From 430cbc91e24a04f6e9e7f21cbc0393e7b65cfecb Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Tue, 18 Dec 2018 20:32:32 +0100 Subject: [PATCH 04/22] added dft_utils_one_body --- src/dft_utils_on_grid/NEED | 6 + src/dft_utils_on_grid/ao_on_grid.irp.f | 77 ++ .../density_matrices_in_real_space.irp.f | 297 +++++ src/dft_utils_on_grid/mo_on_grid.irp.f | 56 + src/dft_utils_one_body/NEED | 4 + src/dft_utils_one_body/README.rst | 12 + .../e_c_e_x_and_potentials_mo.irp.f | 125 ++ src/dft_utils_one_body/exc_sr_lda.irp.f | 1007 +++++++++++++++++ src/dft_utils_one_body/exc_sr_pbe.irp.f | 477 ++++++++ .../one_body_psi_energy.irp.f | 29 + .../potentials_ao_on_grids.irp.f | 272 +++++ .../rho_ab_to_rho_tot_spin_dens_convert.irp.f | 74 ++ .../shifted_potential.irp.f | 16 + .../short_range_coulomb.irp.f | 118 ++ src/dft_utils_one_body/utils.irp.f | 51 + src/integrals_bielec_erf/EZFIO.cfg | 25 + src/integrals_bielec_erf/NEED | 5 + .../ao_bi_integrals_erf.irp.f | 649 +++++++++++ ...ao_bielec_integrals_erf_in_map_slave.irp.f | 194 ++++ .../integrals_3_index_erf.irp.f | 47 + .../map_integrals_erf.irp.f | 682 +++++++++++ .../mo_bi_integrals_erf.irp.f | 549 +++++++++ .../providers_ao_erf.irp.f | 125 ++ src/integrals_bielec_erf/qp_ao_erf_ints.irp.f | 32 + src/integrals_bielec_erf/read_write.irp.f | 47 + .../routines_save_integrals_erf.irp.f | 36 + .../write_integrals_erf.irp.f | 20 + ...e_integrals_erf_to_regular_integrals.irp.f | 21 + src/mo_basis/mos_in_r.irp.f | 55 + 29 files changed, 5108 insertions(+) create mode 100644 src/dft_utils_on_grid/NEED create mode 100644 src/dft_utils_on_grid/ao_on_grid.irp.f create mode 100644 src/dft_utils_on_grid/density_matrices_in_real_space.irp.f create mode 100644 src/dft_utils_on_grid/mo_on_grid.irp.f create mode 100644 src/dft_utils_one_body/NEED create mode 100644 src/dft_utils_one_body/README.rst create mode 100644 src/dft_utils_one_body/e_c_e_x_and_potentials_mo.irp.f create mode 100644 src/dft_utils_one_body/exc_sr_lda.irp.f create mode 100644 src/dft_utils_one_body/exc_sr_pbe.irp.f create mode 100644 src/dft_utils_one_body/one_body_psi_energy.irp.f create mode 100644 src/dft_utils_one_body/potentials_ao_on_grids.irp.f create mode 100644 src/dft_utils_one_body/rho_ab_to_rho_tot_spin_dens_convert.irp.f create mode 100644 src/dft_utils_one_body/shifted_potential.irp.f create mode 100644 src/dft_utils_one_body/short_range_coulomb.irp.f create mode 100644 src/dft_utils_one_body/utils.irp.f create mode 100644 src/integrals_bielec_erf/EZFIO.cfg create mode 100644 src/integrals_bielec_erf/NEED create mode 100644 src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f create mode 100644 src/integrals_bielec_erf/ao_bielec_integrals_erf_in_map_slave.irp.f create mode 100644 src/integrals_bielec_erf/integrals_3_index_erf.irp.f create mode 100644 src/integrals_bielec_erf/map_integrals_erf.irp.f create mode 100644 src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f create mode 100644 src/integrals_bielec_erf/providers_ao_erf.irp.f create mode 100644 src/integrals_bielec_erf/qp_ao_erf_ints.irp.f create mode 100644 src/integrals_bielec_erf/read_write.irp.f create mode 100644 src/integrals_bielec_erf/routines_save_integrals_erf.irp.f create mode 100644 src/integrals_bielec_erf/write_integrals_erf.irp.f create mode 100644 src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f create mode 100644 src/mo_basis/mos_in_r.irp.f diff --git a/src/dft_utils_on_grid/NEED b/src/dft_utils_on_grid/NEED new file mode 100644 index 00000000..c591b4c7 --- /dev/null +++ b/src/dft_utils_on_grid/NEED @@ -0,0 +1,6 @@ +dft_keywords +determinants +ao_basis +mo_basis +becke_numerical_grid +density_for_dft diff --git a/src/dft_utils_on_grid/ao_on_grid.irp.f b/src/dft_utils_on_grid/ao_on_grid.irp.f new file mode 100644 index 00000000..332f3ad1 --- /dev/null +++ b/src/dft_utils_on_grid/ao_on_grid.irp.f @@ -0,0 +1,77 @@ + BEGIN_PROVIDER[double precision, aos_in_r_array, (ao_num,n_points_final_grid)] +&BEGIN_PROVIDER[double precision, aos_in_r_array_transp, (n_points_final_grid,ao_num)] + implicit none + BEGIN_DOC + ! aos_in_r_array(i,j) = value of the ith ao on the jth grid point + ! + ! aos_in_r_array_transp(i,j) = value of the jth ao on the ith grid point + END_DOC + integer :: i,j + double precision :: aos_array(ao_num), r(3) + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + call give_all_aos_at_r(r,aos_array) + do j = 1, ao_num + aos_in_r_array(j,i) = aos_array(j) + aos_in_r_array_transp(i,j) = aos_array(j) + enddo + enddo + END_PROVIDER + + BEGIN_PROVIDER[double precision, aos_grad_in_r_array, (ao_num,n_points_final_grid,3)] +&BEGIN_PROVIDER[double precision, aos_grad_in_r_array_transp, (n_points_final_grid,ao_num,3)] + implicit none + BEGIN_DOC + ! aos_grad_in_r_array(i,j,k) = value of the kth component of the gradient of ith ao on the jth grid point + ! + ! aos_grad_in_r_array_transp(i,j,k) = value of the kth component of the gradient of jth ao on the ith grid point + ! + ! k = 1 : x, k= 2, y, k 3, z + END_DOC + integer :: i,j,m + double precision :: aos_array(ao_num), r(3) + double precision :: aos_grad_array(3,ao_num) + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + call give_all_aos_and_grad_at_r(r,aos_array,aos_grad_array) + do m = 1, 3 + do j = 1, ao_num + aos_grad_in_r_array(j,i,m) = aos_grad_array(m,j) + aos_grad_in_r_array_transp(i,j,m) = aos_grad_array(m,j) + enddo + enddo + enddo + END_PROVIDER + + BEGIN_PROVIDER[double precision, aos_lapl_in_r_array, (ao_num,n_points_final_grid,3)] +&BEGIN_PROVIDER[double precision, aos_lapl_in_r_array_transp, (n_points_final_grid,ao_num,3)] + implicit none + BEGIN_DOC + ! aos_lapl_in_r_array(i,j,k) = value of the kth component of the laplacian of ith ao on the jth grid point + ! + ! aos_lapl_in_r_array_transp(i,j,k) = value of the kth component of the laplacian of jth ao on the ith grid point + ! + ! k = 1 : x, k= 2, y, k 3, z + END_DOC + integer :: i,j,m + double precision :: aos_array(ao_num), r(3) + double precision :: aos_grad_array(ao_num,3) + double precision :: aos_lapl_array(ao_num,3) + do m = 1, 3 + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + call give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_lapl_array) + do j = 1, ao_num + aos_lapl_in_r_array(j,i,m) = aos_lapl_array(j,m) + aos_lapl_in_r_array_transp(i,j,m) = aos_lapl_array(j,m) + enddo + enddo + enddo + END_PROVIDER + diff --git a/src/dft_utils_on_grid/density_matrices_in_real_space.irp.f b/src/dft_utils_on_grid/density_matrices_in_real_space.irp.f new file mode 100644 index 00000000..ed632ca8 --- /dev/null +++ b/src/dft_utils_on_grid/density_matrices_in_real_space.irp.f @@ -0,0 +1,297 @@ +subroutine dm_dft_alpha_beta_at_r(r,dm_a,dm_b) + implicit none + BEGIN_DOC +! input: r(1) ==> r(1) = x, r(2) = y, r(3) = z +! output : dm_a = alpha density evaluated at r(3) +! output : dm_b = beta density evaluated at r(3) + END_DOC + double precision, intent(in) :: r(3) + double precision, intent(out) :: dm_a(N_states),dm_b(N_states) + integer :: istate + double precision :: aos_array(ao_num),aos_array_bis(ao_num),u_dot_v + call give_all_aos_at_r(r,aos_array) + do istate = 1, N_states + aos_array_bis = aos_array + ! alpha density + call dgemv('N',ao_num,ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1) + dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + ! beta density + aos_array_bis = aos_array + call dgemv('N',ao_num,ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),ao_num,aos_array,1,0.d0,aos_array_bis,1) + dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + enddo +end + + +subroutine dm_dft_alpha_beta_and_all_aos_at_r(r,dm_a,dm_b,aos_array) + BEGIN_DOC +! input: r(1) ==> r(1) = x, r(2) = y, r(3) = z +! output : dm_a = alpha density evaluated at r +! output : dm_b = beta density evaluated at r +! output : aos_array(i) = ao(i) evaluated at r + END_DOC + implicit none + double precision, intent(in) :: r(3) + double precision, intent(out) :: dm_a(N_states),dm_b(N_states) + double precision, intent(out) :: aos_array(ao_num) + integer :: istate + double precision :: aos_array_bis(ao_num),u_dot_v + call give_all_aos_at_r(r,aos_array) + do istate = 1, N_states + aos_array_bis = aos_array + ! alpha density + call dsymv('U',ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),size(one_body_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1) + dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + ! beta density + aos_array_bis = aos_array + call dsymv('U',ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),size(one_body_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1) + dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + enddo +end + + + + subroutine density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, grad_dm_a, grad_dm_b, aos_array, grad_aos_array) + implicit none + BEGIN_DOC +! input : r(1) ==> r(1) = x, r(2) = y, r(3) = z +! output : dm_a = alpha density evaluated at r +! : dm_b = beta density evaluated at r +! : aos_array(i) = ao(i) evaluated at r +! : grad_dm_a(1) = X gradient of the alpha density evaluated in r +! : grad_dm_a(1) = X gradient of the beta density evaluated in r +! : grad_aos_array(1) = X gradient of the aos(i) evaluated at r + END_DOC + double precision, intent(in) :: r(3) + double precision, intent(out) :: dm_a(N_states),dm_b(N_states) + double precision, intent(out) :: grad_dm_a(3,N_states),grad_dm_b(3,N_states) + double precision, intent(out) :: grad_aos_array(3,ao_num) + integer :: i,j,istate + double precision :: aos_array(ao_num),aos_array_bis(ao_num),u_dot_v + double precision :: aos_grad_array(ao_num,3), aos_grad_array_bis(ao_num,3) + + call give_all_aos_and_grad_at_r(r,aos_array,grad_aos_array) + do i = 1, ao_num + do j = 1, 3 + aos_grad_array(i,j) = grad_aos_array(j,i) + enddo + enddo + + do istate = 1, N_states + ! alpha density + ! aos_array_bis = \rho_ao * aos_array + call dsymv('U',ao_num,1.d0,one_body_dm_alpha_ao_for_dft(1,1,istate),size(one_body_dm_alpha_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1) + dm_a(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + + ! grad_dm(1) = \sum_i aos_grad_array(i,1) * aos_array_bis(i) + grad_dm_a(1,istate) = u_dot_v(aos_grad_array(1,1),aos_array_bis,ao_num) + grad_dm_a(2,istate) = u_dot_v(aos_grad_array(1,2),aos_array_bis,ao_num) + grad_dm_a(3,istate) = u_dot_v(aos_grad_array(1,3),aos_array_bis,ao_num) + grad_dm_a *= 2.d0 + ! aos_grad_array_bis = \rho_ao * aos_grad_array + + ! beta density + call dsymv('U',ao_num,1.d0,one_body_dm_beta_ao_for_dft(1,1,istate),size(one_body_dm_beta_ao_for_dft,1),aos_array,1,0.d0,aos_array_bis,1) + dm_b(istate) = u_dot_v(aos_array,aos_array_bis,ao_num) + + ! grad_dm(1) = \sum_i aos_grad_array(i,1) * aos_array_bis(i) + grad_dm_b(1,istate) = u_dot_v(aos_grad_array(1,1),aos_array_bis,ao_num) + grad_dm_b(2,istate) = u_dot_v(aos_grad_array(1,2),aos_array_bis,ao_num) + grad_dm_b(3,istate) = u_dot_v(aos_grad_array(1,3),aos_array_bis,ao_num) + grad_dm_b *= 2.d0 + ! aos_grad_array_bis = \rho_ao * aos_grad_array + enddo + end + + BEGIN_PROVIDER [double precision, one_body_dm_mo_alpha_at_grid_points, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_dm_mo_beta_at_grid_points, (n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ] + implicit none + integer :: i,j,k,l,m,istate + double precision :: contrib + double precision :: r(3) + double precision :: aos_array(ao_num),mos_array(mo_tot_num) + do j = 1, nucl_num + do k = 1, n_points_radial_grid -1 + do l = 1, n_points_integration_angular + do istate = 1, N_States + one_body_dm_mo_alpha_at_grid_points(l,k,j,istate) = 0.d0 + one_body_dm_mo_beta_at_grid_points(l,k,j,istate) = 0.d0 + enddo + r(1) = grid_points_per_atom(1,l,k,j) + r(2) = grid_points_per_atom(2,l,k,j) + r(3) = grid_points_per_atom(3,l,k,j) + + double precision :: dm_a,dm_b + call dm_dft_alpha_beta_at_r(r,dm_a,dm_b) + one_body_dm_mo_alpha_at_grid_points(l,k,j,1) = dm_a + one_body_dm_mo_beta_at_grid_points(l,k,j,1) = dm_b + + enddo + enddo + enddo + +END_PROVIDER + + + BEGIN_PROVIDER [double precision, one_body_dm_alpha_at_r, (n_points_final_grid,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_dm_beta_at_r, (n_points_final_grid,N_states) ] + implicit none + BEGIN_DOC +! one_body_dm_alpha_at_r(i,istate) = n_alpha(r_i,istate) +! one_body_dm_beta_at_r(i,istate) = n_beta(r_i,istate) +! where r_i is the ith point of the grid and istate is the state number + END_DOC + integer :: i,istate + double precision :: r(3) + double precision, allocatable :: dm_a(:),dm_b(:) + allocate(dm_a(N_states),dm_b(N_states)) + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + call dm_dft_alpha_beta_at_r(r,dm_a,dm_b) + one_body_dm_alpha_at_r(i,istate) = dm_a(istate) + one_body_dm_beta_at_r(i,istate) = dm_b(istate) + enddo + enddo + +END_PROVIDER + + + BEGIN_PROVIDER [double precision, one_body_dm_alpha_and_grad_at_r, (4,n_points_final_grid,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_dm_beta_and_grad_at_r, (4,n_points_final_grid,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_grad_2_dm_alpha_at_r, (n_points_final_grid,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_grad_2_dm_beta_at_r, (n_points_final_grid,N_states) ] + BEGIN_DOC +! one_body_dm_alpha_and_grad_at_r(1,i,i_state) = d\dx n_alpha(r_i,istate) +! one_body_dm_alpha_and_grad_at_r(2,i,i_state) = d\dy n_alpha(r_i,istate) +! one_body_dm_alpha_and_grad_at_r(3,i,i_state) = d\dz n_alpha(r_i,istate) +! one_body_dm_alpha_and_grad_at_r(4,i,i_state) = n_alpha(r_i,istate) +! one_body_grad_2_dm_alpha_at_r(i,istate) = d\dx n_alpha(r_i,istate)^2 + d\dy n_alpha(r_i,istate)^2 + d\dz n_alpha(r_i,istate)^2 +! where r_i is the ith point of the grid and istate is the state number + END_DOC + implicit none + integer :: i,j,k,l,m,istate + double precision :: contrib + double precision :: r(3) + double precision, allocatable :: aos_array(:),grad_aos_array(:,:) + double precision, allocatable :: dm_a(:),dm_b(:), dm_a_grad(:,:), dm_b_grad(:,:) + allocate(dm_a(N_states),dm_b(N_states), dm_a_grad(3,N_states), dm_b_grad(3,N_states)) + allocate(aos_array(ao_num),grad_aos_array(3,ao_num)) + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + !!!! Works also with the ao basis + call density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, dm_a_grad, dm_b_grad, aos_array, grad_aos_array) + one_body_dm_alpha_and_grad_at_r(1,i,istate) = dm_a_grad(1,istate) + one_body_dm_alpha_and_grad_at_r(2,i,istate) = dm_a_grad(2,istate) + one_body_dm_alpha_and_grad_at_r(3,i,istate) = dm_a_grad(3,istate) + one_body_dm_alpha_and_grad_at_r(4,i,istate) = dm_a(istate) + one_body_grad_2_dm_alpha_at_r(i,istate) = dm_a_grad(1,istate) * dm_a_grad(1,istate) + dm_a_grad(2,istate) * dm_a_grad(2,istate) + dm_a_grad(3,istate) * dm_a_grad(3,istate) + + one_body_dm_beta_and_grad_at_r(1,i,istate) = dm_b_grad(1,istate) + one_body_dm_beta_and_grad_at_r(2,i,istate) = dm_b_grad(2,istate) + one_body_dm_beta_and_grad_at_r(3,i,istate) = dm_b_grad(3,istate) + one_body_dm_beta_and_grad_at_r(4,i,istate) = dm_b(istate) + one_body_grad_2_dm_beta_at_r(i,istate) = dm_b_grad(1,istate) * dm_b_grad(1,istate) + dm_b_grad(2,istate) * dm_b_grad(2,istate) + dm_b_grad(3,istate) * dm_b_grad(3,istate) + enddo + enddo + +END_PROVIDER + + + + BEGIN_PROVIDER [double precision, one_body_dm_mo_alpha_and_grad_at_grid_points, (4,n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ] +&BEGIN_PROVIDER [double precision, one_body_dm_mo_beta_and_grad_at_grid_points, (4,n_points_integration_angular,n_points_radial_grid,nucl_num,N_states) ] + BEGIN_DOC +! one_body_dm_mo_alpha_and_grad_at_grid_points(1,.....,i_state) = d\dx \rho_{\alpha}^{\istate}(r) +! one_body_dm_mo_alpha_and_grad_at_grid_points(2,.....,i_state) = d\dy \rho_{\alpha}^{\istate}(r) +! one_body_dm_mo_alpha_and_grad_at_grid_points(3,.....,i_state) = d\dz \rho_{\alpha}^{\istate}(r) +! one_body_dm_mo_alpha_and_grad_at_grid_points(4,.....,i_state) = \rho_{\alpha}^{\istate}(r) + END_DOC + implicit none + integer :: i,j,k,l,m,istate + double precision :: contrib + double precision :: r(3) + double precision :: aos_array(ao_num),grad_aos_array(3,ao_num) + do istate = 1, N_States + do j = 1, nucl_num + do k = 1, n_points_radial_grid -1 + do l = 1, n_points_integration_angular + do m = 1, 4 + one_body_dm_mo_alpha_and_grad_at_grid_points(m,l,k,j,istate) = 0.d0 + one_body_dm_mo_beta_and_grad_at_grid_points(m,l,k,j,istate) = 0.d0 + enddo + r(1) = grid_points_per_atom(1,l,k,j) + r(2) = grid_points_per_atom(2,l,k,j) + r(3) = grid_points_per_atom(3,l,k,j) + + !!!!! Works also with the ao basis + double precision :: dm_a(N_states),dm_b(N_states), dm_a_grad(3,N_states), dm_b_grad(3,N_states) + call density_and_grad_alpha_beta_and_all_aos_and_grad_aos_at_r(r,dm_a,dm_b, dm_a_grad, dm_b_grad, aos_array, grad_aos_array) + one_body_dm_mo_alpha_and_grad_at_grid_points(1,l,k,j,istate) = dm_a_grad(1,istate) + one_body_dm_mo_alpha_and_grad_at_grid_points(2,l,k,j,istate) = dm_a_grad(2,istate) + one_body_dm_mo_alpha_and_grad_at_grid_points(3,l,k,j,istate) = dm_a_grad(3,istate) + one_body_dm_mo_alpha_and_grad_at_grid_points(4,l,k,j,istate) = dm_a(istate) + + + one_body_dm_mo_beta_and_grad_at_grid_points(1,l,k,j,istate) = dm_b_grad(1,istate) + one_body_dm_mo_beta_and_grad_at_grid_points(2,l,k,j,istate) = dm_b_grad(2,istate) + one_body_dm_mo_beta_and_grad_at_grid_points(3,l,k,j,istate) = dm_b_grad(3,istate) + one_body_dm_mo_beta_and_grad_at_grid_points(4,l,k,j,istate) = dm_b(istate) + + + enddo + enddo + enddo + enddo + +END_PROVIDER + + + BEGIN_PROVIDER [ double precision, integral_density_alpha_knowles_becke_per_atom, (nucl_num)] +&BEGIN_PROVIDER [ double precision, integral_density_beta_knowles_becke_per_atom, (nucl_num)] + implicit none + double precision :: accu + integer :: i,j,k,l,istate + double precision :: x + double precision :: integrand(n_points_integration_angular), weights(n_points_integration_angular) + double precision :: f_average_angular_alpha,f_average_angular_beta + double precision :: derivative_knowles_function,knowles_function + + ! Run over all nuclei in order to perform the Voronoi partition + ! according ot equation (6) of the paper of Becke (JCP, (88), 1988) + ! Here the m index is referred to the w_m(r) weight functions of equation (22) + ! Run over all points of integrations : there are + ! n_points_radial_grid (i) * n_points_integration_angular (k) + do j = 1, nucl_num + integral_density_alpha_knowles_becke_per_atom(j) = 0.d0 + integral_density_beta_knowles_becke_per_atom(j) = 0.d0 + do i = 1, n_points_radial_grid-1 + ! Angular integration over the solid angle Omega for a FIXED angular coordinate "r" + f_average_angular_alpha = 0.d0 + f_average_angular_beta = 0.d0 + do istate = 1, N_states + do k = 1, n_points_integration_angular + f_average_angular_alpha += weights_angular_points(k) * one_body_dm_mo_alpha_at_grid_points(k,i,j,istate) * weight_functions_at_grid_points(k,i,j) + f_average_angular_beta += weights_angular_points(k) * one_body_dm_mo_beta_at_grid_points(k,i,j,istate) * weight_functions_at_grid_points(k,i,j) + enddo + enddo + ! + x = grid_points_radial(i) ! x value for the mapping of the [0, +\infty] to [0,1] + double precision :: contrib_integration +! print*,m_knowles + contrib_integration = derivative_knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x) & + *knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)**2 + integral_density_alpha_knowles_becke_per_atom(j) += contrib_integration *f_average_angular_alpha + integral_density_beta_knowles_becke_per_atom(j) += contrib_integration *f_average_angular_beta + enddo + integral_density_alpha_knowles_becke_per_atom(j) *= dr_radial_integral + integral_density_beta_knowles_becke_per_atom(j) *= dr_radial_integral + enddo + +END_PROVIDER + diff --git a/src/dft_utils_on_grid/mo_on_grid.irp.f b/src/dft_utils_on_grid/mo_on_grid.irp.f new file mode 100644 index 00000000..d844a88d --- /dev/null +++ b/src/dft_utils_on_grid/mo_on_grid.irp.f @@ -0,0 +1,56 @@ + BEGIN_PROVIDER[double precision, mos_in_r_array, (mo_tot_num,n_points_final_grid)] +&BEGIN_PROVIDER[double precision, mos_in_r_array_transp,(n_points_final_grid,mo_tot_num)] + implicit none + BEGIN_DOC + ! mos_in_r_array(i,j) = value of the ith mo on the jth grid point + ! + ! mos_in_r_array_transp(i,j) = value of the jth mo on the ith grid point + END_DOC + integer :: i,j + double precision :: mos_array(mo_tot_num), r(3) + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + call give_all_mos_at_r(r,mos_array) + do j = 1, mo_tot_num + mos_in_r_array(j,i) = mos_array(j) + mos_in_r_array_transp(i,j) = mos_array(j) + enddo + enddo + END_PROVIDER + + + BEGIN_PROVIDER[double precision, mos_grad_in_r_array,(mo_tot_num,n_points_final_grid,3)] + implicit none + BEGIN_DOC + ! mos_grad_in_r_array(i,j,k) = value of the kth component of the gradient of ith mo on the jth grid point + ! + ! mos_grad_in_r_array_transp(i,j,k) = value of the kth component of the gradient of jth mo on the ith grid point + ! + ! k = 1 : x, k= 2, y, k 3, z + END_DOC + integer :: m + mos_grad_in_r_array = 0.d0 + do m=1,3 + call dgemm('N','N',mo_tot_num,n_points_final_grid,ao_num,1.d0,mo_coef_transp,mo_tot_num,aos_grad_in_r_array(1,1,m),ao_num,0.d0,mos_grad_in_r_array(1,1,m),mo_tot_num) + enddo + END_PROVIDER + + BEGIN_PROVIDER[double precision, mos_lapl_in_r_array,(mo_tot_num,n_points_final_grid,3)] + implicit none + BEGIN_DOC + ! mos_lapl_in_r_array(i,j,k) = value of the kth component of the laplacian of ith mo on the jth grid point + ! + ! mos_lapl_in_r_array_transp(i,j,k) = value of the kth component of the laplacian of jth mo on the ith grid point + ! + ! k = 1 : x, k= 2, y, k 3, z + END_DOC + integer :: m + mos_lapl_in_r_array = 0.d0 + do m=1,3 + call dgemm('N','N',mo_tot_num,n_points_final_grid,ao_num,1.d0,mo_coef_transp,mo_tot_num,aos_lapl_in_r_array(1,1,m),ao_num,0.d0,mos_lapl_in_r_array(1,1,m),mo_tot_num) + enddo + END_PROVIDER + + diff --git a/src/dft_utils_one_body/NEED b/src/dft_utils_one_body/NEED new file mode 100644 index 00000000..9a05a478 --- /dev/null +++ b/src/dft_utils_one_body/NEED @@ -0,0 +1,4 @@ +density_for_dft +dft_utils_on_grid +integrals_bielec +integrals_bielec_erf diff --git a/src/dft_utils_one_body/README.rst b/src/dft_utils_one_body/README.rst new file mode 100644 index 00000000..b51169bc --- /dev/null +++ b/src/dft_utils_one_body/README.rst @@ -0,0 +1,12 @@ +=========== +RSDFT_Utils +=========== + +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/src/dft_utils_one_body/e_c_e_x_and_potentials_mo.irp.f b/src/dft_utils_one_body/e_c_e_x_and_potentials_mo.irp.f new file mode 100644 index 00000000..54802a84 --- /dev/null +++ b/src/dft_utils_one_body/e_c_e_x_and_potentials_mo.irp.f @@ -0,0 +1,125 @@ + + BEGIN_PROVIDER [double precision, potential_x_alpha_ao,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_x_beta_ao,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_alpha_ao,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_beta_ao,(ao_num,ao_num,N_states)] + implicit none + BEGIN_DOC +! alpha/beta exchange/correlation potentials on the AO basis + END_DOC + + if(trim(exchange_functional)=="short_range_LDA")then + potential_x_alpha_ao = potential_x_alpha_ao_LDA + potential_x_beta_ao = potential_x_beta_ao_LDA + else if(exchange_functional.EQ."short_range_PBE")then + potential_x_alpha_ao = potential_x_alpha_ao_PBE + potential_x_beta_ao = potential_x_beta_ao_PBE + else if(exchange_functional.EQ."None")then + potential_x_alpha_ao = 0.d0 + potential_x_beta_ao = 0.d0 + else + print*, 'Exchange functional required does not exist ...' + print*,'exchange_functional',exchange_functional + stop + endif + + if(trim(correlation_functional)=="short_range_LDA")then + potential_c_alpha_ao = potential_c_alpha_ao_LDA + potential_c_beta_ao = potential_c_beta_ao_LDA + else if(correlation_functional.EQ."short_range_PBE")then + potential_c_alpha_ao = potential_c_alpha_ao_PBE + potential_c_beta_ao = potential_c_beta_ao_PBE + else if(correlation_functional.EQ."None")then + potential_c_alpha_ao = 0.d0 + potential_c_beta_ao = 0.d0 + else + print*, 'Correlation functional required does not ecist ...' + print*,'correlation_functional',correlation_functional + stop + endif + + +END_PROVIDER + + + + + + BEGIN_PROVIDER [double precision, potential_x_alpha_mo,(mo_tot_num,mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_x_beta_mo,(mo_tot_num,mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_alpha_mo,(mo_tot_num,mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_beta_mo,(mo_tot_num,mo_tot_num,N_states)] + implicit none + BEGIN_DOC +! alpha/beta exchange/correlation potentials on the MO basis + END_DOC + integer :: istate + do istate = 1, N_states + call ao_to_mo( & + potential_x_alpha_ao(1,1,istate), & + size(potential_x_alpha_ao,1), & + potential_x_alpha_mo(1,1,istate), & + size(potential_x_alpha_mo,1) & + ) + + call ao_to_mo( & + potential_x_beta_ao(1,1,istate), & + size(potential_x_beta_ao,1), & + potential_x_beta_mo(1,1,istate), & + size(potential_x_beta_mo,1) & + ) + + + call ao_to_mo( & + potential_c_alpha_ao(1,1,istate), & + size(potential_c_alpha_ao,1), & + potential_c_alpha_mo(1,1,istate), & + size(potential_c_alpha_mo,1) & + ) + + call ao_to_mo( & + potential_c_beta_ao(1,1,istate), & + size(potential_c_beta_ao,1), & + potential_c_beta_mo(1,1,istate), & + size(potential_c_beta_mo,1) & + ) + + enddo + +END_PROVIDER + + + BEGIN_PROVIDER [double precision, energy_x, (N_states)] + &BEGIN_PROVIDER [double precision, energy_c, (N_states)] + implicit none + if(trim(exchange_functional)=="short_range_LDA")then + energy_x = energy_x_LDA + energy_x = energy_x_LDA + else if(exchange_functional.EQ."short_range_PBE")then + energy_x = energy_x_PBE + energy_x = energy_x_PBE + else if(exchange_functional.EQ."None")then + energy_x = 0.d0 + energy_x = 0.d0 + else + print*, 'Exchange functional required does not exist ...' + print*,'exchange_functional',exchange_functional + stop + endif + + if(trim(correlation_functional)=="short_range_LDA")then + energy_c = energy_c_LDA + energy_c = energy_c_LDA + else if(correlation_functional.EQ."short_range_PBE")then + energy_c = energy_c_PBE + energy_c = energy_c_PBE + else if(correlation_functional.EQ."None")then + energy_c = 0.d0 + energy_c = 0.d0 + else + print*, 'Correlation functional required does not ecist ...' + print*,'correlation_functional',correlation_functional + stop + endif + +END_PROVIDER diff --git a/src/dft_utils_one_body/exc_sr_lda.irp.f b/src/dft_utils_one_body/exc_sr_lda.irp.f new file mode 100644 index 00000000..36162b93 --- /dev/null +++ b/src/dft_utils_one_body/exc_sr_lda.irp.f @@ -0,0 +1,1007 @@ +subroutine ex_lda(rho_a,rho_b,ex,vx_a,vx_b) + include 'constants.include.F' + implicit none + double precision, intent(in) :: rho_a,rho_b + double precision, intent(out) :: ex,vx_a,vx_b + double precision :: tmp_a,tmp_b + tmp_a = rho_a**(c_1_3) + tmp_b = rho_b**(c_1_3) + ex = cst_lda * (tmp_a*tmp_a*tmp_a*tmp_a + tmp_b*tmp_b*tmp_b*tmp_b) + vx_a = cst_lda * c_4_3 * tmp_a + vx_b = cst_lda * c_4_3 * tmp_b + +end + + +subroutine ec_lda(rho_a,rho_b,ec,vc_a,vc_b) + implicit none + include 'constants.include.F' + double precision, intent(out) :: ec + double precision, intent(out) :: vc_a,vc_b + double precision, intent(in) :: rho_a,rho_b + +! Double precision numbers + + double precision :: rsfac,rho,rs,rhoa,rhob,z + double precision :: eccoul, ecd, ecz, ecdd, eczd + double precision :: vcup,vcdown + rsfac = (3.0d0/(4.0d0*pi))**c_1_3 + +! Test on density + rho = rho_a + rho_b + if (dabs(rho).ge.1.d-10) then + + rs=rsfac/(rho**c_1_3) + rhoa=max(rho_a,1.0d-15) + rhob=max(rho_b,1.0d-15) + z=(rhoa-rhob)/(rhoa+rhob) + + call ecPW(rs,z,eccoul,ecd,ecz,ecdd,eczd) + ec=(eccoul)*rho + + + vcup=eccoul-rs/3.d0*ecd-(z-1.d0)*ecz + vcdown=eccoul-rs/3.d0*ecd-(z+1.d0)*ecz + vc_a = vcup + vc_b = vcdown + else + ec = 1.d-15 + vc_a = 1.d-15 + vc_b = 1.d-15 + + endif + +end + +subroutine ec_lda_sr(mu,rho_a,rho_b,ec,vc_a,vc_b) + implicit none + include 'constants.include.F' + double precision, intent(out) :: ec + double precision, intent(out) :: vc_a,vc_b + double precision, intent(in) :: mu,rho_a,rho_b + +! Double precision numbers + + double precision :: rsfac,rho,rs,rhoa,rhob,z + double precision :: eccoul, ecd, ecz, ecdd, eczd + double precision :: eclr,vcup,vcdown,vclrup,vclrdown,vclrupd,vclrdownd + rsfac = (3.0d0/(4.0d0*pi))**c_1_3 + + ec = 0.d0 + vc_a = 0.d0 + vc_b = 0.d0 +! Test on density + rho = rho_a + rho_b + if (dabs(rho).ge.1.d-12) then + + rs=rsfac/(rho**c_1_3) + rhoa=max(rho_a,1.0d-15) + rhob=max(rho_b,1.0d-15) + z=(rhoa-rhob)/(rhoa+rhob) + + call ecPW(rs,z,eccoul,ecd,ecz,ecdd,eczd) + call ecorrlr(rs,z,mu,eclr) + ec=(eccoul-eclr)*rho + + + vcup=eccoul-rs/3.d0*ecd-(z-1.d0)*ecz + vcdown=eccoul-rs/3.d0*ecd-(z+1.d0)*ecz + call vcorrlr(rs,z,mu,vclrup,vclrdown,vclrupd,vclrdownd) + vc_a = vcup-vclrup + vc_b = vcdown-vclrdown + + else + ec = 1.d-15 + vc_a = 1.d-15 + vc_b = 1.d-15 + + endif + +end + +subroutine ex_lda_sr(mu,rho_a,rho_b,ex,vx_a,vx_b) + include 'constants.include.F' + implicit none + double precision, intent(out) :: ex + double precision, intent(out) :: vx_a,vx_b + double precision, intent(in) :: rho_a,rho_b,mu + + + double precision :: rho_a_2,rho_b_2 + double precision :: z0,z1,z2,z3,z4,z6,z8,z16,z24,z96,z12 + double precision :: ex_a,ex_b + + double precision :: f12,f13,f14,f32,f23,f43,f16 + double precision :: ckf + double precision :: a, akf,a2, a3 + + z0 = 0.D0 + z1 = 1.D0 + z2 = 2.D0 + z3 = 3.D0 + z4 = 4.D0 + z6 = 6.D0 + z8 = 8.D0 + z12 = 12.D0 + z16 = 16.D0 + z24 = 24.D0 + z96 = 96.D0 + f12 = 0.5d0 + f13 = 0.3333333333333333d0 + f14 = 0.25d0 + f32 = 1.5d0 + f23 = 0.6666666666666666d0 + f43 = 1.3333333333333333d0 + f16 = 0.16666666666666666d0 + ckf = 3.0936677262801355d0 + +!Density and kF + rho_a_2=rho_a*2.D0 + akf = ckf*(rho_a_2**f13) + a = mu/(z2*akf) + a2 = a*a + a3 = a2*a + +!Test on the value of a + +!Limit for small a (expansion not so important as for large a) + if (a.lt.1.d-9) then + ex_a = -z3/z8*rho_a_2*(z24*rho_a_2/pi)**f13 + vx_a = - ((z3/pi)*rho_a_2)**f13 + +!Intermediate values of a + elseif (a.le.100d0) then + ex_a = - (rho_a_2*(z24*rho_a_2/pi)**f13) * (z3/z8-a*(sqpi*derf(f12/a)+(z2*a-z4*a3)*dexp(-f14/a2)-z3*a+z4*a3)) + vx_a = -(z3*rho_a_2/pi)**f13 + z2*a*mu/pi*(dexp(-f14/a2)-z1)+mu/sqpi * derf(f12/a) + + +!Expansion for large a + elseif (a.lt.1.d+9) then + ex_a = -(rho_a_2*(z24*rho_a_2/pi)**f13) * z1/(z96*a2) + vx_a = -pi*rho_a_2/(z2*mu*mu) + +!Limit for large a + else + ex_a = 0.d0 + vx_a = 0.d0 + end if + +!Density and kF + rho_b_2= rho_b * 2.d0 + akf = ckf*(rho_b_2**f13) + a = mu/(z2*akf) + a2 = a*a + a3 = a2*a + +!Test on the value of a + +!Limit for small a (expansion not so important as for large a) + if (a.lt.1.d-9) then + ex_b = -z3/z8*rho_b_2*(z24*rho_b_2/pi)**f13 + vx_b = - ((z3/pi)*rho_b_2)**f13 + +!Intermediate values of a + elseif (a.le.100d0) then + ex_b = - (rho_b_2*(z24*rho_b_2/pi)**f13)*(z3/z8-a*(sqpi*derf(f12/a)+(z2*a-z4*a3)*dexp(-f14/a2)-z3*a+z4*a3)) + vx_b = -(z3*rho_b_2/pi)**f13+ z2*a*mu/pi*(dexp(-f14/a2)-z1)+mu/sqpi* derf(f12/a) + +!Expansion for large a + elseif (a.lt.1.d+9) then + ex_b = - (rho_b_2*(z24*rho_b_2/pi)**f13) *z1/(z96*a2) + vx_b = - pi*rho_b_2/(z2*mu*mu) + +!Limit for large a + else + ex_b = z0 + vx_b = 0.d0 + end if + + ex = (ex_a+ex_b) * 0.5d0 +end + + +subroutine ec_only_lda_sr(mu,rho_a,rho_b,ec) + implicit none + include 'constants.include.F' + double precision, intent(out) :: ec + double precision, intent(in) :: mu,rho_a,rho_b + +! Double precision numbers + + double precision :: rsfac,rho,rs,rhoa,rhob,z + double precision :: eccoul, ecd, ecz, ecdd, eczd + double precision :: eclr + rsfac = (3.0d0/(4.0d0*pi))**c_1_3 + + ec = 0.d0 +! Test on density + rho = rho_a + rho_b + if (dabs(rho).ge.1.d-12) then + + rs=rsfac/(rho**c_1_3) + rhoa=max(rho_a,1.0d-15) + rhob=max(rho_b,1.0d-15) + z=(rhoa-rhob)/(rhoa+rhob) + + call ecPW(rs,z,eccoul,ecd,ecz,ecdd,eczd) + call ecorrlr(rs,z,mu,eclr) + ec=(eccoul-eclr)*rho + + endif + +end + +!------------------------------------------- + function berf(a) +!------------------------------------------- +! Second-order exchange gradient expansion coefficient for erf +! interaction +! a = mu/(2*kF) +! +! Author : J. Toulouse +! Date : 10-03-04 +!------------------------------------------- + implicit none + include 'constants.include.F' + + double precision a + double precision eta,fak,berf,berf_dexp + +! function + double precision derf + + eta=19.0d0 + fak=2.540118935556d0*dexp(-eta*a*a) + + if(a .lt. 0.075d0) then +! expansion for small mu to avoid numerical problems +! denominator becomes zero for a approximately 0.4845801308 +! (and for one negative and two complex values of a) + berf = (-7d0+72.d0*a*a)/(27.d0*(-3d0-24.d0*a*a+32.d0*a**4+8d0*dsqrt(pi)*a)) + + else if(a .gt. 50.d0) then + berf = 1.d0/(72.d0*a*a)-1.d0/(17280.d0*a**4)- 23.d0/(358400.d0*a**6) + + else + + +! Code generated by Mathematica + berf_dexp=dexp(2.5d-1/a**2) + berf = (1.851851851851851851851852d-2*(-1.d0 + 1.44d2*a**4*(-1.d0 & + + berf_dexp) - 2.d0*a**2*(1.1d1 + 7.d0*berf_dexp & + )))/(a**2*(3.2d1*a**4*(-1.d0 + berf_dexp) - 3.d0*berf_dexp & + + 1.417963080724412821838534d1*a*derf(5.d-1/a)*berf_dexp & + - 8.d0*a**2*(-2.d0 + 3.d0*berf_dexp))) + + end if + + berf=berf*fak + + return + end + +!------------------------------------------- + function dberfda(a) +!------------------------------------------- +! Derivative of second-order exchange gradient +! expansion coefficient for erf interaction +! a = mu/(2*kF) +! +! Author : J. Toulouse +! Date : 10-03-04 +!------------------------------------------- + implicit none + include 'constants.include.F' + + double precision a + double precision eta,fak,dfakda,berf,dberfda,berf_dexp + double precision t1,t2,tdexp,t3,t4,t5 + + eta=19.0d0 + fak=2.540118935556d0*dexp(-eta*a*a) + dfakda=-2.0d0*eta*a*fak + + if(a .lt. 0.075d0) then +! expansion for small mu to avoid numerical problems +! denominator becomes zero for a approximately 0.4845801308 +! (and for one negative and two complex values of a) + berf = (-7d0+72.d0*a*a)/(27.d0*(-3d0-24.d0*a*a+32.d0*a**4+8d0*dsqrt(pi)*a)) + dberfda = (8d0*(-96.d0*a + 112.d0*a**3 - 576.d0*a**5 & + + 7d0*dsqrt(pi) + 72.d0*a**2*dsqrt(pi)))/ & + (27.d0*(3d0 + 24.d0*a**2 - 32.d0*a**4 - 8d0*a*dsqrt(pi))**2) + + else if(a .gt. 50.d0) then + berf = 1.d0/(72.d0*a*a)-1.d0/(17280.d0*a**4)- 23.d0/(358400.d0*a**6) + dberfda = - 1.d0/(36.d0*a**3) + 1.d0/(4320.d0*a**5)+ 69.d0/(179200.d0*a**7) + + + else + +! Code generated by Mathematica + berf_dexp=dexp(2.5d-1/a**2) + + berf = (1.851851851851851851851852d-2*(-1.d0 + 1.44d2*a**4*(-1.d0 + berf_dexp) - 2.d0*a**2*(1.1d1 + 7.d0*berf_dexp )))/(a**2*(3.2d1*a**4*(-1.d0 + berf_dexp) - 3.d0*berf_dexp + 1.417963080724412821838534d1*a*derf(5.d-1/a)*berf_dexp - 8.d0*a**2*(-2.d0 + 3.d0*berf_dexp))) + + tdexp=dexp(2.5d-1/a**2) + t1 = (1.851851851851851851851852d-2*(5.76d2*a**3*(-1.d0 + tdexp ) + (7.d0*tdexp)/a - 7.2d1*a*tdexp - 4.d0*a*(1.1d1 + 7.d0*tdexp)))/(a**2*(3.2d1*a**4*(-1.d0 + tdexp) - 3.d0*tdexp + 1.417963080724412821838534d1*a*derf(5.d-1/a)*tdexp - 8.d0*a**2*(-2.d0 + 3.d0*tdexp))) + t2 = -1.851851851851851851851852d-2/a**2 + t3 = -8.d0/a + 1.28d2*a**3*(-1.d0 + tdexp) + (1.5d0*tdexp)/a**3 + (1.2d1*tdexp)/a - 1.6d1*a* tdexp + 1.417963080724412821838534d1*derf(5.d-1/a)*tdexp - (7.08981540362206410919267d0*derf(5.d-1/a)*tdexp)/a**2 - 1.6d1*a*(-2.d0 + 3.d0*tdexp) + t4 = (-1.d0 + 1.44d2*a**4*(-1.d0 + tdexp) - 2.d0*a**2*(1.1d1 + 7.d0*tdexp))/(3.2d1*a**4*(-1.d0 + tdexp) - 3.d0*tdexp + 1.417963080724412821838534d1*a*derf(5.d-1/a)*tdexp - 8.d0*a**2*(-2.d0 + 3.d0*tdexp))**2 + t5 = (-3.703703703703703703703704d-2*(-1.d0 + 1.44d2*a**4*(-1.d0 + tdexp) - 2.d0*a**2*(1.1d1 + 7.d0*tdexp )))/(a**3*(3.2d1*a**4*(-1.d0 + tdexp) - 3.d0*tdexp+ 1.417963080724412821838534d1*a*derf(5.d-1/a)*tdexp- 8.d0*a**2*(-2.d0 + 3.d0*tdexp))) + dberfda = t1 + t2*t3*t4 + t5 + + end if + + dberfda=dberfda*fak+berf*dfakda + + return + end + + +subroutine ecorrlr(rs,z,mu,eclr) +!cc Hartree atomic units used +!cc for given density parameter rs, spin polarization z +!cc and cutoff parameter mu +!cc gives the correlation energy of the LR gas +!cc => eclr + implicit none + double precision rs,z,mu,eclr,ec,ecd,ecz + double precision pi,alpha,cf,phi + double precision g0f,dpol,d2anti,d3anti,Qrpa + double precision coe2,coe3,coe4,coe5 + double precision a1,a2,a3,a4,b0 + double precision q1a,q2a,q3a,t1a,t2a,t3a,adib +!SCD + double precision ecdd,eczd +!SCF + pi=dacos(-1.d0) + alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) + cf=1.d0/alpha + + phi=((1.d0+z)**(2.d0/3.d0)+(1.d0-z)**(2.d0/3.d0))/2.d0 +!c parameters from the fit + adib = 0.784949d0 + q1a = -0.388d0 + q2a = 0.676d0 + q3a = 0.547d0 + t1a = -4.95d0 + t2a = 1.d0 + t3a = 0.31d0 + + b0=adib*rs + + d2anti=(q1a*rs+q2a*rs**2)*exp(-abs(q3a)*rs)/rs**2 + d3anti=(t1a*rs+t2a*rs**2)*exp(-abs(t3a)*rs)/rs**3 + + coe2=-3.d0/8.d0/rs**3*(1.d0-z**2)*(g0f(rs)-0.5d0) + + coe3=-(1.d0-z**2)*g0f(rs)/(sqrt(2.d0*pi)*rs**3) + + if(abs(z).eq.1.d0) then + + coe4=-9.d0/64.d0/rs**3*(dpol(rs) -cf**2*2d0**(5.d0/3.d0)/5.d0/rs**2) + coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*dpol(rs) + + else + + coe4=-9.d0/64.d0/rs**3*(((1.d0+z)/2.d0)**2* & + dpol(rs*(2d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+ & + (1.-z**2)*d2anti-cf**2/10.d0*((1.d0+z)**(8.d0/3.d0) & + +(1.-z)**(8.d0/3.d0))/rs**2) + + coe5=-9.d0/40.d0/(sqrt(2.d0*pi)*rs**3)*(((1.d0+z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* & + d3anti) + end if + +! call ecPW(rs,z,ec,ecd,ecz) +!SCD + call ecPW(rs,z,ec,ecd,ecz,ecdd,eczd) +!SCF + + a1=4.d0*b0**6*coe3+b0**8*coe5 + a2=4.d0*b0**6*coe2+b0**8*coe4+6.d0*b0**4*ec + a3=b0**8*coe3 + a4=b0**6*(b0**2*coe2+4.d0*ec) + + if(mu*sqrt(rs)/phi.lt.0.d0)then + print*,'phi',phi + print*,'mu ',mu + print*,'rs ',rs + pause + endif + eclr=(phi**3*Qrpa(mu*sqrt(rs)/phi)+a1*mu**3+a2*mu**4+a3*mu**5+ & + a4*mu**6+b0**8*mu**8*ec)/((1.d0+b0**2*mu**2)**4) + + return + end + +subroutine vcorrlr(rs,z,mu,vclrup,vclrdown,vclrupd,vclrdownd) +!SCF +!cc Hartree atomic units used +!cc for given density parameter rs, spin polarization z +!cc and cutoff mu it gives the correlation LSD potential for LR interaction +!cc => vclrup (spin-up electrons), vclrdown (spin-down electrons) + implicit none + double precision rs,z,mu,eclr,eclrrs,eclrz,vclrup,vclrdown + double precision ec,ecd,ecz + double precision pi,alpha,cf,phi + double precision g0f,dpol,d2anti,d3anti,Qrpa + double precision g0d,dpold,d2antid,d3antid,Qrpad,x + double precision coe2,coe3,coe4,coe5 + double precision coe2rs,coe3rs,coe4rs,coe5rs + double precision coe2z,coe3z,coe4z,coe5z + double precision a1,a2,a3,a4,a5,b0,a1rs,a2rs,a3rs,a4rs,a5rs,b0rs,a1z,a2z,a3z,a4z,a5z,b0z + double precision q1a,q2a,q3a,t1a,t2a,t3a,adib +!SCD + double precision coe2rsd,coe3rsd,coe4rsd,coe5rsd,f23 + double precision coe2zd,coe3zd,coe4zd,coe5zd + double precision g0dd,dpoldd,d2antidd,d3antidd + double precision a1rsd,a2rsd,a3rsd,a4rsd,a5rsd,a1zd,a2zd,a3zd,a4zd,a5zd + double precision ecdd,eczd,eclrrsd,vclrupd,vclrdownd + double precision u,du,ddu,v,dv,ddv,Qrpadd,eclrzd +!SCF + double precision sqrt2pi + pi=dacos(-1.d0) + alpha=(4.d0/9.d0/pi)**(1.d0/3.d0) + cf=1.d0/alpha +! sqrt2pi=sqrt(2.d0*pi) + sqrt2pi=2.5066282746310002d0 + + phi=((1.d0+z)**(2.d0/3.d0)+(1.d0-z)**(2.d0/3.d0))/2.d0 +!c parameters from the fit + adib = 0.784949d0 + q1a = -0.388d0 + q2a = 0.676d0 + q3a = 0.547d0 + t1a = -4.95d0 + t2a = 1.d0 + t3a = 0.31d0 +!SCD + f23 = 2.d0/3.d0 +!SCF + + b0=adib*rs + + d2anti=(q1a+q2a*rs)*exp(-q3a*rs)/rs + d3anti=(t1a+t2a*rs)*exp(-t3a*rs)/rs**2 + + d2antid=-((q1a + q1a*q3a*rs + q2a*q3a*rs**2)/rs**2)*exp(-q3a*rs) + d3antid=-((rs*t2a*(1d0 + rs*t3a) + t1a*(2d0 + rs*t3a))/rs**3)*exp(-rs*t3a) + +!SCD + d2antidd = exp(-q3a*rs)/rs**3*( & + q3a**2*q1a*rs**2+q2a*q3a**2*rs**3 & + +2.d0*q3a*q1a*rs+2.d0*q1a) + d3antidd = exp(-t3a*rs)/rs**4* & + (2.d0*t3a*t2a*rs**2 + 2.d0*t2a*rs & + + t1a*t3a**2*rs**2 + t2a*t3a**2*rs**3 & + + 4.d0*t1a*t3a*rs + 6.d0*t1a) +!SCF + coe2=-3.d0/8.d0/rs**3*(1.d0-z**2)*(g0f(rs)-0.5d0) + coe2rs=-3.d0/8.d0/rs**3*(1.d0-z**2)*g0d(rs)+ & + 9.d0/8.d0/rs**4*(1.d0-z**2)*(g0f(rs)-0.5d0) + coe2z=-3.d0/8.d0/rs**3*(-2.d0*z)*(g0f(rs)-0.5d0) +!SCD + coe2rsd=(1.d0-z**2)*(9.d0/4.d0/rs**4*g0d(rs) & + -3.d0/8.d0/rs**3*g0dd(rs) & + -9.d0/2.d0/rs**5*(g0f(rs)-0.5d0)) +! coe2zd=3.d0/4.d0/rs**3*(g0f(rs)-0.5d0) + coe2zd=0.d0 +!SCF + + coe3=-(1.d0-z**2)*g0f(rs)/(sqrt2pi*rs**3) + coe3rs=-(1.d0-z**2)*g0d(rs)/(sqrt2pi*rs**3)+ & + 3.d0*(1.d0-z**2)*g0f(rs)/(sqrt2pi*rs**4) + coe3z=2.d0*z*g0f(rs)/(sqrt2pi*rs**3) +!SCD + coe3rsd=(1.d0-z**2)/(sqrt2pi*rs**5) & + *(6.d0*rs*g0d(rs)-12.d0*g0f(rs) & + - g0dd(rs)*rs**2) +! coe3zd=2.d0*g0f(rs)/(sqrt2pi*rs**3) + coe3zd=0.d0 +!SCF + + if(abs(z).eq.1.d0) then + + coe4=-9.d0/64.d0/rs**3*(dpol(rs) & + -cf**2*2d0**(5.d0/3.d0)/5.d0/rs**2) + coe4rs=-3.d0/rs*coe4-9.d0/64.d0/rs**3*(dpold(rs) & + +2.d0*cf**2*2d0**(5.d0/3.d0)/5.d0/rs**3) + coe4z=-9.d0/64.d0/rs**3*(dpol(rs)-rs/6.d0*dpold(rs)-2.d0*d2anti & + -4.d0/15.d0/rs**2*cf**2*2.d0**(5.d0/3.d0))*z + coe5=-9.d0/40.d0/(sqrt2pi*rs**3)*dpol(rs) + coe5rs=-3.d0/rs*coe5-9.d0/40.d0/(sqrt2pi*rs**3)*dpold(rs) + coe5z=-9.d0/40.d0/(sqrt2pi*rs**3)*(dpol(rs)-rs/6.d0* & + dpold(rs)-2.d0*d3anti)*z +!SCD + coe4rsd = -9.d0/64.d0/rs**7*(12.d0*dpol(rs)*rs**2 & + -12.d0*cf**2*2d0**(f23) & + -6.d0*dpold(rs)*rs**3 & + +dpoldd(rs)*rs**4) + coe4zd = 0.d0 + + coe5rsd = -9.d0/40.d0/sqrt(2.d0/pi)/rs**5* & + (12.d0*dpol(rs)-6.d0*rs*dpold(rs) & + +rs**2*dpoldd(rs)) + coe5zd = 0.d0 +!SCF + + else + + coe4=-9.d0/64.d0/rs**3*(((1.d0+z)/2.d0)**2* & + dpol(rs*(2d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+ & + (1.-z**2)*d2anti-cf**2/10.d0*((1.d0+z)**(8.d0/3.d0) & + +(1.-z)**(8.d0/3.d0))/rs**2) + coe4rs=-3.d0/rs*coe4-9.d0/64.d0/rs**3*( & + ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2d0/(1.d0+z))** & + (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* & + dpold(rs*(2d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* & + d2antid+cf**2/5.d0*((1.d0+z)**(8.d0/3.d0) & + +(1.d0-z)**(8.d0/3.d0))/rs**3) + coe4z=-9.d0/64.d0/rs**3*(1.d0/2.d0*(1.d0+z)* & + dpol(rs*(2d0/(1.d0+z))**(1.d0/3.d0))-1.d0/2.d0*(1.d0-z)* & + dpol(rs*(2d0/(1.d0-z))**(1.d0/3.d0))-rs/6.d0* & + ((1.d0+z)/2.d0)**(2.d0/3.d0)*dpold(rs*(2d0/(1.d0+z)) & + **(1.d0/3.d0))+rs/6.d0*((1.d0-z)/2.d0)**(2.d0/3.d0) & + *dpold(rs*(2d0/(1.d0-z))**(1.d0/3.d0))-2.d0*z*d2anti- & + 4.d0/15.d0/rs**2*cf**2*((1.d0+z)**(5.d0/3.d0)- & + (1.d0-z)**(5.d0/3.d0))) + + coe5=-9.d0/40.d0/(sqrt2pi*rs**3)*(((1.d0+z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0+z))**(1.d0/3.d0))+((1.d0-z)/2.d0)**2 & + *dpol(rs*(2.d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* & + d3anti) + coe5rs=-3.d0/rs*coe5-9.d0/(40.d0*sqrt2pi*rs**3)*( & + ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2d0/(1.d0+z))** & + (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* & + dpold(rs*(2d0/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* & + d3antid) + coe5z=-9.d0/40.d0/(sqrt2pi*rs**3)*(1.d0/2.d0*(1.d0+z)* & + dpol(rs*(2d0/(1.d0+z))**(1.d0/3.d0))-1.d0/2.d0*(1.d0-z)* & + dpol(rs*(2d0/(1.d0-z))**(1.d0/3.d0))-rs/6.d0* & + ((1.d0+z)/2.d0)**(2.d0/3.d0)*dpold(rs*(2d0/(1.d0+z)) & + **(1.d0/3.d0))+rs/6.d0*((1.d0-z)/2.d0)**(2.d0/3.d0) & + *dpold(rs*(2d0/(1.d0-z))**(1.d0/3.d0))-2.d0*z*d3anti) +!SCD +! coe4rsd=+3.d0/rs**2*coe4-3.d0/rs*coe4rs+27.d0/64.d0/rs**4*( +! S ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2/(1.d0+z))** +! S (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* +! S dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* +! S d2antid+cf**2/5.d0*((1.d0+z)**(8.d0/3.d0) +! S +(1.d0-z)**(8.d0/3.d0))/rs**3)-9.d0/64.d0/rs**3*( +! S ((1.d0+z)/2.d0)**(4.d0/3.d0)*dpoldd(rs*(2/(1.d0+z))** +! S (1.d0/3.d0))+((1.d0-z)/2.d0)**(4.d0/3.d0)* +! S dpoldd(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* +! S d2antidd-3.d0*cf**2/5.d0*((1.d0+z)**(8.d0/3.d0) +! S +(1.d0-z)**(8.d0/3.d0))/rs**4) +! Case where z=0 + coe4rsd = -3.d0*coe4rs/rs + 3.d0*coe4/rs**2 & + + 27.d0/64.d0/rs**4*(2d0**(-2.d0/3.d0)* & + dpold(2d0**(1.d0/3.d0)*rs)+d2antid & + + 2.d0/5.d0/rs**3*cf**2) & + -9.d0/64.d0/rs**3*(2d0**(-1.d0/3.d0) & + * dpoldd(2d0**(1.d0/3.d0)*rs) & + +d2antidd - 6.d0/5.d0*cf**2/rs**4) + coe4zd = 0.d0 + +! coe5rsd = 3.d0/rs**2*coe5-3.d0/rs*coe5rs +! > +27.d0/40.d0/(sqrt2pi*rs**4)*( +! $ ((1.d0+z)/2.d0)**(5.d0/3.d0)*dpold(rs*(2/(1.d0+z))** +! $ (1.d0/3.d0))+((1.d0-z)/2.d0)**(5.d0/3.d0)* +! $ dpold(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* +! $ d3antid)-9.d0/40.d0/(sqrt2pi*rs**3)*( +! $ ((1.d0+z)/2.d0)**(4.d0/3.d0)*dpoldd(rs*(2/(1.d0+z))** +! $ (1.d0/3.d0))+((1.d0-z)/2.d0)**(4.d0/3.d0)* +! $ dpoldd(rs*(2/(1.d0-z))**(1.d0/3.d0))+(1.d0-z**2)* +! $ d3antidd) +! Case were z=0 + coe5rsd = -3.d0*coe5rs/rs + 3.d0*coe5/rs**2 & + +27.d0/(40.d0*sqrt2pi*rs**4)* & + (2d0**(-2.d0/3.d0)*dpold(2d0**(1.d0/3.d0)*rs)+d3antid) & + -9.d0/(40.d0*sqrt2pi*rs**3)*(2d0**(-1.d0/3.d0)* & + dpoldd(2d0**(1.d0/3.d0)*rs)+d3antidd) + coe5zd = 0.d0 +!SCF + + end if + +! call ecPW(rs,z,ec,ecd,ecz) +!SCD + call ecPW(rs,z,ec,ecd,ecz,ecdd,eczd) +!SCF + + a1=4.d0*b0**6*coe3+b0**8*coe5 + a1rs=24.d0*adib*b0**5*coe3+4.d0*b0**6*coe3rs+8.d0*adib*b0**7* coe5+b0**8*coe5rs + a1z=4.d0*b0**6*coe3z+b0**8*coe5z + + a2=4.d0*b0**6*coe2+b0**8*coe4+6.d0*b0**4*ec + a2rs=24.d0*adib*b0**5*coe2+4.d0*b0**6*coe2rs+8.d0*adib*b0**7* & + coe4+b0**8*coe4rs+24.d0*adib*b0**3*ec+6.d0*b0**4*ecd + a2z=4.d0*b0**6*coe2z+b0**8*coe4z+6.d0*b0**4*ecz + + a3=b0**8*coe3 + a3rs=8.d0*adib*b0**7*coe3+b0**8*coe3rs + a3z=b0**8*coe3z + + a4=b0**6*(b0**2*coe2+4.d0*ec) + a4rs=8.d0*adib*b0**7*coe2+b0**8*coe2rs+24.d0*adib*b0**5*ec+ & + 4.d0*b0**6*ecd + a4z=b0**6*(b0**2*coe2z+4.d0*ecz) + + a5=b0**8*ec + a5rs=8.d0*adib*b0**7*ec+b0**8*ecd + a5z=b0**8*ecz +!SCD + a1rsd = 120.d0*adib**2*b0**4*coe3 + 48.d0*adib*b0**5*coe3rs & + + 4.d0*b0**6*coe3rsd + 56.d0*adib**2*b0**6*coe5 & + + 16.d0*adib*b0**7*coe5rs + b0**8*coe5rsd +! a1zd = 4.d0*b0**6*coe3zd+b0**8*coe5zd + a1zd = 0.d0 +! + a2rsd = 120.d0*adib**2*b0**4*coe2 + 48.d0*adib*b0**5*coe2rs & + + 4.d0*b0**6*coe2rsd + 56.d0*b0**6*adib**2*coe4 & + + 16.d0*b0**7*adib*coe4rs + b0**8*coe4rsd & + + 72.d0*b0**2*adib**2*ec + 48.d0*b0**3*adib*ecd & + + 6.d0*b0**4*ecdd +! a2zd = 4.d0*b0**6*coe2zd+b0**8*coe4zd+6.d0*b0**4*eczd + a2zd = 0.d0 +! + a3rsd = 56.d0*adib**2*b0**6*coe3 + 16.d0*adib*b0**7*coe3rs & + + b0**8*coe3rsd +! a3zd = b0**8*coe3zd + a3zd = 0.d0 +! + a4rsd = 56.d0*adib**2*b0**6*coe2 + 16.d0*adib*b0**7*coe2rs & + + b0**8*coe2rsd + 120.d0*adib**2*b0**4*ec & + + 48.d0*adib*b0**5*ecd + 4.d0*b0**6*ecdd +! a4zd = b0**6*(b0**2*coe2zd+4.d0*eczd) + a4zd = 0.d0 +! + a5rsd = 56.d0*adib**2*b0**6*ec + 16.d0*adib*b0**7*ecd & + + b0**8*ecdd +! a5zd=b0**8*eczd + a5zd= 0.d0 +!SCF + + x=mu*sqrt(rs)/phi + + eclr=(phi**3*Qrpa(x)+a1*mu**3+a2*mu**4+a3*mu**5+ & + a4*mu**6+a5*mu**8)/((1.d0+b0**2*mu**2)**4) + + eclrrs=-4.d0/(1.d0+b0**2*mu**2)*2.d0*adib*b0*mu**2*eclr+ & + 1.d0/((1.d0+b0**2*mu**2)**4)*(phi**2*mu/(2.d0*sqrt(rs)) & + *Qrpad(x)+ & + a1rs*mu**3+a2rs*mu**4+a3rs*mu**5+a4rs*mu**6+a5rs*mu**8) +!SCD +! u= +! > (phi**2*mu/(2.d0*sqrt(rs)) +! > *Qrpad(x)+ +! > a1rs*mu**3+a2rs*mu**4+a3rs*mu**5+a4rs*mu**6+a5rs*mu**8) +! du= +! > (-phi**2*mu/(4.d0*rs**(3.d0/2.d0))*Qrpad(x) +! > +mu**2*phi/(4.d0*rs)*Qrpadd(x)*+ +! > a1rsd*mu**3+a2rsd*mu**4+a3rsd*mu**5+a4rsd*mu**6+a5rsd*mu**8) +! v = (1.d0+b0**2*mu**2)**4 +! dv= 8.d0*(1.d0+(b0*mu)**2)**3*b0*adib*mu**2 +! eclrrsd= -8.d0*adib*b0*mu**2*eclrrs/(1.d0+b0**2*mu**2) +! > -8.d0*(adib*mu)**2/(1.d0+b0**2*mu**2)*eclr +! > +16.d0*(adib*mu)**4*rs**2/((1.d0+(b0*mu)**2))**2*eclr +! > +du/v-u*dv/v**2 + u = (phi**3*Qrpa(x)+a1*mu**3+a2*mu**4+a3*mu**5+a4*mu**6+a5*mu**8) + du = (phi**2*mu/(2.d0*sqrt(rs))*Qrpad(x)+a1rs*mu**3+a2rs*mu**4 & + +a3rs*mu**5+a4rs*mu**6+a5rs*mu**8) + ddu = - phi**2*mu/(4.d0*rs**(3.d0/2.d0))*Qrpad(x) & + + phi*mu**2/(4.d0*rs)*Qrpadd(x)+a1rsd*mu**3+a2rsd*mu**4 & + + a3rsd*mu**5+a4rsd*mu**6+a5rsd*mu**8 + v = ((1.d0+b0**2*mu**2)**4) + dv = 8.d0*(1.d0+b0**2*mu**2)**3*(adib**2*mu**2*rs) + ddv = 48.d0*(1.d0+b0**2*mu**2)**2*(adib**2*mu**2*rs)**2 & + + 8.d0*(1.d0+b0**2*mu**2)**3*(adib**2*mu**2) +! eclrrsd = ddu/v - du*dv/v**2 - dv/v*eclrrs +! > - eclr*(ddv/v - (dv/v)**2) + eclrrsd = ddu/v - 2.d0*du*dv/v**2 - u*ddv/v**2 & + + 2.d0*u*dv**2/v**3 + +!SCF + + + if(z.eq.1.d0) then + vclrup=eclr-rs/3.d0*eclrrs + vclrdown=0.d0 +!SCD + vclrupd = eclrrs-1.d0/3.d0*eclrrs -rs/3.d0*eclrrsd + vclrdownd = 0.d0 +!SCF + elseif(z.eq.-1.d0) then + vclrup=0.d0 + vclrdown=eclr-rs/3.d0*eclrrs +!SCD + vclrupd = 0.d0 + vclrdownd = eclrrs-1.d0/3.d0*eclrrs & + -rs/3.d0*eclrrsd +!SCF + else + + eclrz=(phi**2*((1.d0+z)**(-1.d0/3.d0)-(1.d0-z)**(-1.d0/3.d0)) & + *Qrpa(x)-phi*Qrpad(x)*mu*sqrt(rs)*((1.d0+z)**(-1.d0/3.d0) & + -(1.d0-z)**(-1.d0/3.d0))/3.d0+ & + a1z*mu**3+a2z*mu**4+a3z*mu**5+ & + a4z*mu**6+a5z*mu**8)/((1.d0+b0**2*mu**2)**4) +!SCD + eclrzd=0.d0 +!CSF + + vclrup=eclr-rs/3.d0*eclrrs-(z-1.d0)*eclrz + vclrdown=eclr-rs/3.d0*eclrrs-(z+1.d0)*eclrz +!SCD + vclrupd = 2.d0/3.d0*eclrrs - rs/3.d0*eclrrsd + vclrdownd = 2.d0/3.d0*eclrrs - rs/3.d0*eclrrsd +!SCF + end if + return + end + + + double precision function g0f(x) +!cc on-top pair-distribution function +!cc Gori-Giorgi and Perdew, PRB 64, 155102 (2001) +!cc x -> rs + implicit none + double precision C0f,D0f,E0f,F0f,x + C0f = 0.0819306d0 + D0f = 0.752411d0 + E0f = -0.0127713d0 + F0f = 0.00185898d0 + g0f=(1.d0-(0.7317d0-D0f)*x+C0f*x**2+E0f*x**3+ & + F0f*x**4)*exp(-abs(D0f)*x)/2.d0 + return + end + + double precision function g0d(rs) +!cc derivative of on-top pair-distribution function +!cc Gori-Giorgi and Perdew, PRB 64, 155102 (2001) + implicit none + double precision Bg0,Cg0,Dg0,Eg0,Fg0,rs,expsum + Cg0 = 0.0819306d0 + Fg0 = 0.752411d0 + Dg0 = -0.0127713d0 + Eg0 = 0.00185898d0 + Bg0 =0.7317d0-Fg0 + expsum=exp(-Fg0*rs) + g0d=(-Bg0+2d0*Cg0*rs+3d0*Dg0*rs**2+4d0*Eg0*rs**3)/2.d0 & + *expsum & + - (Fg0*(1d0 - Bg0*rs + Cg0*rs**2 + Dg0*rs**3 + Eg0*rs**4))/ & + 2.d0*expsum + return + end +!SCD + double precision function g0dd(rs) +!cc derivative of g0d + implicit none + double precision Bg0,Cg0,Dg0,Eg0,Fg0,rs,expsum + Cg0 = 0.0819306d0 + Fg0 = 0.752411d0 + Dg0 = -0.0127713d0 + Eg0 = 0.00185898d0 + Bg0 = 0.7317d0-Fg0 + expsum=exp(-Fg0*rs) + g0dd = (2.d0*Cg0+6.d0*Dg0*rs+12.d0*Eg0*rs**2)/2.d0* & + expsum & + - (-Bg0+2.d0*Cg0*rs+3.d0*Dg0*rs**2+4.d0*Eg0*rs**3)*Fg0* & + expsum & + + (1.d0-Bg0*rs+Cg0*rs**2+Dg0*rs**3+Eg0*rs**4)*Fg0**2* & + expsum/(2.d0) + return + end +!SCF + + double precision function dpol(rs) + implicit none + double precision cf,pi,rs,p2p,p3p + pi=dacos(-1.d0) + cf=(9.d0*pi/4.d0)**(1.d0/3.d0) + p2p = 0.04d0 + p3p = 0.4319d0 + dpol=2.d0**(5.d0/3.d0)/5.d0*cf**2/rs**2*(1.d0+(p3p-0.454555d0)*rs) & + /(1.d0+p3p*rs+p2p*rs**2) + return + end + + double precision function dpold(rs) + implicit none + double precision cf,pi,rs,p2p,p3p + pi=dacos(-1.d0) + cf=(9.d0*pi/4.d0)**(1.d0/3.d0) + p2p = 0.04d0 + p3p = 0.4319d0 + dpold=2.d0**(5.d0/3.d0)/5.d0*cf**2* & + (-2.d0 + (0.454555d0 - 4.d0*p3p)*rs + & + (-4.d0*p2p + & + (0.90911d0 - 2.d0*p3p)*p3p)*rs**2 & + + p2p*(1.363665d0 - 3.d0*p3p)* & + rs**3)/ & + (rs**3*(1.d0 + p3p*rs + p2p*rs**2)**2) + return + end + +!SCD + double precision function dpoldd(rs) + implicit none + double precision cf,pi,rs,p2p,p3p,p4p + pi=dacos(-1.d0) + cf=(9.d0*pi/4.d0)**(1.d0/3.d0) + p2p = 0.04d0 + p3p = 0.4319d0 + p4p = 0.454555d0 + dpoldd = 4.d0/5.d0*2d0**(2.d0/3.d0)*cf**2*( & + 9.d0*p2p*rs**2 + 8.d0*p3p**2*rs**4*p2p & + + 6.d0*p3p*rs**5*p2p**2 - 3.d0*rs**3*p4p*p3p**2 & + - 6.d0*rs**5*p4p*p2p**2 - 3.d0*rs**2*p3p*p4p & + - 3.d0*rs**3*p2p*p4p + 10.d0*p2p**2*rs**4 & + + 9.d0*p3p*rs + 9.d0*p3p**2*rs**2 + 3.d0 & + + 3.d0*p3p**3*rs**3 - 8.d0*rs**4*p2p*p3p*p4p & + + 18.d0*p3p*p2p*rs**3 - rs*p4p)/ & + (rs**4*(1.d0+p3p*rs+p2p*rs**2)**3) + return + end +!SCF + double precision function Qrpa(x) + implicit none + double precision pi,a2,b2,c2,d2,x,Acoul + pi=dacos(-1.d0) + Acoul=2.d0*(log(2.d0)-1.d0)/pi**2 + a2 = 5.84605d0 + c2 = 3.91744d0 + d2 = 3.44851d0 + b2=d2-3.d0/(2.d0*pi*Acoul)*(4.d0/(9.d0*pi))**(1.d0/3.d0) + !if(((1.d0+a2*x+b2*x**2+c2*x**3)/(1.d0+a2*x+d2*x**2)).le.0.d0)then + ! print*,(1.d0+a2*x+b2*x**2+c2*x**3)/(1.d0+a2*x+d2*x**2) + ! print*,(1.d0+a2*x+b2*x**2+c2*x**3),(1.d0+a2*x+d2*x**2) + ! print*,x + ! pause + !endif + !Qrpa=Acoul*log(dabs((1.d0+a2*x+b2*x**2+c2*x**3)/(1.d0+a2*x+d2*x**2))) + Qrpa=Acoul*log((1.d0+a2*x+b2*x**2+c2*x**3)/(1.d0+a2*x+d2*x**2)) + return + end + + double precision function Qrpad(x) + implicit none + double precision pi,a2,b2,c2,d2,x,Acoul + pi=dacos(-1.d0) + Acoul=2.d0*(log(2.d0)-1.d0)/pi**2 + a2 = 5.84605d0 + c2 = 3.91744d0 + d2 = 3.44851d0 + b2=d2-3.d0/(2.d0*pi*Acoul)*(4.d0/(9.d0*pi))**(1.d0/3.d0) + Qrpad=Acoul*((x*(b2*(2.d0 + a2*x) + & + c2*x*(3.d0 + 2.d0*a2*x) + & + d2*(-2.d0 - a2*x + c2*x**3)))/ & + ((1.d0 + a2*x + d2*x**2)* & + (1.d0 + a2*x + b2*x**2 + c2*x**3))) + return + end +!SCD + double precision function Qrpadd(x) + implicit none + double precision pi,a2,b2,c2,d2,x,Acoul + double precision uQ,duQ,dduQ,vQ,dvQ,ddvQ + pi=dacos(-1.d0) + Acoul=2.d0*(log(2.d0)-1.d0)/pi**2 + a2 = 5.84605d0 + c2 = 3.91744d0 + d2 = 3.44851d0 + b2=d2-3.d0/(2.d0*pi*Acoul)*(4.d0/(9.d0*pi))**(1.d0/3.d0) + uQ = 1.d0 + a2*x + b2*x**2 + c2*x**3 + duQ = a2 + 2.d0*b2*x + 3.d0*c2*x**2 + dduQ= 2.d0*b2 + 6.d0*c2*x + vQ = 1.d0 + a2*x + d2*x**2 + dvQ = a2 + 2.d0*d2*x + ddvQ= 2.d0*d2 + Qrpadd = Acoul*(dduQ/uQ - (duQ/uQ)**2 -ddvQ/vQ +(dvQ/vQ)**2) + return + end +!SCF + +!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +! correlation energy and its derivative w.r.t. rs and z at mu=infinity +! Perdew & Wang PRB 45, 13244 (1992) +!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +! subroutine ecPW(x,y,ec,ecd,ecz) +!SCD + subroutine ecPW(x,y,ec,ecd,ecz,ecdd,eczd) +!SCF +! in Hartree; ec=ec(rs,zeta) +! x -> rs; y -> zeta +!cc ecd is d/drs ec +!cc ecz is d/dz ec + implicit none + double precision pi,f02,ff,x,y,ec,ecd,ec0,ec0d,ec1,ec1d,aaa,G,Gd,alfac,alfacd,ecz +!SCD + double precision alfacdd,ec0dd,ecdd,ec1dd,Gdd,eczd +!SCF + pi=dacos(-1.d0) + + f02=4.d0/(9.d0*(2.d0**(1.d0/3.d0)-1.d0)) + + ff=((1.d0+y)**(4.d0/3.d0)+(1.d0-y)**(4.d0/3.d0)- & + 2.d0)/(2.d0**(4.d0/3.d0)-2.d0) + + aaa=(1.d0-log(2.d0))/pi**2 + call GPW(x,aaa,0.21370d0,7.5957d0,3.5876d0, & + 1.6382d0,0.49294d0,G,Gd,Gdd) + ec0=G + ec0d=Gd + ec0dd=Gdd + + aaa=aaa/2.d0 + call GPW(x,aaa,0.20548d0,14.1189d0,6.1977d0, & + 3.3662d0,0.62517d0,G,Gd,Gdd) + ec1=G + ec1d=Gd + ec1dd=Gdd + call GPW(x,0.016887d0,0.11125d0,10.357d0,3.6231d0,0.88026d0,0.49671d0,G,Gd,Gdd) + alfac=-G + alfacd=-Gd + alfacdd=-Gdd + + ec=ec0+alfac*ff/f02*(1.d0-y**4)+(ec1-ec0)*ff*y**4 + ecd=ec0d+alfacd*ff/f02*(1.d0-y**4)+(ec1d-ec0d)* & + ff*y**4 + ecz=alfac*(-4.d0*y**3)*ff/f02+alfac*(1.d0-y**4)/f02* & + 4.d0/3.d0*((1.d0+y)**(1.d0/3.d0)-(1.d0-y)**(1.d0/3.d0))/ & + (2.d0**(4.d0/3.d0)-2.d0)+(ec1-ec0)*(4.d0*y**3*ff+ & + 4.d0/3.d0*((1.d0+y)**(1.d0/3.d0)-(1.d0-y)**(1.d0/3.d0))/ & + (2.d0**(4.d0/3.d0)-2.d0)*y**4) +!SCD + ecdd = ec0dd + alfacdd*ff/f02*(1.D0-y**4) + (ec1dd - ec0dd)*ff*y**4 + + eczd = 0.d0 +!SCF + + return + end + +! subroutine GPW(x,Ac,alfa1,beta1,beta2,beta3,beta4,G,Gd) +!SCD + subroutine GPW(x,Ac,alfa1,beta1,beta2,beta3,beta4,G,Gd,Gdd) +!SCF +!cc Gd is d/drs G +!cc Gdd is d/drs Gd + implicit none + double precision G,Gd,Ac,alfa1,beta1,beta2,beta3,beta4,x +!SCD + double precision f32,f34,f12,f14,Gdd + double precision A,dA,ddA,B +!SCF + double precision sqrtx + sqrtx=sqrt(x) + G=-2.d0*Ac*(1.d0+alfa1*x)*dlog(1.d0+1.d0/(2.d0* & + Ac*(beta1*x**0.5d0+ & + beta2*x+beta3*x**1.5d0+beta4*x**2))) + Gd=(1.d0+alfa1*x)*(beta2+beta1/(2.d0*sqrtx)+3.d0*beta3* & + sqrtx/2.d0+2.d0*beta4*x)/((beta1*sqrtx+beta2*x+ & + beta3*x**(3.d0/2.d0)+beta4*x**2)**2*(1.d0+1.d0/ & + (2.d0*Ac*(beta1*sqrtx+beta2*x+beta3*x**(3.d0/2.d0)+& + beta4*x**2))))-2.d0*Ac*alfa1*dlog(1.d0+1.d0/(2.d0*Ac*& + (beta1*sqrtx+beta2*x+beta3*x**(3.d0/2.d0)+& + beta4*x**2))) +!SCD + f12=(1.d0)/(2.d0) + f14=(1.d0)/(4.d0) + f32=(3.d0)/(2.d0) + f34=(3.d0)/(4.d0) + A = beta1*sqrtx + beta2*x + beta3*x**(3.d0/2.d0) + beta4*x**2 + dA = f12*beta1/sqrtx + beta2 + f32*beta3*sqrtx + 2.d0*beta4*x + ddA = -f14*beta1*x**(-f32) + f34*beta3/sqrtx + 2.d0*beta4 + B = 1.d0 + 1.d0/(2.d0*Ac*A) + Gdd = 2.d0*alfa1*dA/(A**2*B) & + - 2.d0*(1.d0+alfa1*x)*dA**2/(A**3*B) & + + (1.d0+alfa1*x)*ddA/(A**2*B) & + + (1.d0+alfa1*x)*dA**2/(A**4*B**2*Ac*2.d0) + return + end diff --git a/src/dft_utils_one_body/exc_sr_pbe.irp.f b/src/dft_utils_one_body/exc_sr_pbe.irp.f new file mode 100644 index 00000000..ab4d4697 --- /dev/null +++ b/src/dft_utils_one_body/exc_sr_pbe.irp.f @@ -0,0 +1,477 @@ +subroutine ec_pbe_sr(mu,rhoc,rhoo,sigmacc,sigmaco,sigmaoo,ec,vrhoc,vrhoo,vsigmacc,vsigmaco,vsigmaoo) +!************************************************************************ +! Short-range PBE correlation energy functional for erf interaction +! +! +!************************************************************************ +include 'constants.include.F' + implicit none +! input + double precision, intent(in) :: rhoc,rhoo,mu + double precision, intent(in) :: sigmacc,sigmaco,sigmaoo +! output + double precision, intent(out) :: ec + double precision, intent(out) :: vrhoc,vrhoo + double precision, intent(out) :: vsigmacc,vsigmaco,vsigmaoo +! local + double precision tol + parameter(tol=1d-12) + + character(len=30) namedummy + + double precision eccerflda + double precision vrhoccerflda + double precision vrhoocerflda + + double precision ecclda + double precision vrhocclda + double precision vrhooclda + + integer i,igrad + double precision rho,drho2,rhoa,rhob + double precision ecerflda,decerfldadrho + double precision eclda,decldadrho + double precision ecerfpbe,decerfpbedrho,decerfpbedrhoo + double precision decerfpbeddrho2 + double precision arglog,arglogs,arglogss,alpha,beta,betas,gamma + double precision Aa,Ab,Ac,Aas,tq,tqs,tqss,decerfpur,decpur + double precision t1,t2,t3,t4,t5,t6,t7,t8,t9,t10 + double precision t11,t12,t13,t14,t15,t16,t17,t18,t19 + double precision zeta,phi,phi2,phi3,phi4,phis,arglogsc + double precision dlogarglog + double precision, parameter :: f13=0.333333333333333d0 + + +! Parameter of the modified interaction + + ec = 0.d0 + vrhoc = 0.d0 + vrhoo = 0.d0 + vsigmacc = 0.d0 + vsigmaco = 0.d0 + vsigmaoo = 0.d0 + +! First-type gradient functional + igrad=1 + + alpha=2.78d0 + gamma=3.1091d-2 + + +! test on density + if (dabs(rhoc).lt.tol) return + double precision :: vc_a,vc_b +! Spin polarisation + rhoa=max((rhoc+rhoo)*.5d0,1.0d-15) + rhob=max((rhoc-rhoo)*.5d0,1.0d-15) + + call ec_lda_sr(mu,rhoa,rhob,eccerflda,vc_a,vc_b) + ecerflda = eccerflda + vrhoccerflda = 0.5d0 * (vc_a + vc_b) + vrhoocerflda = 0.5d0 * (vc_a - vc_b) + +! Density + rho = rhoc + +! Square of density gradient + drho2 = sigmacc + + zeta = (rhoa-rhob)/(rhoa+rhob) + +! LDA energy density + double precision :: vc_a_lda,vc_b_lda + call ec_lda(rhoa,rhob,ecclda,vc_a_lda,vc_b_lda) + eclda = ecclda + !decldadrho = 0.5d0 * (vc_a_lda+vc_b_lda) + !decldadrho = 0.5d0 * (vc_a_lda-vc_b_lda) + + if ((ecerflda/eclda).le.0d0) then + beta=0d0 + else + beta=6.6725d-2*(ecerflda/eclda)**alpha + endif + phi=((1d0+zeta)**(2d0/3d0)+(1d0-zeta)**(2d0/3d0))/2d0 + phi2=phi*phi + phi3=phi2*phi + phi4=phi3*phi + tq=drho2*6.346820607d-2*rho**(-7d0/3d0)/phi2 + Ab=dexp(-ecerflda/(rho*gamma*phi3))-1d0 + if (dabs(Ab).le.dabs(beta*tol)) then + ecerfpbe=ecerflda + else + Aa=beta/(gamma*Ab) + Ac=1d0+Aa*tq+Aa**2*tq**2 + if (Aa.lt.tol) Aa=tol + arglog=1d0+beta*(1d0-1d0/Ac)/(gamma*Aa) + ecerfpbe=ecerflda+rho*phi3*gamma*dlog(arglog) + end if + + ec = ecerfpbe + +! if(ldebug) write(*,*)"ecerfpbe=",ecerfpbe + +! Derive + + +! LDA energy density derivative + decerfldadrho = vrhoccerflda + decldadrho = 0.5d0 * (vc_a_lda+vc_b_lda) + + decerfpur=(decerfldadrho-ecerflda/rho)/rho + decpur=(decldadrho-eclda/rho)/rho + betas=alpha*beta*(decerfpur*rho/ecerflda-decpur*rho/eclda) + phis=((rhoa - rhob)*((rhoa/(rhoa + rhob))**f13 - (rhob/(rhoa + rhob))**f13))/(3d0*2d0**f13*(rhoa/(rhoa + rhob))**f13*(rhob/(rhoa + rhob))**f13*(rhoa + rhob)**2) + if (dabs(Ab).le.dabs(beta*tol)) then + decerfpbedrho=decerfldadrho + else + Aas=betas/(gamma*Ab)+Aa*(1d0+1d0/Ab)*(decerfpur/phi3-3d0*phis*ecerflda/(rho*phi4))/gamma + tqs=-7d0*tq/(3d0*rho)-2d0*tq*phis/phi + arglogs=betas*tq*(1d0+Aa*tq)/(Ac*gamma)+beta*tqs*(1d0+Aa*tq)/(Ac*gamma)-beta*tq*Aa*tq*(Aas*tq+Aa*tqs)*(2d0+Aa*tq)/(Ac**2*gamma) + dlogarglog=dlog(arglog) + decerfpbedrho=decerfldadrho+gamma*(phi3*dlogarglog+3d0*rho*phis*phi2*dlogarglog+rho*phi3*arglogs/arglog) + end if + + if (dabs(Ab).le.dabs(beta*tol)) then + decerfpbeddrho2=0.0d0 + else + arglogsc=Ab*(Aa+2d0*Aa*Aa*tq)/(Ac*Ac) + tqss=6.346820607d-2*rho**(-7d0/3d0)/phi2 + arglogss=tqss*arglogsc + decerfpbeddrho2=rho*gamma*phi3*arglogss/arglog + end if + +! LDA energy density derivative + decerfldadrho = vrhoocerflda + decldadrho = 0.5d0 * (vc_a_lda-vc_b_lda) + + decerfpur=decerfldadrho/rho + decpur=decldadrho/rho + betas=alpha*beta*(decerfpur*rho/ecerflda-decpur*rho/eclda) + phis=(rhob*(rhoa/(rhoa + rhob))**(2d0*f13)-rhoa*(rhob/(rhoa + rhob))**(2d0*f13))/(3d0*2d0**f13*rhoa*rhob) + + if (dabs(Ab).le.dabs(beta*tol)) then + decerfpbedrhoo=decerfldadrho + else + Aas=betas/(gamma*Ab)+Aa*(1d0+1d0/Ab)*(decerfpur/phi3-3d0*phis*ecerflda/(rho*phi4))/gamma + tqs=-2d0*tq*phis/phi + arglogs=betas*tq*(1d0+Aa*tq)/(Ac*gamma)+beta*tqs*(1d0+Aa*tq)/(Ac*gamma)-beta*tq*Aa*tq*(Aas*tq+Aa*tqs)*(2d0+Aa*tq)/(Ac**2*gamma) + decerfpbedrhoo=decerfldadrho+gamma*(3d0*rho*phis*phi2*dlog(arglog)+rho*phi3*arglogs/arglog) + end if + +! derivatives + vrhoc = vrhoc + decerfpbedrho + vrhoo = vrhoo + decerfpbedrhoo + vsigmacc = vsigmacc + decerfpbeddrho2 + + +end + +subroutine ex_pbe_sr(mu,rho_a,rho_b,grd_rho_a_2,grd_rho_b_2,grd_rho_a_b,ex,vx_rho_a,vx_rho_b,vx_grd_rho_a_2,vx_grd_rho_b_2,vx_grd_rho_a_b) +BEGIN_DOC +!rho_a = density alpha +!rho_b = density beta +!grd_rho_a_2 = (gradient rho_a)^2 +!grd_rho_b_2 = (gradient rho_b)^2 +!grd_rho_a_b = (gradient rho_a).(gradient rho_b) +!ex = exchange energy density at point r +!vx_rho_a = d ex / d rho_a +!vx_rho_b = d ex / d rho_b +!vx_grd_rho_a_2 = d ex / d grd_rho_a_2 +!vx_grd_rho_b_2 = d ex / d grd_rho_b_2 +!vx_grd_rho_a_b = d ex / d grd_rho_a_b +END_DOC + + implicit none + +! input + double precision, intent(in) :: mu,rho_a, rho_b + double precision, intent(in) :: grd_rho_a_2, grd_rho_b_2, grd_rho_a_b + +! output + double precision, intent(out) :: ex + double precision, intent(out) :: vx_rho_a, vx_rho_b + double precision, intent(out) :: vx_grd_rho_a_2, vx_grd_rho_b_2, vx_grd_rho_a_b + +! function + double precision berf + double precision dberfda + +! local + double precision, parameter :: tol=1d-12 + double precision, parameter :: f13=0.333333333333333d0 + + double precision exerflda,vxerflda_a,vxerflda_b + double precision dexerfldadrho + double precision exerfpbe_a, exerfpbe_b + double precision dexerfpbedrho_a, dexerfpbedrho_b + double precision dexerfpbeddrho2_a, dexerfpbeddrho2_b + + double precision rho,drho2 + double precision rho_a_2, rho_b_2 + double precision t1,t2,t3,t4 + double precision kappa,sq,sqs,sqss,fx,fxs,ksig + +! Parameter of the modified interaction + +! initialization + ex=0.d0 + vx_rho_a=0.d0 + vx_rho_b=0.d0 + vx_grd_rho_a_2=0.d0 + vx_grd_rho_b_2=0.d0 + vx_grd_rho_a_b=0.d0 + + +! spin scaling relation Ex[rho_a,rho_b] = (1/2) (Ex[2rho_a,2rho_a] + Ex[2rho_b,2rho_b]) + +! two times spin alpha density + rho = max(rho_a,tol)*2.d0 + +! test on density + if (rho >= tol) then + +! call srLDA Ex[2*rho_a,2*rho_a] + call ex_lda_sr(mu,rho_a,rho_a,exerflda,vxerflda_a,vxerflda_b) + dexerfldadrho = (vxerflda_a + vxerflda_b)*0.5d0 + +! square of two times spin alpha density gradient + drho2=max(grd_rho_a_2,0d0)*4.0d0 + + kappa=0.804d0 + sq=drho2*2.6121172985233599567768d-2*rho**(-8d0/3d0) + fx=1d0+kappa-kappa/(1d0+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq/kappa) + exerfpbe_a=exerflda*fx + +! Derivatives + sqs=-8d0*sq/(3d0*rho) + fxs=kappa**2*(-1.616204596739954813d-1*mu*rho**(-4d0*f13)/3d0*dberfda(1.616204596739954813d-1*mu*rho**(-f13))*sq+berf(1.616204596739954813d-1*mu*rho**(-f13))*sqs)/(kappa+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq)**2 + dexerfpbedrho_a=dexerfldadrho*fx+exerflda*fxs + sqss=2.6121172985233599567768d-2*rho**(-8d0/3d0) + dexerfpbeddrho2_a=exerflda*berf(1.616204596739954813d-1*mu*rho**(-1.d0/3.d0))*sqss*kappa**2/(kappa+berf(1.616204596739954813d-1*mu*rho**(-1.d0/3.d0))*sq)**2 + + endif + + +! two times spin beta density + rho = max(rho_b,tol)*2.d0 + +! test on density + if (rho >= tol) then + +! call srLDA Ex[2*rho_b,2*rho_b] + call ex_lda_sr(mu,rho_b,rho_b,exerflda,vxerflda_a,vxerflda_b) + dexerfldadrho = (vxerflda_a + vxerflda_b)*0.5d0 + +! square of two times spin beta density gradient + drho2=max(grd_rho_b_2,0d0)*4.0d0 + + kappa=0.804d0 + sq=drho2*2.6121172985233599567768d-2*rho**(-8d0/3d0) + fx=1d0+kappa-kappa/(1d0+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq/kappa) + exerfpbe_b=exerflda*fx + +! Derivatives + sqs=-8d0*sq/(3d0*rho) + fxs=kappa**2*(-1.616204596739954813d-1*mu*rho**(-4d0*f13)/3d0*dberfda(1.616204596739954813d-1*mu*rho**(-f13))*sq+berf(1.616204596739954813d-1*mu*rho**(-f13))*sqs)/(kappa+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq)**2 + dexerfpbedrho_b=dexerfldadrho*fx+exerflda*fxs + sqss=2.6121172985233599567768d-2*rho**(-8d0/3d0) + dexerfpbeddrho2_b=exerflda*berf(1.616204596739954813d-1*mu*rho**(-1.d0/3.d0))*sqss*kappa**2/(kappa+berf(1.616204596739954813d-1*mu*rho**(-1.d0/3.d0))*sq)**2 + + endif + + + ex = (exerfpbe_a+exerfpbe_b)*0.5d0 + vx_rho_a = dexerfpbedrho_a + vx_rho_b = dexerfpbedrho_a + vx_grd_rho_a_2 = 2.d0*dexerfpbeddrho2_a + vx_grd_rho_b_2 = 2.d0*dexerfpbeddrho2_b + vx_grd_rho_a_b = 0.d0 + + end + +subroutine ex_pbe_sr_only(mu,rho_a,rho_b,grd_rho_a_2,grd_rho_b_2,grd_rho_a_b,ex) +BEGIN_DOC +!rho_a = density alpha +!rho_b = density beta +!grd_rho_a_2 = (gradient rho_a)^2 +!grd_rho_b_2 = (gradient rho_b)^2 +!grd_rho_a_b = (gradient rho_a).(gradient rho_b) +!ex = exchange energy density at point r +END_DOC + + implicit none + +! input + double precision, intent(in) :: mu,rho_a, rho_b + double precision, intent(in) :: grd_rho_a_2, grd_rho_b_2, grd_rho_a_b + +! output + double precision, intent(out) :: ex + +! function + double precision berf + +! local + double precision, parameter :: tol=1d-12 + double precision, parameter :: f13=0.333333333333333d0 + + double precision exerflda,vxerflda_a,vxerflda_b + double precision exerfpbe_a, exerfpbe_b + + double precision rho,drho2 + double precision kappa,sq,fx + + +! initialization + ex=0.d0 + + +! spin scaling relation Ex[rho_a,rho_b] = (1/2) (Ex[2rho_a,2rho_a] + Ex[2rho_b,2rho_b]) + +! two times spin alpha density + rho = max(rho_a,tol)*2.d0 + +! test on density + if (rho >= tol) then + +! call srLDA Ex[2*rho_a,2*rho_a] + call ex_lda_sr(mu,rho_a,rho_a,exerflda,vxerflda_a,vxerflda_b) + +! square of two times spin alpha density gradient + drho2=max(grd_rho_a_2,0d0)*4.0d0 + + kappa=0.804d0 + sq=drho2*2.6121172985233599567768d-2*rho**(-8d0/3d0) + fx=1d0+kappa-kappa/(1d0+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq/kappa) + exerfpbe_a=exerflda*fx + + endif + + +! two times spin beta density + rho = max(rho_b,tol)*2.d0 + +! test on density + if (rho >= tol) then + +! call srLDA Ex[2*rho_b,2*rho_b] + call ex_lda_sr(mu,rho_b,rho_b,exerflda,vxerflda_a,vxerflda_b) + +! square of two times spin beta density gradient + drho2=max(grd_rho_b_2,0d0)*4.0d0 + + kappa=0.804d0 + sq=drho2*2.6121172985233599567768d-2*rho**(-8d0/3d0) + fx=1d0+kappa-kappa/(1d0+berf(1.616204596739954813d-1*mu*rho**(-f13))*sq/kappa) + exerfpbe_b=exerflda*fx + + endif + + ex = (exerfpbe_a+exerfpbe_b)*0.5d0 + + end + + + +subroutine ec_pbe_only(mu,rhoc,rhoo,sigmacc,sigmaco,sigmaoo,ec) +!************************************************************************ +! Short-range PBE correlation energy functional for erf interaction +! +! +!************************************************************************ +include 'constants.include.F' + implicit none +! input + double precision, intent(in) :: rhoc,rhoo,mu + double precision, intent(in) :: sigmacc,sigmaco,sigmaoo +! output + double precision, intent(out) :: ec +! local + double precision tol + parameter(tol=1d-12) + + character(len=30) namedummy + + double precision eccerflda + double precision vrhoccerflda + double precision vrhoocerflda + + double precision ecclda + double precision vrhocclda + double precision vrhooclda + + integer i,igrad + double precision rho,drho2,rhoa,rhob + double precision ecerflda + double precision eclda,decldadrho + double precision ecerfpbe + double precision arglog,alpha,beta,gamma + double precision Aa,Ab,Ac,tq + double precision zeta,phi,phi2,phi3,phi4 + double precision, parameter :: f13=0.333333333333333d0 + + +! Parameter of the modified interaction + + ec = 0.d0 + +! First-type gradient functional + igrad=1 + + alpha=2.78d0 + gamma=3.1091d-2 + +! test on density + if (dabs(rhoc).lt.tol) return + double precision :: vc_a,vc_b +! Spin polarisation + rhoa=max((rhoc+rhoo)*.5d0,1.0d-15) + rhob=max((rhoc-rhoo)*.5d0,1.0d-15) + + call ec_lda_sr(mu,rhoa,rhob,eccerflda,vc_a,vc_b) + ecerflda = eccerflda + vrhoccerflda = 0.5d0 * (vc_a + vc_b) + vrhoocerflda = 0.5d0 * (vc_a - vc_b) + +! Density + rho = rhoc + rho = max(rho,1.d-10) + +! Square of density gradient + drho2 = sigmacc + + zeta = (rhoa-rhob)/(rhoa+rhob) + zeta = max(zeta,1.d-10) + +! LDA energy density + double precision :: vc_a_lda,vc_b_lda + call ec_lda(rhoa,rhob,ecclda,vc_a_lda,vc_b_lda) + eclda = ecclda + decldadrho = 0.5d0 * (vc_a_lda+vc_b_lda) + decldadrho = 0.5d0 * (vc_a_lda-vc_b_lda) + + if ((ecerflda/eclda).le.0d0) then + beta=0d0 + else + beta=6.6725d-2*(ecerflda/eclda)**alpha + endif + phi=((1d0+zeta)**(2d0/3d0)+(1d0-zeta)**(2d0/3d0))/2d0 + phi2=phi*phi + phi3=phi2*phi + phi4=phi3*phi + tq=drho2*6.346820607d-2*rho**(-7d0/3d0)/phi2 + Ab=dexp(-ecerflda/(rho*gamma*phi3))-1d0 + if (dabs(Ab).le.dabs(beta*tol)) then + ecerfpbe=ecerflda + else + Aa=beta/(gamma*Ab) + Ac=1d0+Aa*tq+Aa**2*tq**2 + if (Aa.lt.tol) Aa=tol + arglog=1d0+beta*(1d0-1d0/Ac)/(gamma*Aa) + arglog=max(arglog,1.d-10) + ecerfpbe=ecerflda+rho*phi3*gamma*dlog(arglog) + end if + + ec = ecerfpbe + +end diff --git a/src/dft_utils_one_body/one_body_psi_energy.irp.f b/src/dft_utils_one_body/one_body_psi_energy.irp.f new file mode 100644 index 00000000..d18cdcb6 --- /dev/null +++ b/src/dft_utils_one_body/one_body_psi_energy.irp.f @@ -0,0 +1,29 @@ + BEGIN_PROVIDER [double precision, psi_dft_energy_kinetic, (N_states) ] +&BEGIN_PROVIDER [double precision, psi_dft_energy_nuclear_elec, (N_states) ] +&BEGIN_PROVIDER [double precision, psi_dft_energy_h_core, (N_states) ] + implicit none + BEGIN_DOC +! kinetic, electron-nuclear and total h_core energy computed with the density matrix one_body_dm_mo_beta_for_dft+one_body_dm_mo_alpha_for_dft + END_DOC + integer :: i,j,istate + double precision :: accu + psi_dft_energy_kinetic = 0.d0 + psi_dft_energy_nuclear_elec = 0.d0 + do istate = 1, N_states + do i = 1, mo_tot_num + do j = 1, mo_tot_num + psi_dft_energy_kinetic(istate) += ( one_body_dm_mo_alpha_for_dft(j,i,istate)+one_body_dm_mo_beta_for_dft(j,i,istate)) * mo_kinetic_integral(j,i) + psi_dft_energy_nuclear_elec(istate) += ( one_body_dm_mo_alpha_for_dft(j,i,istate)+one_body_dm_mo_beta_for_dft(j,i,istate)) * mo_nucl_elec_integral(j,i) + enddo + enddo + enddo + + do i = 1, N_states + do j = 1, mo_tot_num + accu += one_body_dm_mo_alpha_for_dft(j,j,i) + one_body_dm_mo_beta_for_dft(j,j,i) + enddo + accu = (elec_alpha_num + elec_beta_num ) / accu + psi_energy_h_core(i) = psi_dft_energy_h_core(i) * accu + enddo + +END_PROVIDER diff --git a/src/dft_utils_one_body/potentials_ao_on_grids.irp.f b/src/dft_utils_one_body/potentials_ao_on_grids.irp.f new file mode 100644 index 00000000..b8c8b7ff --- /dev/null +++ b/src/dft_utils_one_body/potentials_ao_on_grids.irp.f @@ -0,0 +1,272 @@ + BEGIN_PROVIDER[double precision, aos_vc_alpha_LDA_w, (n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vc_beta_LDA_w, (n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vx_alpha_LDA_w, (n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vx_beta_LDA_w, (n_points_final_grid,ao_num,N_states)] + implicit none + BEGIN_DOC +! aos_vxc_alpha_LDA_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) + END_DOC + integer :: istate,i,j + double precision :: r(3) + double precision :: mu,weight + double precision :: e_c,vc_a,vc_b,e_x,vx_a,vx_b + double precision, allocatable :: rhoa(:),rhob(:) + allocate(rhoa(N_states), rhob(N_states)) + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + weight=final_weight_functions_at_final_grid_points(i) + rhoa(istate) = one_body_dm_alpha_at_r(i,istate) + rhob(istate) = one_body_dm_beta_at_r(i,istate) + call ec_LDA_sr(mu_erf,rhoa(istate),rhob(istate),e_c,vc_a,vc_b) + call ex_LDA_sr(mu_erf,rhoa(istate),rhob(istate),e_x,vx_a,vx_b) + do j =1, ao_num + aos_vc_alpha_LDA_w(i,j,istate) = vc_a * aos_in_r_array(j,i)*weight + aos_vc_beta_LDA_w(i,j,istate) = vc_b * aos_in_r_array(j,i)*weight + aos_vx_alpha_LDA_w(i,j,istate) = vx_a * aos_in_r_array(j,i)*weight + aos_vx_beta_LDA_w(i,j,istate) = vx_b * aos_in_r_array(j,i)*weight + enddo + enddo + enddo + + END_PROVIDER + + BEGIN_PROVIDER[double precision, energy_x_LDA, (N_states) ] +&BEGIN_PROVIDER[double precision, energy_c_LDA, (N_states) ] + implicit none + BEGIN_DOC +! exchange/correlation energy with the short range LDA functional + END_DOC + integer :: istate,i,j + double precision :: r(3) + double precision :: mu,weight + double precision :: e_c,vc_a,vc_b,e_x,vx_a,vx_b + double precision, allocatable :: rhoa(:),rhob(:) + allocate(rhoa(N_states), rhob(N_states)) + energy_x_LDA = 0.d0 + energy_c_LDA = 0.d0 + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + weight=final_weight_functions_at_final_grid_points(i) + rhoa(istate) = one_body_dm_alpha_at_r(i,istate) + rhob(istate) = one_body_dm_beta_at_r(i,istate) + call ec_LDA_sr(mu_erf,rhoa(istate),rhob(istate),e_c,vc_a,vc_b) + call ex_LDA_sr(mu_erf,rhoa(istate),rhob(istate),e_x,vx_a,vx_b) + energy_x_LDA(istate) += weight * e_x + energy_c_LDA(istate) += weight * e_c + enddo + enddo + + END_PROVIDER + + + BEGIN_PROVIDER [double precision, potential_x_alpha_ao_LDA,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_x_beta_ao_LDA,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_alpha_ao_LDA,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_beta_ao_LDA,(ao_num,ao_num,N_states)] + implicit none + BEGIN_DOC +! short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis + END_DOC + integer :: istate + double precision :: wall_1,wall_2 + call wall_time(wall_1) + do istate = 1, N_states + call dgemm('N','N',ao_num,ao_num,n_points_final_grid,1.d0,aos_in_r_array,ao_num,aos_vc_alpha_LDA_w(1,1,istate),n_points_final_grid,0.d0,potential_c_alpha_ao_LDA(1,1,istate),ao_num) + call dgemm('N','N',ao_num,ao_num,n_points_final_grid,1.d0,aos_in_r_array,ao_num,aos_vc_beta_LDA_w(1,1,istate) ,n_points_final_grid,0.d0,potential_c_beta_ao_LDA(1,1,istate),ao_num) + call dgemm('N','N',ao_num,ao_num,n_points_final_grid,1.d0,aos_in_r_array,ao_num,aos_vx_alpha_LDA_w(1,1,istate),n_points_final_grid,0.d0,potential_x_alpha_ao_LDA(1,1,istate),ao_num) + call dgemm('N','N',ao_num,ao_num,n_points_final_grid,1.d0,aos_in_r_array,ao_num,aos_vx_beta_LDA_w(1,1,istate) ,n_points_final_grid,0.d0,potential_x_beta_ao_LDA(1,1,istate),ao_num) + enddo + call wall_time(wall_2) + print*,'time to provide potential_x/c_alpha/beta_ao_LDA = ',wall_2 - wall_1 + + END_PROVIDER + + BEGIN_PROVIDER[double precision, aos_vc_alpha_PBE_w , (ao_num,n_points_final_grid,N_states)] !(n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vc_beta_PBE_w , (ao_num,n_points_final_grid,N_states)]!(n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vx_alpha_PBE_w , (ao_num,n_points_final_grid,N_states)] !(n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_vx_beta_PBE_w , (ao_num,n_points_final_grid,N_states)]!(n_points_final_grid,ao_num,N_states)] +&BEGIN_PROVIDER[double precision, aos_dvc_alpha_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, aos_dvc_beta_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, aos_dvx_alpha_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, aos_dvx_beta_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, grad_aos_dvc_alpha_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, grad_aos_dvc_beta_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, grad_aos_dvx_alpha_PBE_w , (ao_num,n_points_final_grid,3,N_states)] +&BEGIN_PROVIDER[double precision, grad_aos_dvx_beta_PBE_w , (ao_num,n_points_final_grid,3,N_states)] + implicit none + BEGIN_DOC +! aos_vxc_alpha_PBE_w(j,i) = ao_i(r_j) * (v^x_alpha(r_j) + v^c_alpha(r_j)) * W(r_j) + END_DOC + integer :: istate,i,j,m + double precision :: r(3) + double precision :: mu,weight + double precision, allocatable :: ex(:), ec(:) + double precision, allocatable :: rho_a(:),rho_b(:),grad_rho_a(:,:),grad_rho_b(:,:),grad_rho_a_2(:),grad_rho_b_2(:),grad_rho_a_b(:) + double precision, allocatable :: contrib_grad_xa(:,:),contrib_grad_xb(:,:),contrib_grad_ca(:,:),contrib_grad_cb(:,:) + double precision, allocatable :: vc_rho_a(:), vc_rho_b(:), vx_rho_a(:), vx_rho_b(:) + double precision, allocatable :: vx_grad_rho_a_2(:), vx_grad_rho_b_2(:), vx_grad_rho_a_b(:), vc_grad_rho_a_2(:), vc_grad_rho_b_2(:), vc_grad_rho_a_b(:) + allocate(vc_rho_a(N_states), vc_rho_b(N_states), vx_rho_a(N_states), vx_rho_b(N_states)) + allocate(vx_grad_rho_a_2(N_states), vx_grad_rho_b_2(N_states), vx_grad_rho_a_b(N_states), vc_grad_rho_a_2(N_states), vc_grad_rho_b_2(N_states), vc_grad_rho_a_b(N_states)) + + + allocate(rho_a(N_states), rho_b(N_states),grad_rho_a(3,N_states),grad_rho_b(3,N_states)) + allocate(grad_rho_a_2(N_states),grad_rho_b_2(N_states),grad_rho_a_b(N_states), ex(N_states), ec(N_states)) + allocate(contrib_grad_xa(3,N_states),contrib_grad_xb(3,N_states),contrib_grad_ca(3,N_states),contrib_grad_cb(3,N_states)) + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + weight=final_weight_functions_at_final_grid_points(i) + rho_a(istate) = one_body_dm_alpha_and_grad_at_r(4,i,istate) + rho_b(istate) = one_body_dm_beta_and_grad_at_r(4,i,istate) + grad_rho_a(1:3,istate) = one_body_dm_alpha_and_grad_at_r(1:3,i,istate) + grad_rho_b(1:3,istate) = one_body_dm_beta_and_grad_at_r(1:3,i,istate) + grad_rho_a_2 = 0.d0 + grad_rho_b_2 = 0.d0 + grad_rho_a_b = 0.d0 + do m = 1, 3 + grad_rho_a_2(istate) += grad_rho_a(m,istate) * grad_rho_a(m,istate) + grad_rho_b_2(istate) += grad_rho_b(m,istate) * grad_rho_b(m,istate) + grad_rho_a_b(istate) += grad_rho_a(m,istate) * grad_rho_b(m,istate) + enddo + + ! inputs + call GGA_type_functionals(r,rho_a,rho_b,grad_rho_a_2,grad_rho_b_2,grad_rho_a_b, & ! outputs exchange + ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, & ! outputs correlation + ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b ) + vx_rho_a(istate) *= weight + vc_rho_a(istate) *= weight + vx_rho_b(istate) *= weight + vc_rho_b(istate) *= weight + do m= 1,3 + contrib_grad_ca(m,istate) = weight * (2.d0 * vc_grad_rho_a_2(istate) * grad_rho_a(m,istate) + vc_grad_rho_a_b(istate) * grad_rho_b(m,istate)) + contrib_grad_xa(m,istate) = weight * (2.d0 * vx_grad_rho_a_2(istate) * grad_rho_a(m,istate) + vx_grad_rho_a_b(istate) * grad_rho_b(m,istate)) + contrib_grad_cb(m,istate) = weight * (2.d0 * vc_grad_rho_b_2(istate) * grad_rho_b(m,istate) + vc_grad_rho_a_b(istate) * grad_rho_a(m,istate)) + contrib_grad_xb(m,istate) = weight * (2.d0 * vx_grad_rho_b_2(istate) * grad_rho_b(m,istate) + vx_grad_rho_a_b(istate) * grad_rho_a(m,istate)) + enddo + do j = 1, ao_num + aos_vc_alpha_PBE_w(j,i,istate) = vc_rho_a(istate) * aos_in_r_array(j,i) + aos_vc_beta_PBE_w (j,i,istate) = vc_rho_b(istate) * aos_in_r_array(j,i) + aos_vx_alpha_PBE_w(j,i,istate) = vx_rho_a(istate) * aos_in_r_array(j,i) + aos_vx_beta_PBE_w (j,i,istate) = vx_rho_b(istate) * aos_in_r_array(j,i) + do m = 1,3 + aos_dvc_alpha_PBE_w(j,i,m,istate) = contrib_grad_ca(m,istate) * aos_in_r_array(j,i) + aos_dvc_beta_PBE_w (j,i,m,istate) = contrib_grad_cb(m,istate) * aos_in_r_array(j,i) + aos_dvx_alpha_PBE_w(j,i,m,istate) = contrib_grad_xa(m,istate) * aos_in_r_array(j,i) + aos_dvx_beta_PBE_w (j,i,m,istate) = contrib_grad_xb(m,istate) * aos_in_r_array(j,i) + + grad_aos_dvc_alpha_PBE_w (j,i,m,istate) = contrib_grad_ca(m,istate) * aos_grad_in_r_array(j,i,m) + grad_aos_dvc_beta_PBE_w (j,i,m,istate) = contrib_grad_cb(m,istate) * aos_grad_in_r_array(j,i,m) + grad_aos_dvx_alpha_PBE_w (j,i,m,istate) = contrib_grad_xa(m,istate) * aos_grad_in_r_array(j,i,m) + grad_aos_dvx_beta_PBE_w (j,i,m,istate) = contrib_grad_xb(m,istate) * aos_grad_in_r_array(j,i,m) + enddo + enddo + enddo + enddo + + END_PROVIDER + + + BEGIN_PROVIDER[double precision, energy_x_PBE, (N_states) ] +&BEGIN_PROVIDER[double precision, energy_c_PBE, (N_states) ] + implicit none + BEGIN_DOC +! exchange/correlation energy with the short range PBE functional + END_DOC + integer :: istate,i,j,m + double precision :: r(3) + double precision :: mu,weight + double precision, allocatable :: ex(:), ec(:) + double precision, allocatable :: rho_a(:),rho_b(:),grad_rho_a(:,:),grad_rho_b(:,:),grad_rho_a_2(:),grad_rho_b_2(:),grad_rho_a_b(:) + double precision, allocatable :: contrib_grad_xa(:,:),contrib_grad_xb(:,:),contrib_grad_ca(:,:),contrib_grad_cb(:,:) + double precision, allocatable :: vc_rho_a(:), vc_rho_b(:), vx_rho_a(:), vx_rho_b(:) + double precision, allocatable :: vx_grad_rho_a_2(:), vx_grad_rho_b_2(:), vx_grad_rho_a_b(:), vc_grad_rho_a_2(:), vc_grad_rho_b_2(:), vc_grad_rho_a_b(:) + allocate(vc_rho_a(N_states), vc_rho_b(N_states), vx_rho_a(N_states), vx_rho_b(N_states)) + allocate(vx_grad_rho_a_2(N_states), vx_grad_rho_b_2(N_states), vx_grad_rho_a_b(N_states), vc_grad_rho_a_2(N_states), vc_grad_rho_b_2(N_states), vc_grad_rho_a_b(N_states)) + + + allocate(rho_a(N_states), rho_b(N_states),grad_rho_a(3,N_states),grad_rho_b(3,N_states)) + allocate(grad_rho_a_2(N_states),grad_rho_b_2(N_states),grad_rho_a_b(N_states), ex(N_states), ec(N_states)) + energy_x_PBE = 0.d0 + energy_c_PBE = 0.d0 + do istate = 1, N_states + do i = 1, n_points_final_grid + r(1) = final_grid_points(1,i) + r(2) = final_grid_points(2,i) + r(3) = final_grid_points(3,i) + weight=final_weight_functions_at_final_grid_points(i) + rho_a(istate) = one_body_dm_alpha_and_grad_at_r(4,i,istate) + rho_b(istate) = one_body_dm_beta_and_grad_at_r(4,i,istate) + grad_rho_a(1:3,istate) = one_body_dm_alpha_and_grad_at_r(1:3,i,istate) + grad_rho_b(1:3,istate) = one_body_dm_beta_and_grad_at_r(1:3,i,istate) + grad_rho_a_2 = 0.d0 + grad_rho_b_2 = 0.d0 + grad_rho_a_b = 0.d0 + do m = 1, 3 + grad_rho_a_2(istate) += grad_rho_a(m,istate) * grad_rho_a(m,istate) + grad_rho_b_2(istate) += grad_rho_b(m,istate) * grad_rho_b(m,istate) + grad_rho_a_b(istate) += grad_rho_a(m,istate) * grad_rho_b(m,istate) + enddo + + ! inputs + call GGA_type_functionals(r,rho_a,rho_b,grad_rho_a_2,grad_rho_b_2,grad_rho_a_b, & ! outputs exchange + ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, & ! outputs correlation + ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b ) + energy_x_PBE += ex * weight + energy_c_PBE += ec * weight + enddo + enddo + + +END_PROVIDER + + BEGIN_PROVIDER [double precision, potential_x_alpha_ao_PBE,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_x_beta_ao_PBE,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_alpha_ao_PBE,(ao_num,ao_num,N_states)] +&BEGIN_PROVIDER [double precision, potential_c_beta_ao_PBE,(ao_num,ao_num,N_states)] + implicit none + BEGIN_DOC +! exchange/correlation alpha/beta potentials with the short range PBE functional on the AO basis + END_DOC + integer :: istate, m + double precision :: wall_1,wall_2 + call wall_time(wall_1) + potential_c_alpha_ao_PBE = 0.d0 + potential_x_alpha_ao_PBE = 0.d0 + potential_c_beta_ao_PBE = 0.d0 + potential_x_beta_ao_PBE = 0.d0 + do istate = 1, N_states + ! correlation alpha + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_vc_alpha_PBE_w(1,1,istate),size(aos_vc_alpha_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_c_alpha_ao_PBE(1,1,istate),size(potential_c_alpha_ao_PBE,1)) + ! correlation beta + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_vc_beta_PBE_w(1,1,istate),size(aos_vc_beta_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_c_beta_ao_PBE(1,1,istate),size(potential_c_beta_ao_PBE,1)) + ! exchange alpha + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_vx_alpha_PBE_w(1,1,istate),size(aos_vx_alpha_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_x_alpha_ao_PBE(1,1,istate),size(potential_x_alpha_ao_PBE,1)) + ! exchange beta + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_vx_beta_PBE_w(1,1,istate),size(aos_vx_beta_PBE_w,1), aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_x_beta_ao_PBE(1,1,istate), size(potential_x_beta_ao_PBE,1)) + do m= 1,3 + ! correlation alpha + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_dvc_alpha_PBE_w(1,1,m,istate),size(aos_dvc_alpha_PBE_w,1),aos_grad_in_r_array(1,1,m),size(aos_grad_in_r_array,1),1.d0,potential_c_alpha_ao_PBE(1,1,istate),size(potential_c_alpha_ao_PBE,1)) + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,grad_aos_dvc_alpha_PBE_w(1,1,m,istate),size(grad_aos_dvc_alpha_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_c_alpha_ao_PBE(1,1,istate),size(potential_c_alpha_ao_PBE,1)) + ! correlation beta + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_dvc_beta_PBE_w(1,1,m,istate),size(aos_dvc_beta_PBE_w,1),aos_grad_in_r_array(1,1,m),size(aos_grad_in_r_array,1),1.d0,potential_c_beta_ao_PBE(1,1,istate),size(potential_c_beta_ao_PBE,1)) + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,grad_aos_dvc_beta_PBE_w(1,1,m,istate),size(grad_aos_dvc_beta_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_c_beta_ao_PBE(1,1,istate),size(potential_c_beta_ao_PBE,1)) + ! exchange alpha + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_dvx_alpha_PBE_w(1,1,m,istate),size(aos_dvx_alpha_PBE_w,1),aos_grad_in_r_array(1,1,m),size(aos_grad_in_r_array,1),1.d0,potential_x_alpha_ao_PBE(1,1,istate),size(potential_x_alpha_ao_PBE,1)) + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,grad_aos_dvx_alpha_PBE_w(1,1,m,istate),size(grad_aos_dvx_alpha_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_x_alpha_ao_PBE(1,1,istate),size(potential_x_alpha_ao_PBE,1)) + ! exchange beta + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,aos_dvx_beta_PBE_w(1,1,m,istate),size(aos_dvx_beta_PBE_w,1),aos_grad_in_r_array(1,1,m),size(aos_grad_in_r_array,1),1.d0,potential_x_beta_ao_PBE(1,1,istate),size(potential_x_beta_ao_PBE,1)) + call dgemm('N','T',ao_num,ao_num,n_points_final_grid,1.d0,grad_aos_dvx_beta_PBE_w(1,1,m,istate),size(grad_aos_dvx_beta_PBE_w,1),aos_in_r_array,size(aos_in_r_array,1),1.d0,potential_x_beta_ao_PBE(1,1,istate),size(potential_x_beta_ao_PBE,1)) + enddo + enddo + + call wall_time(wall_2) + +END_PROVIDER diff --git a/src/dft_utils_one_body/rho_ab_to_rho_tot_spin_dens_convert.irp.f b/src/dft_utils_one_body/rho_ab_to_rho_tot_spin_dens_convert.irp.f new file mode 100644 index 00000000..860d7577 --- /dev/null +++ b/src/dft_utils_one_body/rho_ab_to_rho_tot_spin_dens_convert.irp.f @@ -0,0 +1,74 @@ +subroutine rho_ab_to_rho_oc(rho_a,rho_b,rho_o,rho_c) + implicit none + double precision, intent(in) :: rho_a,rho_b + double precision, intent(out) :: rho_o,rho_c + rho_c=rho_a+rho_b + rho_o=rho_a-rho_b +end + +subroutine rho_oc_to_rho_ab(rho_o,rho_c,rho_a,rho_b) + implicit none + double precision, intent(in) :: rho_o,rho_c + double precision, intent(out) :: rho_a,rho_b + rho_a= 0.5d0*(rho_c+rho_o) + rho_b= 0.5d0*(rho_c-rho_o) +end + + + +subroutine grad_rho_ab_to_grad_rho_oc(grad_rho_a_2,grad_rho_b_2,grad_rho_a_b,grad_rho_o_2,grad_rho_c_2,grad_rho_o_c) + implicit none + double precision, intent(in) :: grad_rho_a_2,grad_rho_b_2,grad_rho_a_b + double precision, intent(out) :: grad_rho_o_2,grad_rho_c_2,grad_rho_o_c + grad_rho_c_2 = grad_rho_a_2 + grad_rho_b_2 + 2d0*grad_rho_a_b + grad_rho_o_2 = grad_rho_a_2 + grad_rho_b_2 - 2d0*grad_rho_a_b + grad_rho_o_c = grad_rho_a_2 - grad_rho_b_2 +end + + + +subroutine v_rho_ab_to_v_rho_oc(v_rho_a,v_rho_b,v_rho_o,v_rho_c) + implicit none + double precision, intent(in) :: v_rho_a,v_rho_b + double precision, intent(out) :: v_rho_o,v_rho_c + v_rho_c = 0.5d0*(v_rho_a + v_rho_b) + v_rho_o = 0.5d0*(v_rho_a - v_rho_b) +end + +subroutine v_rho_oc_to_v_rho_ab(v_rho_o,v_rho_c,v_rho_a,v_rho_b) + implicit none + double precision, intent(in) :: v_rho_o,v_rho_c + double precision, intent(out) :: v_rho_a,v_rho_b + v_rho_a = v_rho_c + v_rho_o + v_rho_b = v_rho_c - v_rho_o +end + + + +subroutine v_grad_rho_oc_to_v_grad_rho_ab(v_grad_rho_o_2,v_grad_rho_c_2,v_grad_rho_o_c,v_grad_rho_a_2,v_grad_rho_b_2,v_grad_rho_a_b) + implicit none + double precision, intent(in) :: v_grad_rho_o_2,v_grad_rho_c_2,v_grad_rho_o_c + double precision, intent(out) :: v_grad_rho_a_2,v_grad_rho_b_2,v_grad_rho_a_b + v_grad_rho_a_2 = v_grad_rho_o_2 + v_grad_rho_c_2 + v_grad_rho_o_c + v_grad_rho_b_2 = v_grad_rho_o_2 + v_grad_rho_c_2 - v_grad_rho_o_c + v_grad_rho_a_b = -2d0 * v_grad_rho_o_2 + 2d0 * v_grad_rho_c_2 +end + + + + + + + + + + + + + + + + + + + diff --git a/src/dft_utils_one_body/shifted_potential.irp.f b/src/dft_utils_one_body/shifted_potential.irp.f new file mode 100644 index 00000000..520ae802 --- /dev/null +++ b/src/dft_utils_one_body/shifted_potential.irp.f @@ -0,0 +1,16 @@ +BEGIN_PROVIDER [double precision, shifting_constant, (N_states)] + implicit none + BEGIN_DOC + ! shifting_constant = (E_{Hxc} - <\Psi | V_{Hxc} | \Psi>) / N_elec + ! constant to add to the potential in order to obtain the variational energy as + ! the eigenvalue of the effective long-range Hamiltonian + ! (see original paper of Levy PRL 113, 113002 (2014), equation (17) ) + END_DOC + integer :: istate + do istate = 1, N_states + shifting_constant(istate) = energy_x(istate) + energy_c(istate) + short_range_Hartree(istate) - Trace_v_Hxc(istate) + enddo + shifting_constant = shifting_constant / dble(elec_num) + + +END_PROVIDER diff --git a/src/dft_utils_one_body/short_range_coulomb.irp.f b/src/dft_utils_one_body/short_range_coulomb.irp.f new file mode 100644 index 00000000..703d988a --- /dev/null +++ b/src/dft_utils_one_body/short_range_coulomb.irp.f @@ -0,0 +1,118 @@ + BEGIN_PROVIDER [double precision, short_range_Hartree_operator, (mo_tot_num,mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, short_range_Hartree, (N_states)] + implicit none + BEGIN_DOC +! short_range_Hartree_operator(i,j) = \int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr} +! short_range_Hartree = 0.5 * \sum_{i,j} \rho_{ij} short_range_Hartree_operator(i,j) +! = 0.5 * \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr} + END_DOC + integer :: i,j,k,l,m,n,istate + double precision :: get_mo_bielec_integral,get_mo_bielec_integral_erf + double precision :: integral, integral_erf, contrib + double precision :: integrals_array(mo_tot_num,mo_tot_num),integrals_erf_array(mo_tot_num,mo_tot_num) + short_range_Hartree_operator = 0.d0 + short_range_Hartree = 0.d0 + do i = 1, mo_tot_num + do j = 1, mo_tot_num + if(dabs(one_body_dm_average_mo_for_dft(j,i)).le.1.d-12)cycle + call get_mo_bielec_integrals_i1j1(i,j,mo_tot_num,integrals_array,mo_integrals_map) + call get_mo_bielec_integrals_erf_i1j1(i,j,mo_tot_num,integrals_erf_array,mo_integrals_erf_map) + do istate = 1, N_states + do k = 1, mo_tot_num + do l = 1, mo_tot_num + integral = integrals_array(l,k) + integral_erf = integrals_erf_array(l,k) + contrib = one_body_dm_mo_for_dft(i,j,istate) * (integral - integral_erf) + short_range_Hartree_operator(l,k,istate) += contrib + short_range_Hartree(istate) += contrib * one_body_dm_mo_for_dft(k,l,istate) + enddo + enddo + enddo + enddo + enddo + short_range_Hartree = short_range_Hartree * 0.5d0 + print*, 'short_range_Hartree',short_range_Hartree +END_PROVIDER + + + BEGIN_PROVIDER [double precision, effective_one_e_potential, (mo_tot_num, mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, effective_one_e_potential_without_kin, (mo_tot_num, mo_tot_num,N_states)] +&BEGIN_PROVIDER [double precision, shifted_effective_one_e_potential_without_kin, (mo_tot_num, mo_tot_num,N_states)] + implicit none + integer :: i,j,istate + effective_one_e_potential = 0.d0 + BEGIN_DOC +! effective_one_e_potential(i,j) = + + +! Taking the expectation value does not provide any energy +! but effective_one_e_potential(i,j) is the potential coupling DFT and WFT part to be used in any WFT calculation +! shifted_effective_one_e_potential_without_kin = effective_one_e_potential_without_kin + shifting_constant on the diagonal + END_DOC + do istate = 1, N_states + do i = 1, mo_tot_num + do j = 1, mo_tot_num + effective_one_e_potential(i,j,istate) = short_range_Hartree_operator(i,j,istate) + mo_nucl_elec_integral(i,j) + mo_kinetic_integral(i,j) & + + 0.5d0 * (potential_x_alpha_mo(i,j,istate) + potential_c_alpha_mo(i,j,istate) & + + potential_x_beta_mo(i,j,istate) + potential_c_beta_mo(i,j,istate) ) + effective_one_e_potential_without_kin(i,j,istate) = short_range_Hartree_operator(i,j,istate) + mo_nucl_elec_integral(i,j) & + + 0.5d0 * (potential_x_alpha_mo(i,j,istate) + potential_c_alpha_mo(i,j,istate) & + + potential_x_beta_mo(i,j,istate) + potential_c_beta_mo(i,j,istate) ) + shifted_effective_one_e_potential_without_kin(j,i,istate) = effective_one_e_potential_without_kin(j,i,istate) + enddo + enddo + do i = 1, mo_tot_num + shifted_effective_one_e_potential_without_kin(i,i,istate) += shifting_constant(istate) + enddo + enddo +END_PROVIDER + + +BEGIN_PROVIDER [double precision, Fock_matrix_expectation_value] + implicit none + call get_average(effective_one_e_potential,one_body_dm_average_mo_for_dft,Fock_matrix_expectation_value) + +END_PROVIDER + + BEGIN_PROVIDER [double precision, Trace_v_xc, (N_states)] +&BEGIN_PROVIDER [double precision, Trace_v_H, (N_states)] +&BEGIN_PROVIDER [double precision, Trace_v_Hxc, (N_states)] + implicit none + integer :: i,j,istate + double precision :: dm + BEGIN_DOC +! Trace_v_xc = \sum_{i,j} (rho_{ij}_\alpha v^{xc}_{ij}^\alpha + rho_{ij}_\beta v^{xc}_{ij}^\beta) +! Trace_v_Hxc = \sum_{i,j} v^{H}_{ij} (rho_{ij}_\alpha + rho_{ij}_\beta) +! Trace_v_Hxc = \sum_{i,j} rho_{ij} v^{Hxc}_{ij} + END_DOC + do istate = 1, N_states + Trace_v_xc(istate) = 0.d0 + Trace_v_H(istate) = 0.d0 + do i = 1, mo_tot_num + do j = 1, mo_tot_num + Trace_v_xc(istate) += (potential_x_alpha_mo(j,i,istate) + potential_c_alpha_mo(j,i,istate)) * one_body_dm_mo_alpha_for_dft(j,i,istate) + Trace_v_xc(istate) += (potential_x_beta_mo(j,i,istate) + potential_c_beta_mo(j,i,istate) ) * one_body_dm_mo_beta_for_dft(j,i,istate) + dm = one_body_dm_mo_alpha_for_dft(j,i,istate) + one_body_dm_mo_beta_for_dft(j,i,istate) + Trace_v_H(istate) += dm * short_range_Hartree_operator(j,i,istate) + enddo + enddo + Trace_v_Hxc(istate) = Trace_v_xc(istate) + Trace_v_H(istate) + enddo + +END_PROVIDER + +BEGIN_PROVIDER [double precision, DFT_one_e_energy_potential, (mo_tot_num, mo_tot_num,N_states)] + implicit none + integer :: i,j,istate + BEGIN_DOC +! one_e_energy_potential(i,j) = + \int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr} +! If one take the expectation value over Psi, one gets the total one body energy + END_DOC + do istate = 1, N_states + do i = 1, mo_tot_num + do j = 1, mo_tot_num + DFT_one_e_energy_potential(j,i,istate) = mo_nucl_elec_integral(j,i) + mo_kinetic_integral(j,i) + short_range_Hartree_operator(j,i,istate) * 0.5d0 + enddo + enddo + enddo + +END_PROVIDER + diff --git a/src/dft_utils_one_body/utils.irp.f b/src/dft_utils_one_body/utils.irp.f new file mode 100644 index 00000000..cfa261be --- /dev/null +++ b/src/dft_utils_one_body/utils.irp.f @@ -0,0 +1,51 @@ + +subroutine GGA_type_functionals(r,rho_a,rho_b,grad_rho_a_2,grad_rho_b_2,grad_rho_a_b, & + ex,vx_rho_a,vx_rho_b,vx_grad_rho_a_2,vx_grad_rho_b_2,vx_grad_rho_a_b, & + ec,vc_rho_a,vc_rho_b,vc_grad_rho_a_2,vc_grad_rho_b_2,vc_grad_rho_a_b ) + implicit none + double precision, intent(in) :: r(3),rho_a(N_states),rho_b(N_states),grad_rho_a_2(N_states),grad_rho_b_2(N_states),grad_rho_a_b(N_states) + double precision, intent(out) :: ex(N_states),vx_rho_a(N_states),vx_rho_b(N_states),vx_grad_rho_a_2(N_states),vx_grad_rho_b_2(N_states),vx_grad_rho_a_b(N_states) + double precision, intent(out) :: ec(N_states),vc_rho_a(N_states),vc_rho_b(N_states),vc_grad_rho_a_2(N_states),vc_grad_rho_b_2(N_states),vc_grad_rho_a_b(N_states) + integer :: istate + double precision :: r2(3),dr2(3), local_potential,r12,dx2,mu + do istate = 1, N_states + if(exchange_functional.EQ."short_range_PBE")then + call ex_pbe_sr(mu_erf,rho_a(istate),rho_b(istate),grad_rho_a_2(istate),grad_rho_b_2(istate),grad_rho_a_b(istate),ex(istate),vx_rho_a(istate),vx_rho_b(istate),vx_grad_rho_a_2(istate),vx_grad_rho_b_2(istate),vx_grad_rho_a_b(istate)) + else if(exchange_functional.EQ."None")then + ex = 0.d0 + vx_rho_a = 0.d0 + vx_rho_b = 0.d0 + vx_grad_rho_a_2 = 0.d0 + vx_grad_rho_a_b = 0.d0 + vx_grad_rho_b_2 = 0.d0 + else + print*, 'Exchange functional required does not exist ...' + print*,'exchange_functional',exchange_functional + stop + endif + + double precision :: rhoc,rhoo,sigmacc,sigmaco,sigmaoo,vrhoc,vrhoo,vsigmacc,vsigmaco,vsigmaoo + if(correlation_functional.EQ."short_range_PBE")then + ! convertion from (alpha,beta) formalism to (closed, open) formalism + call rho_ab_to_rho_oc(rho_a(istate),rho_b(istate),rhoo,rhoc) + call grad_rho_ab_to_grad_rho_oc(grad_rho_a_2(istate),grad_rho_b_2(istate),grad_rho_a_b(istate),sigmaoo,sigmacc,sigmaco) + + call ec_pbe_sr(mu_erf,rhoc,rhoo,sigmacc,sigmaco,sigmaoo,ec(istate),vrhoc,vrhoo,vsigmacc,vsigmaco,vsigmaoo) + + call v_rho_oc_to_v_rho_ab(vrhoo,vrhoc,vc_rho_a(istate),vc_rho_b(istate)) + call v_grad_rho_oc_to_v_grad_rho_ab(vsigmaoo,vsigmacc,vsigmaco,vc_grad_rho_a_2(istate),vc_grad_rho_b_2(istate),vc_grad_rho_a_b(istate)) + else if(correlation_functional.EQ."None")then + ec = 0.d0 + vc_rho_a = 0.d0 + vc_rho_b = 0.d0 + vc_grad_rho_a_2 = 0.d0 + vc_grad_rho_a_b = 0.d0 + vc_grad_rho_b_2 = 0.d0 + else + print*, 'Correlation functional required does not exist ...' + print*, 'correlation_functional',correlation_functional + stop + endif + enddo +end + diff --git a/src/integrals_bielec_erf/EZFIO.cfg b/src/integrals_bielec_erf/EZFIO.cfg new file mode 100644 index 00000000..94e67115 --- /dev/null +++ b/src/integrals_bielec_erf/EZFIO.cfg @@ -0,0 +1,25 @@ +[disk_access_ao_integrals_erf] +type: Disk_access +doc: Read/Write AO integrals with the long range interaction from/to disk [ Write | Read | None ] +interface: ezfio,provider,ocaml +default: None + + +[disk_access_mo_integrals_erf] +type: Disk_access +doc: Read/Write MO integrals with the long range interaction from/to disk [ Write | Read | None ] +interface: ezfio,provider,ocaml +default: None + +[disk_access_mo_integrals_sr] +type: Disk_access +doc: Read/Write MO integrals with the short range interaction from/to disk [ Write | Read | None ] +interface: ezfio,provider,ocaml +default: None + +[disk_access_ao_integrals_sr] +type: Disk_access +doc: Read/Write AO integrals with the short range interaction from/to disk [ Write | Read | None ] +interface: ezfio,provider,ocaml +default: None + diff --git a/src/integrals_bielec_erf/NEED b/src/integrals_bielec_erf/NEED new file mode 100644 index 00000000..5e27702b --- /dev/null +++ b/src/integrals_bielec_erf/NEED @@ -0,0 +1,5 @@ +pseudo +bitmask +zmq +integrals_bielec +dft_keywords diff --git a/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f b/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f new file mode 100644 index 00000000..e3e88d3f --- /dev/null +++ b/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f @@ -0,0 +1,649 @@ +double precision function ao_bielec_integral_erf(i,j,k,l) + implicit none + BEGIN_DOC + ! integral of the AO basis or (ij|kl) + ! i(r1) j(r1) 1/r12 k(r2) l(r2) + END_DOC + + integer,intent(in) :: i,j,k,l + integer :: p,q,r,s + double precision :: I_center(3),J_center(3),K_center(3),L_center(3) + integer :: num_i,num_j,num_k,num_l,dim1,I_power(3),J_power(3),K_power(3),L_power(3) + double precision :: integral + include 'Utils/constants.include.F' + double precision :: P_new(0:max_dim,3),P_center(3),fact_p,pp + double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq + integer :: iorder_p(3), iorder_q(3) + double precision :: ao_bielec_integral_schwartz_accel_erf + + if (ao_prim_num(i) * ao_prim_num(j) * ao_prim_num(k) * ao_prim_num(l) > 1024 ) then + ao_bielec_integral_erf = ao_bielec_integral_schwartz_accel_erf(i,j,k,l) + return + endif + + dim1 = n_pt_max_integrals + + num_i = ao_nucl(i) + num_j = ao_nucl(j) + num_k = ao_nucl(k) + num_l = ao_nucl(l) + ao_bielec_integral_erf = 0.d0 + + if (num_i /= num_j .or. num_k /= num_l .or. num_j /= num_k)then + do p = 1, 3 + I_power(p) = ao_power(i,p) + J_power(p) = ao_power(j,p) + K_power(p) = ao_power(k,p) + L_power(p) = ao_power(l,p) + I_center(p) = nucl_coord(num_i,p) + J_center(p) = nucl_coord(num_j,p) + K_center(p) = nucl_coord(num_k,p) + L_center(p) = nucl_coord(num_l,p) + enddo + + double precision :: coef1, coef2, coef3, coef4 + double precision :: p_inv,q_inv + double precision :: general_primitive_integral_erf + + do p = 1, ao_prim_num(i) + coef1 = ao_coef_normalized_ordered_transp(p,i) + do q = 1, ao_prim_num(j) + coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) + call give_explicit_poly_and_gaussian(P_new,P_center,pp,fact_p,iorder_p,& + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j), & + I_power,J_power,I_center,J_center,dim1) + p_inv = 1.d0/pp + do r = 1, ao_prim_num(k) + coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) + do s = 1, ao_prim_num(l) + coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) + call give_explicit_poly_and_gaussian(Q_new,Q_center,qq,fact_q,iorder_q,& + ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l), & + K_power,L_power,K_center,L_center,dim1) + q_inv = 1.d0/qq + integral = general_primitive_integral_erf(dim1, & + P_new,P_center,fact_p,pp,p_inv,iorder_p, & + Q_new,Q_center,fact_q,qq,q_inv,iorder_q) + ao_bielec_integral_erf = ao_bielec_integral_erf + coef4 * integral + enddo ! s + enddo ! r + enddo ! q + enddo ! p + + else + + do p = 1, 3 + I_power(p) = ao_power(i,p) + J_power(p) = ao_power(j,p) + K_power(p) = ao_power(k,p) + L_power(p) = ao_power(l,p) + enddo + double precision :: ERI_erf + + do p = 1, ao_prim_num(i) + coef1 = ao_coef_normalized_ordered_transp(p,i) + do q = 1, ao_prim_num(j) + coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) + do r = 1, ao_prim_num(k) + coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) + do s = 1, ao_prim_num(l) + coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) + integral = ERI_erf( & + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),& + I_power(1),J_power(1),K_power(1),L_power(1), & + I_power(2),J_power(2),K_power(2),L_power(2), & + I_power(3),J_power(3),K_power(3),L_power(3)) + ao_bielec_integral_erf = ao_bielec_integral_erf + coef4 * integral + enddo ! s + enddo ! r + enddo ! q + enddo ! p + + endif + +end + +double precision function ao_bielec_integral_schwartz_accel_erf(i,j,k,l) + implicit none + BEGIN_DOC + ! integral of the AO basis or (ij|kl) + ! i(r1) j(r1) 1/r12 k(r2) l(r2) + END_DOC + integer,intent(in) :: i,j,k,l + integer :: p,q,r,s + double precision :: I_center(3),J_center(3),K_center(3),L_center(3) + integer :: num_i,num_j,num_k,num_l,dim1,I_power(3),J_power(3),K_power(3),L_power(3) + double precision :: integral + include 'Utils/constants.include.F' + double precision :: P_new(0:max_dim,3),P_center(3),fact_p,pp + double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq + integer :: iorder_p(3), iorder_q(3) + double precision, allocatable :: schwartz_kl(:,:) + double precision :: schwartz_ij + + dim1 = n_pt_max_integrals + + num_i = ao_nucl(i) + num_j = ao_nucl(j) + num_k = ao_nucl(k) + num_l = ao_nucl(l) + ao_bielec_integral_schwartz_accel_erf = 0.d0 + double precision :: thr + thr = ao_integrals_threshold*ao_integrals_threshold + + allocate(schwartz_kl(0:ao_prim_num(l),0:ao_prim_num(k))) + + double precision :: coef3 + double precision :: coef2 + double precision :: p_inv,q_inv + double precision :: coef1 + double precision :: coef4 + + if (num_i /= num_j .or. num_k /= num_l .or. num_j /= num_k)then + do p = 1, 3 + I_power(p) = ao_power(i,p) + J_power(p) = ao_power(j,p) + K_power(p) = ao_power(k,p) + L_power(p) = ao_power(l,p) + I_center(p) = nucl_coord(num_i,p) + J_center(p) = nucl_coord(num_j,p) + K_center(p) = nucl_coord(num_k,p) + L_center(p) = nucl_coord(num_l,p) + enddo + + schwartz_kl(0,0) = 0.d0 + do r = 1, ao_prim_num(k) + coef1 = ao_coef_normalized_ordered_transp(r,k)*ao_coef_normalized_ordered_transp(r,k) + schwartz_kl(0,r) = 0.d0 + do s = 1, ao_prim_num(l) + coef2 = coef1 * ao_coef_normalized_ordered_transp(s,l) * ao_coef_normalized_ordered_transp(s,l) + call give_explicit_poly_and_gaussian(Q_new,Q_center,qq,fact_q,iorder_q,& + ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l), & + K_power,L_power,K_center,L_center,dim1) + q_inv = 1.d0/qq + schwartz_kl(s,r) = general_primitive_integral_erf(dim1, & + Q_new,Q_center,fact_q,qq,q_inv,iorder_q, & + Q_new,Q_center,fact_q,qq,q_inv,iorder_q) & + * coef2 + schwartz_kl(0,r) = max(schwartz_kl(0,r),schwartz_kl(s,r)) + enddo + schwartz_kl(0,0) = max(schwartz_kl(0,r),schwartz_kl(0,0)) + enddo + + do p = 1, ao_prim_num(i) + coef1 = ao_coef_normalized_ordered_transp(p,i) + do q = 1, ao_prim_num(j) + coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) + call give_explicit_poly_and_gaussian(P_new,P_center,pp,fact_p,iorder_p,& + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j), & + I_power,J_power,I_center,J_center,dim1) + p_inv = 1.d0/pp + schwartz_ij = general_primitive_integral_erf(dim1, & + P_new,P_center,fact_p,pp,p_inv,iorder_p, & + P_new,P_center,fact_p,pp,p_inv,iorder_p) * & + coef2*coef2 + if (schwartz_kl(0,0)*schwartz_ij < thr) then + cycle + endif + do r = 1, ao_prim_num(k) + if (schwartz_kl(0,r)*schwartz_ij < thr) then + cycle + endif + coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) + do s = 1, ao_prim_num(l) + if (schwartz_kl(s,r)*schwartz_ij < thr) then + cycle + endif + coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) + double precision :: general_primitive_integral_erf + call give_explicit_poly_and_gaussian(Q_new,Q_center,qq,fact_q,iorder_q,& + ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l), & + K_power,L_power,K_center,L_center,dim1) + q_inv = 1.d0/qq + integral = general_primitive_integral_erf(dim1, & + P_new,P_center,fact_p,pp,p_inv,iorder_p, & + Q_new,Q_center,fact_q,qq,q_inv,iorder_q) + ao_bielec_integral_schwartz_accel_erf = ao_bielec_integral_schwartz_accel_erf + coef4 * integral + enddo ! s + enddo ! r + enddo ! q + enddo ! p + + else + + do p = 1, 3 + I_power(p) = ao_power(i,p) + J_power(p) = ao_power(j,p) + K_power(p) = ao_power(k,p) + L_power(p) = ao_power(l,p) + enddo + double precision :: ERI_erf + + schwartz_kl(0,0) = 0.d0 + do r = 1, ao_prim_num(k) + coef1 = ao_coef_normalized_ordered_transp(r,k)*ao_coef_normalized_ordered_transp(r,k) + schwartz_kl(0,r) = 0.d0 + do s = 1, ao_prim_num(l) + coef2 = coef1*ao_coef_normalized_ordered_transp(s,l)*ao_coef_normalized_ordered_transp(s,l) + schwartz_kl(s,r) = ERI_erf( & + ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),& + K_power(1),L_power(1),K_power(1),L_power(1), & + K_power(2),L_power(2),K_power(2),L_power(2), & + K_power(3),L_power(3),K_power(3),L_power(3)) * & + coef2 + schwartz_kl(0,r) = max(schwartz_kl(0,r),schwartz_kl(s,r)) + enddo + schwartz_kl(0,0) = max(schwartz_kl(0,r),schwartz_kl(0,0)) + enddo + + do p = 1, ao_prim_num(i) + coef1 = ao_coef_normalized_ordered_transp(p,i) + do q = 1, ao_prim_num(j) + coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) + schwartz_ij = ERI_erf( & + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),& + I_power(1),J_power(1),I_power(1),J_power(1), & + I_power(2),J_power(2),I_power(2),J_power(2), & + I_power(3),J_power(3),I_power(3),J_power(3))*coef2*coef2 + if (schwartz_kl(0,0)*schwartz_ij < thr) then + cycle + endif + do r = 1, ao_prim_num(k) + if (schwartz_kl(0,r)*schwartz_ij < thr) then + cycle + endif + coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) + do s = 1, ao_prim_num(l) + if (schwartz_kl(s,r)*schwartz_ij < thr) then + cycle + endif + coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) + integral = ERI_erf( & + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),& + I_power(1),J_power(1),K_power(1),L_power(1), & + I_power(2),J_power(2),K_power(2),L_power(2), & + I_power(3),J_power(3),K_power(3),L_power(3)) + ao_bielec_integral_schwartz_accel_erf = ao_bielec_integral_schwartz_accel_erf + coef4 * integral + enddo ! s + enddo ! r + enddo ! q + enddo ! p + + endif + deallocate (schwartz_kl) + +end + + +subroutine compute_ao_bielec_integrals_erf(j,k,l,sze,buffer_value) + implicit none + use map_module + + BEGIN_DOC + ! Compute AO 1/r12 integrals for all i and fixed j,k,l + END_DOC + + include 'Utils/constants.include.F' + integer, intent(in) :: j,k,l,sze + real(integral_kind), intent(out) :: buffer_value(sze) + double precision :: ao_bielec_integral_erf + + integer :: i + + if (ao_overlap_abs(j,l) < thresh) then + buffer_value = 0._integral_kind + return + endif + if (ao_bielec_integral_erf_schwartz(j,l) < thresh ) then + buffer_value = 0._integral_kind + return + endif + + do i = 1, ao_num + if (ao_overlap_abs(i,k)*ao_overlap_abs(j,l) < thresh) then + buffer_value(i) = 0._integral_kind + cycle + endif + if (ao_bielec_integral_erf_schwartz(i,k)*ao_bielec_integral_erf_schwartz(j,l) < thresh ) then + buffer_value(i) = 0._integral_kind + cycle + endif + !DIR$ FORCEINLINE + buffer_value(i) = ao_bielec_integral_erf(i,k,j,l) + enddo + +end + +double precision function general_primitive_integral_erf(dim, & + P_new,P_center,fact_p,p,p_inv,iorder_p, & + Q_new,Q_center,fact_q,q,q_inv,iorder_q) + implicit none + BEGIN_DOC + ! Computes the integral where p,q,r,s are Gaussian primitives + END_DOC + integer,intent(in) :: dim + include 'Utils/constants.include.F' + double precision, intent(in) :: P_new(0:max_dim,3),P_center(3),fact_p,p,p_inv + double precision, intent(in) :: Q_new(0:max_dim,3),Q_center(3),fact_q,q,q_inv + integer, intent(in) :: iorder_p(3) + integer, intent(in) :: iorder_q(3) + + double precision :: r_cut,gama_r_cut,rho,dist + double precision :: dx(0:max_dim),Ix_pol(0:max_dim),dy(0:max_dim),Iy_pol(0:max_dim),dz(0:max_dim),Iz_pol(0:max_dim) + integer :: n_Ix,n_Iy,n_Iz,nx,ny,nz + double precision :: bla + integer :: ix,iy,iz,jx,jy,jz,i + double precision :: a,b,c,d,e,f,accu,pq,const + double precision :: pq_inv, p10_1, p10_2, p01_1, p01_2,pq_inv_2 + integer :: n_pt_tmp,n_pt_out, iorder + double precision :: d1(0:max_dim),d_poly(0:max_dim),rint,d1_screened(0:max_dim) + + general_primitive_integral_erf = 0.d0 + + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: dx,Ix_pol,dy,Iy_pol,dz,Iz_pol + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: d1, d_poly + + ! Gaussian Product + ! ---------------- + double precision :: p_plus_q + p_plus_q = (p+q) * ((p*q)/(p+q) + mu_erf*mu_erf)/(mu_erf*mu_erf) + pq = p_inv*0.5d0*q_inv + + pq_inv = 0.5d0/p_plus_q + p10_1 = q*pq ! 1/(2p) + p01_1 = p*pq ! 1/(2q) + pq_inv_2 = pq_inv+pq_inv + p10_2 = pq_inv_2 * p10_1*q !0.5d0*q/(pq + p*p) + p01_2 = pq_inv_2 * p01_1*p !0.5d0*p/(q*q + pq) + + + accu = 0.d0 + iorder = iorder_p(1)+iorder_q(1)+iorder_p(1)+iorder_q(1) + !DIR$ VECTOR ALIGNED + do ix=0,iorder + Ix_pol(ix) = 0.d0 + enddo + n_Ix = 0 + do ix = 0, iorder_p(1) + if (abs(P_new(ix,1)) < thresh) cycle + a = P_new(ix,1) + do jx = 0, iorder_q(1) + d = a*Q_new(jx,1) + if (abs(d) < thresh) cycle + !DEC$ FORCEINLINE + call give_polynom_mult_center_x(P_center(1),Q_center(1),ix,jx,p,q,iorder,pq_inv,pq_inv_2,p10_1,p01_1,p10_2,p01_2,dx,nx) + !DEC$ FORCEINLINE + call add_poly_multiply(dx,nx,d,Ix_pol,n_Ix) + enddo + enddo + if (n_Ix == -1) then + return + endif + iorder = iorder_p(2)+iorder_q(2)+iorder_p(2)+iorder_q(2) + !DIR$ VECTOR ALIGNED + do ix=0, iorder + Iy_pol(ix) = 0.d0 + enddo + n_Iy = 0 + do iy = 0, iorder_p(2) + if (abs(P_new(iy,2)) > thresh) then + b = P_new(iy,2) + do jy = 0, iorder_q(2) + e = b*Q_new(jy,2) + if (abs(e) < thresh) cycle + !DEC$ FORCEINLINE + call give_polynom_mult_center_x(P_center(2),Q_center(2),iy,jy,p,q,iorder,pq_inv,pq_inv_2,p10_1,p01_1,p10_2,p01_2,dy,ny) + !DEC$ FORCEINLINE + call add_poly_multiply(dy,ny,e,Iy_pol,n_Iy) + enddo + endif + enddo + if (n_Iy == -1) then + return + endif + + iorder = iorder_p(3)+iorder_q(3)+iorder_p(3)+iorder_q(3) + do ix=0,iorder + Iz_pol(ix) = 0.d0 + enddo + n_Iz = 0 + do iz = 0, iorder_p(3) + if (abs(P_new(iz,3)) > thresh) then + c = P_new(iz,3) + do jz = 0, iorder_q(3) + f = c*Q_new(jz,3) + if (abs(f) < thresh) cycle + !DEC$ FORCEINLINE + call give_polynom_mult_center_x(P_center(3),Q_center(3),iz,jz,p,q,iorder,pq_inv,pq_inv_2,p10_1,p01_1,p10_2,p01_2,dz,nz) + !DEC$ FORCEINLINE + call add_poly_multiply(dz,nz,f,Iz_pol,n_Iz) + enddo + endif + enddo + if (n_Iz == -1) then + return + endif + + rho = p*q *pq_inv_2 ! le rho qui va bien + dist = (P_center(1) - Q_center(1))*(P_center(1) - Q_center(1)) + & + (P_center(2) - Q_center(2))*(P_center(2) - Q_center(2)) + & + (P_center(3) - Q_center(3))*(P_center(3) - Q_center(3)) + const = dist*rho + + n_pt_tmp = n_Ix+n_Iy + do i=0,n_pt_tmp + d_poly(i)=0.d0 + enddo + + !DEC$ FORCEINLINE + call multiply_poly(Ix_pol,n_Ix,Iy_pol,n_Iy,d_poly,n_pt_tmp) + if (n_pt_tmp == -1) then + return + endif + n_pt_out = n_pt_tmp+n_Iz + do i=0,n_pt_out + d1(i)=0.d0 + enddo + + !DEC$ FORCEINLINE + call multiply_poly(d_poly ,n_pt_tmp ,Iz_pol,n_Iz,d1,n_pt_out) + double precision :: rint_sum + accu = accu + rint_sum(n_pt_out,const,d1) + + ! change p+q in dsqrt + general_primitive_integral_erf = fact_p * fact_q * accu *pi_5_2*p_inv*q_inv/dsqrt(p_plus_q) +end + + +double precision function ERI_erf(alpha,beta,delta,gama,a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z) + implicit none + BEGIN_DOC + ! ATOMIC PRIMTIVE bielectronic integral between the 4 primitives :: + ! primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) + ! primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) + ! primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) + ! primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2) + END_DOC + double precision, intent(in) :: delta,gama,alpha,beta + integer, intent(in) :: a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z + integer :: a_x_2,b_x_2,c_x_2,d_x_2,a_y_2,b_y_2,c_y_2,d_y_2,a_z_2,b_z_2,c_z_2,d_z_2 + integer :: i,j,k,l,n_pt + integer :: n_pt_sup + double precision :: p,q,denom,coeff + double precision :: I_f + integer :: nx,ny,nz + include 'Utils/constants.include.F' + nx = a_x+b_x+c_x+d_x + if(iand(nx,1) == 1) then + ERI_erf = 0.d0 + return + endif + + ny = a_y+b_y+c_y+d_y + if(iand(ny,1) == 1) then + ERI_erf = 0.d0 + return + endif + + nz = a_z+b_z+c_z+d_z + if(iand(nz,1) == 1) then + ERI_erf = 0.d0 + return + endif + + ASSERT (alpha >= 0.d0) + ASSERT (beta >= 0.d0) + ASSERT (delta >= 0.d0) + ASSERT (gama >= 0.d0) + p = alpha + beta + q = delta + gama + double precision :: p_plus_q + p_plus_q = (p+q) * ((p*q)/(p+q) + mu_erf*mu_erf)/(mu_erf*mu_erf) + ASSERT (p+q >= 0.d0) + n_pt = ishft( nx+ny+nz,1 ) + + coeff = pi_5_2 / (p * q * dsqrt(p_plus_q)) + if (n_pt == 0) then + ERI_erf = coeff + return + endif + + call integrale_new_erf(I_f,a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z,p,q,n_pt) + + ERI_erf = I_f * coeff +end + + + +subroutine integrale_new_erf(I_f,a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z,p,q,n_pt) + BEGIN_DOC + ! calculate the integral of the polynom :: + ! I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) + ! between ( 0 ; 1) + END_DOC + + + implicit none + include 'Utils/constants.include.F' + double precision :: p,q + integer :: a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z + integer :: i, n_iter, n_pt, j + double precision :: I_f, pq_inv, p10_1, p10_2, p01_1, p01_2,rho,pq_inv_2 + integer :: ix,iy,iz, jx,jy,jz, sx,sy,sz + + j = ishft(n_pt,-1) + ASSERT (n_pt > 1) + double precision :: p_plus_q + p_plus_q = (p+q) * ((p*q)/(p+q) + mu_erf*mu_erf)/(mu_erf*mu_erf) + + pq_inv = 0.5d0/(p_plus_q) + pq_inv_2 = pq_inv + pq_inv + p10_1 = 0.5d0/p + p01_1 = 0.5d0/q + p10_2 = 0.5d0 * q /(p * p_plus_q) + p01_2 = 0.5d0 * p /(q * p_plus_q) + double precision :: B00(n_pt_max_integrals) + double precision :: B10(n_pt_max_integrals), B01(n_pt_max_integrals) + double precision :: t1(n_pt_max_integrals), t2(n_pt_max_integrals) + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: t1, t2, B10, B01, B00 + ix = a_x+b_x + jx = c_x+d_x + iy = a_y+b_y + jy = c_y+d_y + iz = a_z+b_z + jz = c_z+d_z + sx = ix+jx + sy = iy+jy + sz = iz+jz + + !DIR$ VECTOR ALIGNED + do i = 1,n_pt + B10(i) = p10_1 - gauleg_t2(i,j)* p10_2 + B01(i) = p01_1 - gauleg_t2(i,j)* p01_2 + B00(i) = gauleg_t2(i,j)*pq_inv + enddo + if (sx > 0) then + call I_x1_new(ix,jx,B10,B01,B00,t1,n_pt) + else + !DIR$ VECTOR ALIGNED + do i = 1,n_pt + t1(i) = 1.d0 + enddo + endif + if (sy > 0) then + call I_x1_new(iy,jy,B10,B01,B00,t2,n_pt) + !DIR$ VECTOR ALIGNED + do i = 1,n_pt + t1(i) = t1(i)*t2(i) + enddo + endif + if (sz > 0) then + call I_x1_new(iz,jz,B10,B01,B00,t2,n_pt) + !DIR$ VECTOR ALIGNED + do i = 1,n_pt + t1(i) = t1(i)*t2(i) + enddo + endif + I_f= 0.d0 + !DIR$ VECTOR ALIGNED + do i = 1,n_pt + I_f += gauleg_w(i,j)*t1(i) + enddo + + + +end + + +subroutine compute_ao_integrals_erf_jl(j,l,n_integrals,buffer_i,buffer_value) + implicit none + use map_module + BEGIN_DOC + ! Parallel client for AO integrals + END_DOC + + integer, intent(in) :: j,l + integer,intent(out) :: n_integrals + integer(key_kind),intent(out) :: buffer_i(ao_num*ao_num) + real(integral_kind),intent(out) :: buffer_value(ao_num*ao_num) + + integer :: i,k + double precision :: ao_bielec_integral_erf,cpu_1,cpu_2, wall_1, wall_2 + double precision :: integral, wall_0 + double precision :: thr + integer :: kk, m, j1, i1 + + thr = ao_integrals_threshold + + n_integrals = 0 + + j1 = j+ishft(l*l-l,-1) + do k = 1, ao_num ! r1 + i1 = ishft(k*k-k,-1) + if (i1 > j1) then + exit + endif + do i = 1, k + i1 += 1 + if (i1 > j1) then + exit + endif + if (ao_overlap_abs(i,k)*ao_overlap_abs(j,l) < thr) then + cycle + endif + if (ao_bielec_integral_erf_schwartz(i,k)*ao_bielec_integral_erf_schwartz(j,l) < thr ) then + cycle + endif + !DIR$ FORCEINLINE + integral = ao_bielec_integral_erf(i,k,j,l) ! i,k : r1 j,l : r2 + if (abs(integral) < thr) then + cycle + endif + n_integrals += 1 + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,buffer_i(n_integrals)) + buffer_value(n_integrals) = integral + enddo + enddo + +end diff --git a/src/integrals_bielec_erf/ao_bielec_integrals_erf_in_map_slave.irp.f b/src/integrals_bielec_erf/ao_bielec_integrals_erf_in_map_slave.irp.f new file mode 100644 index 00000000..74d41f40 --- /dev/null +++ b/src/integrals_bielec_erf/ao_bielec_integrals_erf_in_map_slave.irp.f @@ -0,0 +1,194 @@ +subroutine ao_bielec_integrals_erf_in_map_slave_tcp(i) + implicit none + integer, intent(in) :: i + BEGIN_DOC +! Computes a buffer of integrals. i is the ID of the current thread. + END_DOC + call ao_bielec_integrals_erf_in_map_slave(0,i) +end + + +subroutine ao_bielec_integrals_erf_in_map_slave_inproc(i) + implicit none + integer, intent(in) :: i + BEGIN_DOC +! Computes a buffer of integrals. i is the ID of the current thread. + END_DOC + call ao_bielec_integrals_erf_in_map_slave(1,i) +end + + + + + +subroutine ao_bielec_integrals_erf_in_map_slave(thread,iproc) + use map_module + use f77_zmq + implicit none + BEGIN_DOC +! Computes a buffer of integrals + END_DOC + + integer, intent(in) :: thread, iproc + + integer :: j,l,n_integrals + integer :: rc + real(integral_kind), allocatable :: buffer_value(:) + integer(key_kind), allocatable :: buffer_i(:) + + integer :: worker_id, task_id + character*(512) :: task + + integer(ZMQ_PTR),external :: new_zmq_to_qp_run_socket + integer(ZMQ_PTR) :: zmq_to_qp_run_socket + + integer(ZMQ_PTR), external :: new_zmq_push_socket + integer(ZMQ_PTR) :: zmq_socket_push + + character*(64) :: state + + zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() + + integer, external :: connect_to_taskserver + if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then + call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) + return + endif + + zmq_socket_push = new_zmq_push_socket(thread) + + allocate ( buffer_i(ao_num*ao_num), buffer_value(ao_num*ao_num) ) + + + do + integer, external :: get_task_from_taskserver + if (get_task_from_taskserver(zmq_to_qp_run_socket,worker_id, task_id, task) == -1) then + exit + endif + if (task_id == 0) exit + read(task,*) j, l + integer, external :: task_done_to_taskserver + call compute_ao_integrals_erf_jl(j,l,n_integrals,buffer_i,buffer_value) + if (task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,task_id) == -1) then + stop 'Unable to send task_done' + endif + call push_integrals(zmq_socket_push, n_integrals, buffer_i, buffer_value, task_id) + enddo + + integer, external :: disconnect_from_taskserver + if (disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id) == -1) then + continue + endif + deallocate( buffer_i, buffer_value ) + call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) + call end_zmq_push_socket(zmq_socket_push,thread) + +end + + +subroutine ao_bielec_integrals_erf_in_map_collector(zmq_socket_pull) + use map_module + use f77_zmq + implicit none + BEGIN_DOC +! Collects results from the AO integral calculation + END_DOC + + integer(ZMQ_PTR), intent(in) :: zmq_socket_pull + integer :: j,l,n_integrals + integer :: rc + + real(integral_kind), allocatable :: buffer_value(:) + integer(key_kind), allocatable :: buffer_i(:) + + integer(ZMQ_PTR),external :: new_zmq_to_qp_run_socket + integer(ZMQ_PTR) :: zmq_to_qp_run_socket + + integer(ZMQ_PTR), external :: new_zmq_pull_socket + + integer*8 :: control, accu, sze + integer :: task_id, more + + zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() + + sze = ao_num*ao_num + allocate ( buffer_i(sze), buffer_value(sze) ) + + accu = 0_8 + more = 1 + do while (more == 1) + + rc = f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0) + if (rc == -1) then + n_integrals = 0 + return + endif + if (rc /= 4) then + print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, n_integrals, 4, 0)' + stop 'error' + endif + + if (n_integrals >= 0) then + + if (n_integrals > sze) then + deallocate (buffer_value, buffer_i) + sze = n_integrals + allocate (buffer_value(sze), buffer_i(sze)) + endif + + rc = f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0) + if (rc /= key_kind*n_integrals) then + print *, rc, key_kind, n_integrals + print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_i, key_kind*n_integrals, 0)' + stop 'error' + endif + + rc = f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0) + if (rc /= integral_kind*n_integrals) then + print *, irp_here, ': f77_zmq_recv( zmq_socket_pull, buffer_value, integral_kind*n_integrals, 0)' + stop 'error' + endif + + rc = f77_zmq_recv( zmq_socket_pull, task_id, 4, 0) + +IRP_IF ZMQ_PUSH +IRP_ELSE + rc = f77_zmq_send( zmq_socket_pull, 0, 4, 0) + if (rc /= 4) then + print *, irp_here, ' : f77_zmq_send (zmq_socket_pull,...' + stop 'error' + endif +IRP_ENDIF + + + call insert_into_ao_integrals_erf_map(n_integrals,buffer_i,buffer_value) + accu += n_integrals + if (task_id /= 0) then + integer, external :: zmq_delete_task + if (zmq_delete_task(zmq_to_qp_run_socket,zmq_socket_pull,task_id,more) == -1) then + stop 'Unable to delete task' + endif + endif + endif + + enddo + + deallocate( buffer_i, buffer_value ) + + integer (map_size_kind) :: get_ao_erf_map_size + control = get_ao_erf_map_size(ao_integrals_erf_map) + + if (control /= accu) then + print *, '' + print *, irp_here + print *, 'Control : ', control + print *, 'Accu : ', accu + print *, 'Some integrals were lost during the parallel computation.' + print *, 'Try to reduce the number of threads.' + stop + endif + + call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) + +end + diff --git a/src/integrals_bielec_erf/integrals_3_index_erf.irp.f b/src/integrals_bielec_erf/integrals_3_index_erf.irp.f new file mode 100644 index 00000000..38f2b654 --- /dev/null +++ b/src/integrals_bielec_erf/integrals_3_index_erf.irp.f @@ -0,0 +1,47 @@ + BEGIN_PROVIDER [double precision, big_array_coulomb_integrals_erf, (mo_tot_num,mo_tot_num, mo_tot_num)] +&BEGIN_PROVIDER [double precision, big_array_exchange_integrals_erf,(mo_tot_num,mo_tot_num, mo_tot_num)] + implicit none + integer :: i,j,k,l + double precision :: get_mo_bielec_integral_erf + double precision :: integral + + do k = 1, mo_tot_num + do i = 1, mo_tot_num + do j = 1, mo_tot_num + l = j + integral = get_mo_bielec_integral_erf(i,j,k,l,mo_integrals_erf_map) + big_array_coulomb_integrals_erf(j,i,k) = integral + l = j + integral = get_mo_bielec_integral_erf(i,j,l,k,mo_integrals_erf_map) + big_array_exchange_integrals_erf(j,i,k) = integral + enddo + enddo + enddo + + +END_PROVIDER + + +!BEGIN_PROVIDER [double precision, big_array_coulomb_integrals_sr, (mo_tot_num,mo_tot_num, mo_tot_num)] +!&BEGIN_PROVIDER [double precision, big_array_exchange_integrals_sr,(mo_tot_num,mo_tot_num, mo_tot_num)] +!implicit none +!integer :: i,j,k,l +!double precision :: get_mo_bielec_integral_sr +!double precision :: integral + +!do k = 1, mo_tot_num +! do i = 1, mo_tot_num +! do j = 1, mo_tot_num +! l = j +! integral = get_mo_bielec_integral_sr(i,j,k,l,mo_integrals_sr_map) +! big_array_coulomb_integrals_sr(j,i,k) = integral +! l = j +! integral = get_mo_bielec_integral_sr(i,j,l,k,mo_integrals_sr_map) +! big_array_exchange_integrals_sr(j,i,k) = integral +! enddo +! enddo +!enddo + + +!ND_PROVIDER + diff --git a/src/integrals_bielec_erf/map_integrals_erf.irp.f b/src/integrals_bielec_erf/map_integrals_erf.irp.f new file mode 100644 index 00000000..e49fe1e3 --- /dev/null +++ b/src/integrals_bielec_erf/map_integrals_erf.irp.f @@ -0,0 +1,682 @@ +use map_module + +!! AO Map +!! ====== + +BEGIN_PROVIDER [ type(map_type), ao_integrals_erf_map ] + implicit none + BEGIN_DOC + ! AO integrals + END_DOC + integer(key_kind) :: key_max + integer(map_size_kind) :: sze + call bielec_integrals_index(ao_num,ao_num,ao_num,ao_num,key_max) + sze = key_max + call map_init(ao_integrals_erf_map,sze) + print*, 'AO map initialized : ', sze +END_PROVIDER + + BEGIN_PROVIDER [ integer, ao_integrals_erf_cache_min ] +&BEGIN_PROVIDER [ integer, ao_integrals_erf_cache_max ] + implicit none + BEGIN_DOC + ! Min and max values of the AOs for which the integrals are in the cache + END_DOC + ao_integrals_erf_cache_min = max(1,ao_num - 63) + ao_integrals_erf_cache_max = ao_num + +END_PROVIDER + +BEGIN_PROVIDER [ double precision, ao_integrals_erf_cache, (0:64*64*64*64) ] + use map_module + implicit none + BEGIN_DOC + ! Cache of AO integrals for fast access + END_DOC + PROVIDE ao_bielec_integrals_erf_in_map + integer :: i,j,k,l,ii + integer(key_kind) :: idx + real(integral_kind) :: integral + !$OMP PARALLEL DO PRIVATE (i,j,k,l,idx,ii,integral) + do l=ao_integrals_erf_cache_min,ao_integrals_erf_cache_max + do k=ao_integrals_erf_cache_min,ao_integrals_erf_cache_max + do j=ao_integrals_erf_cache_min,ao_integrals_erf_cache_max + do i=ao_integrals_erf_cache_min,ao_integrals_erf_cache_max + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,idx) + !DIR$ FORCEINLINE + call map_get(ao_integrals_erf_map,idx,integral) + ii = l-ao_integrals_erf_cache_min + ii = ior( ishft(ii,6), k-ao_integrals_erf_cache_min) + ii = ior( ishft(ii,6), j-ao_integrals_erf_cache_min) + ii = ior( ishft(ii,6), i-ao_integrals_erf_cache_min) + ao_integrals_erf_cache(ii) = integral + enddo + enddo + enddo + enddo + !$OMP END PARALLEL DO + +END_PROVIDER + + +double precision function get_ao_bielec_integral_erf(i,j,k,l,map) result(result) + use map_module + implicit none + BEGIN_DOC + ! Gets one AO bi-electronic integral from the AO map + END_DOC + integer, intent(in) :: i,j,k,l + integer(key_kind) :: idx + type(map_type), intent(inout) :: map + integer :: ii + real(integral_kind) :: tmp + PROVIDE ao_bielec_integrals_erf_in_map ao_integrals_erf_cache ao_integrals_erf_cache_min + !DIR$ FORCEINLINE + if (ao_overlap_abs(i,k)*ao_overlap_abs(j,l) < ao_integrals_threshold ) then + tmp = 0.d0 + else if (ao_bielec_integral_erf_schwartz(i,k)*ao_bielec_integral_erf_schwartz(j,l) < ao_integrals_threshold) then + tmp = 0.d0 + else + ii = l-ao_integrals_erf_cache_min + ii = ior(ii, k-ao_integrals_erf_cache_min) + ii = ior(ii, j-ao_integrals_erf_cache_min) + ii = ior(ii, i-ao_integrals_erf_cache_min) + if (iand(ii, -64) /= 0) then + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,idx) + !DIR$ FORCEINLINE + call map_get(map,idx,tmp) + tmp = tmp + else + ii = l-ao_integrals_erf_cache_min + ii = ior( ishft(ii,6), k-ao_integrals_erf_cache_min) + ii = ior( ishft(ii,6), j-ao_integrals_erf_cache_min) + ii = ior( ishft(ii,6), i-ao_integrals_erf_cache_min) + tmp = ao_integrals_erf_cache(ii) + endif + endif + result = tmp +end + + +subroutine get_ao_bielec_integrals_erf(j,k,l,sze,out_val) + use map_module + BEGIN_DOC + ! Gets multiple AO bi-electronic integral from the AO map . + ! All i are retrieved for j,k,l fixed. + END_DOC + implicit none + integer, intent(in) :: j,k,l, sze + real(integral_kind), intent(out) :: out_val(sze) + + integer :: i + integer(key_kind) :: hash + double precision :: thresh + PROVIDE ao_bielec_integrals_erf_in_map ao_integrals_erf_map + thresh = ao_integrals_threshold + + if (ao_overlap_abs(j,l) < thresh) then + out_val = 0.d0 + return + endif + + double precision :: get_ao_bielec_integral_erf + do i=1,sze + out_val(i) = get_ao_bielec_integral_erf(i,j,k,l,ao_integrals_erf_map) + enddo + +end + +subroutine get_ao_bielec_integrals_erf_non_zero(j,k,l,sze,out_val,out_val_index,non_zero_int) + use map_module + implicit none + BEGIN_DOC + ! Gets multiple AO bi-electronic integral from the AO map . + ! All non-zero i are retrieved for j,k,l fixed. + END_DOC + integer, intent(in) :: j,k,l, sze + real(integral_kind), intent(out) :: out_val(sze) + integer, intent(out) :: out_val_index(sze),non_zero_int + + integer :: i + integer(key_kind) :: hash + double precision :: thresh,tmp + PROVIDE ao_bielec_integrals_erf_in_map + thresh = ao_integrals_threshold + + non_zero_int = 0 + if (ao_overlap_abs(j,l) < thresh) then + out_val = 0.d0 + return + endif + + non_zero_int = 0 + do i=1,sze + integer, external :: ao_l4 + double precision, external :: ao_bielec_integral_erf + !DIR$ FORCEINLINE + if (ao_bielec_integral_erf_schwartz(i,k)*ao_bielec_integral_erf_schwartz(j,l) < thresh) then + cycle + endif + call bielec_integrals_index(i,j,k,l,hash) + call map_get(ao_integrals_erf_map, hash,tmp) + if (dabs(tmp) < thresh ) cycle + non_zero_int = non_zero_int+1 + out_val_index(non_zero_int) = i + out_val(non_zero_int) = tmp + enddo + +end + + +function get_ao_erf_map_size() + implicit none + integer (map_size_kind) :: get_ao_erf_map_size + BEGIN_DOC + ! Returns the number of elements in the AO map + END_DOC + get_ao_erf_map_size = ao_integrals_erf_map % n_elements +end + +subroutine clear_ao_erf_map + implicit none + BEGIN_DOC + ! Frees the memory of the AO map + END_DOC + call map_deinit(ao_integrals_erf_map) + FREE ao_integrals_erf_map +end + + + +BEGIN_TEMPLATE + +subroutine dump_$ao_integrals(filename) + use map_module + implicit none + BEGIN_DOC + ! Save to disk the $ao integrals + END_DOC + character*(*), intent(in) :: filename + integer(cache_key_kind), pointer :: key(:) + real(integral_kind), pointer :: val(:) + integer*8 :: i,j, n + call ezfio_set_work_empty(.False.) + open(unit=66,file=filename,FORM='unformatted') + write(66) integral_kind, key_kind + write(66) $ao_integrals_map%sorted, $ao_integrals_map%map_size, & + $ao_integrals_map%n_elements + do i=0_8,$ao_integrals_map%map_size + write(66) $ao_integrals_map%map(i)%sorted, $ao_integrals_map%map(i)%map_size,& + $ao_integrals_map%map(i)%n_elements + enddo + do i=0_8,$ao_integrals_map%map_size + key => $ao_integrals_map%map(i)%key + val => $ao_integrals_map%map(i)%value + n = $ao_integrals_map%map(i)%n_elements + write(66) (key(j), j=1,n), (val(j), j=1,n) + enddo + close(66) + +end + +IRP_IF COARRAY +subroutine communicate_$ao_integrals() + use map_module + implicit none + BEGIN_DOC + ! Communicate the $ao integrals with co-array + END_DOC + integer(cache_key_kind), pointer :: key(:) + real(integral_kind), pointer :: val(:) + integer*8 :: i,j, k, nmax + integer*8, save :: n[*] + integer :: copy_n + + real(integral_kind), allocatable :: buffer_val(:)[:] + integer(cache_key_kind), allocatable :: buffer_key(:)[:] + real(integral_kind), allocatable :: copy_val(:) + integer(key_kind), allocatable :: copy_key(:) + + n = 0_8 + do i=0_8,$ao_integrals_map%map_size + n = max(n,$ao_integrals_map%map(i)%n_elements) + enddo + sync all + nmax = 0_8 + do j=1,num_images() + nmax = max(nmax,n[j]) + enddo + allocate( buffer_key(nmax)[*], buffer_val(nmax)[*]) + allocate( copy_key(nmax), copy_val(nmax)) + do i=0_8,$ao_integrals_map%map_size + key => $ao_integrals_map%map(i)%key + val => $ao_integrals_map%map(i)%value + n = $ao_integrals_map%map(i)%n_elements + do j=1,n + buffer_key(j) = key(j) + buffer_val(j) = val(j) + enddo + sync all + do j=1,num_images() + if (j /= this_image()) then + copy_n = n[j] + do k=1,copy_n + copy_val(k) = buffer_val(k)[j] + copy_key(k) = buffer_key(k)[j] + copy_key(k) = copy_key(k)+ishft(i,-map_shift) + enddo + call map_append($ao_integrals_map, copy_key, copy_val, copy_n ) + endif + enddo + sync all + enddo + deallocate( buffer_key, buffer_val, copy_val, copy_key) + +end +IRP_ENDIF + + +integer function load_$ao_integrals(filename) + implicit none + BEGIN_DOC + ! Read from disk the $ao integrals + END_DOC + character*(*), intent(in) :: filename + integer*8 :: i + integer(cache_key_kind), pointer :: key(:) + real(integral_kind), pointer :: val(:) + integer :: iknd, kknd + integer*8 :: n, j + load_$ao_integrals = 1 + open(unit=66,file=filename,FORM='unformatted',STATUS='UNKNOWN') + read(66,err=98,end=98) iknd, kknd + if (iknd /= integral_kind) then + print *, 'Wrong integrals kind in file :', iknd + stop 1 + endif + if (kknd /= key_kind) then + print *, 'Wrong key kind in file :', kknd + stop 1 + endif + read(66,err=98,end=98) $ao_integrals_map%sorted, $ao_integrals_map%map_size,& + $ao_integrals_map%n_elements + do i=0_8, $ao_integrals_map%map_size + read(66,err=99,end=99) $ao_integrals_map%map(i)%sorted, & + $ao_integrals_map%map(i)%map_size, $ao_integrals_map%map(i)%n_elements + call cache_map_reallocate($ao_integrals_map%map(i),$ao_integrals_map%map(i)%map_size) + enddo + do i=0_8, $ao_integrals_map%map_size + key => $ao_integrals_map%map(i)%key + val => $ao_integrals_map%map(i)%value + n = $ao_integrals_map%map(i)%n_elements + read(66,err=99,end=99) (key(j), j=1,n), (val(j), j=1,n) + enddo + call map_sort($ao_integrals_map) + load_$ao_integrals = 0 + return + 99 continue + call map_deinit($ao_integrals_map) + 98 continue + stop 'Problem reading $ao_integrals_map file in work/' + +end + +SUBST [ ao_integrals_map, ao_integrals, ao_num ] +ao_integrals_erf_map ; ao_integrals_erf ; ao_num ;; +mo_integrals_erf_map ; mo_integrals_erf ; mo_tot_num;; +END_TEMPLATE + + + + +BEGIN_PROVIDER [ type(map_type), mo_integrals_erf_map ] + implicit none + BEGIN_DOC + ! MO integrals + END_DOC + integer(key_kind) :: key_max + integer(map_size_kind) :: sze + call bielec_integrals_index(mo_tot_num,mo_tot_num,mo_tot_num,mo_tot_num,key_max) + sze = key_max + call map_init(mo_integrals_erf_map,sze) + print*, 'MO ERF map initialized' +END_PROVIDER + +subroutine insert_into_ao_integrals_erf_map(n_integrals,buffer_i, buffer_values) + use map_module + implicit none + BEGIN_DOC + ! Create new entry into AO map + END_DOC + + integer, intent(in) :: n_integrals + integer(key_kind), intent(inout) :: buffer_i(n_integrals) + real(integral_kind), intent(inout) :: buffer_values(n_integrals) + + call map_append(ao_integrals_erf_map, buffer_i, buffer_values, n_integrals) +end + +subroutine insert_into_mo_integrals_erf_map(n_integrals, & + buffer_i, buffer_values, thr) + use map_module + implicit none + + BEGIN_DOC + ! Create new entry into MO map, or accumulate in an existing entry + END_DOC + + integer, intent(in) :: n_integrals + integer(key_kind), intent(inout) :: buffer_i(n_integrals) + real(integral_kind), intent(inout) :: buffer_values(n_integrals) + real(integral_kind), intent(in) :: thr + call map_update(mo_integrals_erf_map, buffer_i, buffer_values, n_integrals, thr) +end + + BEGIN_PROVIDER [ integer, mo_integrals_erf_cache_min ] +&BEGIN_PROVIDER [ integer, mo_integrals_erf_cache_max ] + implicit none + BEGIN_DOC + ! Min and max values of the MOs for which the integrals are in the cache + END_DOC + mo_integrals_erf_cache_min = max(1,elec_alpha_num - 31) + mo_integrals_erf_cache_max = min(mo_tot_num,mo_integrals_erf_cache_min+63) + +END_PROVIDER + +BEGIN_PROVIDER [ double precision, mo_integrals_erf_cache, (0:64*64*64*64) ] + implicit none + BEGIN_DOC + ! Cache of MO integrals for fast access + END_DOC + PROVIDE mo_bielec_integrals_erf_in_map + integer :: i,j,k,l + integer :: ii + integer(key_kind) :: idx + real(integral_kind) :: integral + FREE ao_integrals_erf_cache + !$OMP PARALLEL DO PRIVATE (i,j,k,l,idx,ii,integral) + do l=mo_integrals_erf_cache_min,mo_integrals_erf_cache_max + do k=mo_integrals_erf_cache_min,mo_integrals_erf_cache_max + do j=mo_integrals_erf_cache_min,mo_integrals_erf_cache_max + do i=mo_integrals_erf_cache_min,mo_integrals_erf_cache_max + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,idx) + !DIR$ FORCEINLINE + call map_get(mo_integrals_erf_map,idx,integral) + ii = l-mo_integrals_erf_cache_min + ii = ior( ishft(ii,6), k-mo_integrals_erf_cache_min) + ii = ior( ishft(ii,6), j-mo_integrals_erf_cache_min) + ii = ior( ishft(ii,6), i-mo_integrals_erf_cache_min) + mo_integrals_erf_cache(ii) = integral + enddo + enddo + enddo + enddo + !$OMP END PARALLEL DO + +END_PROVIDER + + +double precision function get_mo_bielec_integral_erf(i,j,k,l,map) + use map_module + implicit none + BEGIN_DOC + ! Returns one integral in the MO basis + END_DOC + integer, intent(in) :: i,j,k,l + integer(key_kind) :: idx + integer :: ii + type(map_type), intent(inout) :: map + real(integral_kind) :: tmp + PROVIDE mo_bielec_integrals_erf_in_map mo_integrals_erf_cache + ii = l-mo_integrals_erf_cache_min + ii = ior(ii, k-mo_integrals_erf_cache_min) + ii = ior(ii, j-mo_integrals_erf_cache_min) + ii = ior(ii, i-mo_integrals_erf_cache_min) + if (iand(ii, -64) /= 0) then + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,idx) + !DIR$ FORCEINLINE + call map_get(map,idx,tmp) + get_mo_bielec_integral_erf = dble(tmp) + else + ii = l-mo_integrals_erf_cache_min + ii = ior( ishft(ii,6), k-mo_integrals_erf_cache_min) + ii = ior( ishft(ii,6), j-mo_integrals_erf_cache_min) + ii = ior( ishft(ii,6), i-mo_integrals_erf_cache_min) + get_mo_bielec_integral_erf = mo_integrals_erf_cache(ii) + endif +end + + +double precision function mo_bielec_integral_erf(i,j,k,l) + implicit none + BEGIN_DOC + ! Returns one integral in the MO basis + END_DOC + integer, intent(in) :: i,j,k,l + double precision :: get_mo_bielec_integral_erf + PROVIDE mo_bielec_integrals_erf_in_map mo_integrals_erf_cache + !DIR$ FORCEINLINE + PROVIDE mo_bielec_integrals_erf_in_map + mo_bielec_integral_erf = get_mo_bielec_integral_erf(i,j,k,l,mo_integrals_erf_map) + return +end + +subroutine get_mo_bielec_integrals_erf(j,k,l,sze,out_val,map) + use map_module + implicit none + BEGIN_DOC + ! Returns multiple integrals in the MO basis, all + ! i for j,k,l fixed. + END_DOC + integer, intent(in) :: j,k,l, sze + double precision, intent(out) :: out_val(sze) + type(map_type), intent(inout) :: map + integer :: i + integer(key_kind) :: hash(sze) + real(integral_kind) :: tmp_val(sze) + PROVIDE mo_bielec_integrals_erf_in_map + + do i=1,sze + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,hash(i)) + enddo + + if (key_kind == 8) then + call map_get_many(map, hash, out_val, sze) + else + call map_get_many(map, hash, tmp_val, sze) + ! Conversion to double precision + do i=1,sze + out_val(i) = dble(tmp_val(i)) + enddo + endif +end + +subroutine get_mo_bielec_integrals_erf_ij(k,l,sze,out_array,map) + use map_module + implicit none + BEGIN_DOC + ! Returns multiple integrals in the MO basis, all + ! i(1)j(2) 1/r12 k(1)l(2) + ! i, j for k,l fixed. + END_DOC + integer, intent(in) :: k,l, sze + double precision, intent(out) :: out_array(sze,sze) + type(map_type), intent(inout) :: map + integer :: i,j,kk,ll,m + integer(key_kind),allocatable :: hash(:) + integer ,allocatable :: pairs(:,:), iorder(:) + real(integral_kind), allocatable :: tmp_val(:) + + PROVIDE mo_bielec_integrals_erf_in_map + allocate (hash(sze*sze), pairs(2,sze*sze),iorder(sze*sze), & + tmp_val(sze*sze)) + + kk=0 + out_array = 0.d0 + do j=1,sze + do i=1,sze + kk += 1 + !DIR$ FORCEINLINE + call bielec_integrals_index(i,j,k,l,hash(kk)) + pairs(1,kk) = i + pairs(2,kk) = j + iorder(kk) = kk + enddo + enddo + + logical :: integral_is_in_map + if (key_kind == 8) then + call i8radix_sort(hash,iorder,kk,-1) + else if (key_kind == 4) then + call iradix_sort(hash,iorder,kk,-1) + else if (key_kind == 2) then + call i2radix_sort(hash,iorder,kk,-1) + endif + + call map_get_many(mo_integrals_erf_map, hash, tmp_val, kk) + + do ll=1,kk + m = iorder(ll) + i=pairs(1,m) + j=pairs(2,m) + out_array(i,j) = tmp_val(ll) + enddo + + deallocate(pairs,hash,iorder,tmp_val) +end + + +subroutine get_mo_bielec_integrals_erf_i1j1(k,l,sze,out_array,map) + use map_module + implicit none + BEGIN_DOC + ! Returns multiple integrals in the MO basis, all + ! i(1)j(1) erf(mu_erf * r12) /r12 k(2)l(2) + ! i, j for k,l fixed. + END_DOC + integer, intent(in) :: k,l, sze + double precision, intent(out) :: out_array(sze,sze) + type(map_type), intent(inout) :: map + integer :: i,j,kk,ll,m + integer(key_kind),allocatable :: hash(:) + integer ,allocatable :: pairs(:,:), iorder(:) + real(integral_kind), allocatable :: tmp_val(:) + + PROVIDE mo_bielec_integrals_erf_in_map + allocate (hash(sze*sze), pairs(2,sze*sze),iorder(sze*sze), & + tmp_val(sze*sze)) + + kk=0 + out_array = 0.d0 + do j=1,sze + do i=1,sze + kk += 1 + !DIR$ FORCEINLINE + call bielec_integrals_index(i,k,j,l,hash(kk)) + pairs(1,kk) = i + pairs(2,kk) = j + iorder(kk) = kk + enddo + enddo + + logical :: integral_is_in_map + if (key_kind == 8) then + call i8radix_sort(hash,iorder,kk,-1) + else if (key_kind == 4) then + call iradix_sort(hash,iorder,kk,-1) + else if (key_kind == 2) then + call i2radix_sort(hash,iorder,kk,-1) + endif + + call map_get_many(mo_integrals_erf_map, hash, tmp_val, kk) + + do ll=1,kk + m = iorder(ll) + i=pairs(1,m) + j=pairs(2,m) + out_array(i,j) = tmp_val(ll) + enddo + + deallocate(pairs,hash,iorder,tmp_val) +end + + +subroutine get_mo_bielec_integrals_erf_coulomb_ii(k,l,sze,out_val,map) + use map_module + implicit none + BEGIN_DOC + ! Returns multiple integrals + ! k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) + ! for k,l fixed. + END_DOC + integer, intent(in) :: k,l, sze + double precision, intent(out) :: out_val(sze) + type(map_type), intent(inout) :: map + integer :: i + integer(key_kind) :: hash(sze) + real(integral_kind) :: tmp_val(sze) + PROVIDE mo_bielec_integrals_erf_in_map + + integer :: kk + do i=1,sze + !DIR$ FORCEINLINE + call bielec_integrals_index(k,i,l,i,hash(i)) + enddo + + if (key_kind == 8) then + call map_get_many(map, hash, out_val, sze) + else + call map_get_many(map, hash, tmp_val, sze) + ! Conversion to double precision + do i=1,sze + out_val(i) = dble(tmp_val(i)) + enddo + endif +end + +subroutine get_mo_bielec_integrals_erf_exch_ii(k,l,sze,out_val,map) + use map_module + implicit none + BEGIN_DOC + ! Returns multiple integrals + ! k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1) + ! for k,l fixed. + END_DOC + integer, intent(in) :: k,l, sze + double precision, intent(out) :: out_val(sze) + type(map_type), intent(inout) :: map + integer :: i + integer(key_kind) :: hash(sze) + real(integral_kind) :: tmp_val(sze) + PROVIDE mo_bielec_integrals_erf_in_map + + integer :: kk + do i=1,sze + !DIR$ FORCEINLINE + call bielec_integrals_index(k,i,i,l,hash(i)) + enddo + + if (key_kind == 8) then + call map_get_many(map, hash, out_val, sze) + else + call map_get_many(map, hash, tmp_val, sze) + ! Conversion to double precision + do i=1,sze + out_val(i) = dble(tmp_val(i)) + enddo + endif +end + + +integer*8 function get_mo_erf_map_size() + implicit none + BEGIN_DOC + ! Return the number of elements in the MO map + END_DOC + get_mo_erf_map_size = mo_integrals_erf_map % n_elements +end diff --git a/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f b/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f new file mode 100644 index 00000000..40d0d85c --- /dev/null +++ b/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f @@ -0,0 +1,549 @@ +subroutine mo_bielec_integrals_erf_index(i,j,k,l,i1) + use map_module + implicit none + BEGIN_DOC + ! Computes an unique index for i,j,k,l integrals + END_DOC + integer, intent(in) :: i,j,k,l + integer(key_kind), intent(out) :: i1 + integer(key_kind) :: p,q,r,s,i2 + p = min(i,k) + r = max(i,k) + p = p+ishft(r*r-r,-1) + q = min(j,l) + s = max(j,l) + q = q+ishft(s*s-s,-1) + i1 = min(p,q) + i2 = max(p,q) + i1 = i1+ishft(i2*i2-i2,-1) +end + + +BEGIN_PROVIDER [ logical, mo_bielec_integrals_erf_in_map ] + use map_module + implicit none + integer(bit_kind) :: mask_ijkl(N_int,4) + integer(bit_kind) :: mask_ijk(N_int,3) + + BEGIN_DOC + ! If True, the map of MO bielectronic integrals is provided + END_DOC + + real :: map_mb + + mo_bielec_integrals_erf_in_map = .True. + if (read_mo_integrals_erf) then + print*,'Reading the MO integrals_erf' + call map_load_from_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map) + print*, 'MO integrals_erf provided' + return + else + PROVIDE ao_bielec_integrals_erf_in_map + endif + + ! call four_index_transform_block(ao_integrals_erf_map,mo_integrals_erf_map, & + ! mo_coef, size(mo_coef,1), & + ! 1, 1, 1, 1, ao_num, ao_num, ao_num, ao_num, & + ! 1, 1, 1, 1, mo_num, mo_num, mo_num, mo_num) + call add_integrals_to_map_erf(full_ijkl_bitmask_4) + integer*8 :: get_mo_erf_map_size, mo_erf_map_size + mo_erf_map_size = get_mo_erf_map_size() + +! print*,'Molecular integrals ERF provided:' +! print*,' Size of MO ERF map ', map_mb(mo_integrals_erf_map) ,'MB' +! print*,' Number of MO ERF integrals: ', mo_erf_map_size + if (write_mo_integrals_erf) then + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map) + call ezfio_set_integrals_erf_disk_access_mo_integrals_erf("Read") + endif + +END_PROVIDER + + + BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj_from_ao, (mo_tot_num,mo_tot_num) ] +&BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj_exchange_from_ao, (mo_tot_num,mo_tot_num) ] +&BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj_anti_from_ao, (mo_tot_num,mo_tot_num) ] + BEGIN_DOC + ! mo_bielec_integral_jj_from_ao(i,j) = J_ij + ! mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij + ! mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij + END_DOC + implicit none + integer :: i,j,p,q,r,s + double precision :: c + real(integral_kind) :: integral + integer :: n, pp + real(integral_kind), allocatable :: int_value(:) + integer, allocatable :: int_idx(:) + + double precision, allocatable :: iqrs(:,:), iqsr(:,:), iqis(:), iqri(:) + + if (.not.do_direct_integrals) then + PROVIDE ao_bielec_integrals_erf_in_map mo_coef + endif + + mo_bielec_integral_erf_jj_from_ao = 0.d0 + mo_bielec_integral_erf_jj_exchange_from_ao = 0.d0 + + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: iqrs, iqsr + + + !$OMP PARALLEL DEFAULT(NONE) & + !$OMP PRIVATE (i,j,p,q,r,s,integral,c,n,pp,int_value,int_idx, & + !$OMP iqrs, iqsr,iqri,iqis) & + !$OMP SHARED(mo_tot_num,mo_coef_transp,ao_num,& + !$OMP ao_integrals_threshold,do_direct_integrals) & + !$OMP REDUCTION(+:mo_bielec_integral_erf_jj_from_ao,mo_bielec_integral_erf_jj_exchange_from_ao) + + allocate( int_value(ao_num), int_idx(ao_num), & + iqrs(mo_tot_num,ao_num), iqis(mo_tot_num), iqri(mo_tot_num),& + iqsr(mo_tot_num,ao_num) ) + + !$OMP DO SCHEDULE (guided) + do s=1,ao_num + do q=1,ao_num + + do j=1,ao_num + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqrs(i,j) = 0.d0 + iqsr(i,j) = 0.d0 + enddo + enddo + + if (do_direct_integrals) then + double precision :: ao_bielec_integral_erf + do r=1,ao_num + call compute_ao_bielec_integrals_erf(q,r,s,ao_num,int_value) + do p=1,ao_num + integral = int_value(p) + if (abs(integral) > ao_integrals_threshold) then + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqrs(i,r) += mo_coef_transp(i,p) * integral + enddo + endif + enddo + call compute_ao_bielec_integrals_erf(q,s,r,ao_num,int_value) + do p=1,ao_num + integral = int_value(p) + if (abs(integral) > ao_integrals_threshold) then + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqsr(i,r) += mo_coef_transp(i,p) * integral + enddo + endif + enddo + enddo + + else + + do r=1,ao_num + call get_ao_bielec_integrals_erf_non_zero(q,r,s,ao_num,int_value,int_idx,n) + do pp=1,n + p = int_idx(pp) + integral = int_value(pp) + if (abs(integral) > ao_integrals_threshold) then + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqrs(i,r) += mo_coef_transp(i,p) * integral + enddo + endif + enddo + call get_ao_bielec_integrals_erf_non_zero(q,s,r,ao_num,int_value,int_idx,n) + do pp=1,n + p = int_idx(pp) + integral = int_value(pp) + if (abs(integral) > ao_integrals_threshold) then + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqsr(i,r) += mo_coef_transp(i,p) * integral + enddo + endif + enddo + enddo + endif + iqis = 0.d0 + iqri = 0.d0 + do r=1,ao_num + !DIR$ VECTOR ALIGNED + do i=1,mo_tot_num + iqis(i) += mo_coef_transp(i,r) * iqrs(i,r) + iqri(i) += mo_coef_transp(i,r) * iqsr(i,r) + enddo + enddo + do i=1,mo_tot_num + !DIR$ VECTOR ALIGNED + do j=1,mo_tot_num + c = mo_coef_transp(j,q)*mo_coef_transp(j,s) + mo_bielec_integral_erf_jj_from_ao(j,i) += c * iqis(i) + mo_bielec_integral_erf_jj_exchange_from_ao(j,i) += c * iqri(i) + enddo + enddo + + enddo + enddo + !$OMP END DO NOWAIT + deallocate(iqrs,iqsr,int_value,int_idx) + !$OMP END PARALLEL + + mo_bielec_integral_erf_jj_anti_from_ao = mo_bielec_integral_erf_jj_from_ao - mo_bielec_integral_erf_jj_exchange_from_ao + + +! end +END_PROVIDER + + + BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj, (mo_tot_num,mo_tot_num) ] +&BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj_exchange, (mo_tot_num,mo_tot_num) ] +&BEGIN_PROVIDER [ double precision, mo_bielec_integral_erf_jj_anti, (mo_tot_num,mo_tot_num) ] + implicit none + BEGIN_DOC + ! mo_bielec_integral_jj(i,j) = J_ij + ! mo_bielec_integral_jj_exchange(i,j) = K_ij + ! mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij + END_DOC + + integer :: i,j + double precision :: get_mo_bielec_integral_erf + + PROVIDE mo_bielec_integrals_erf_in_map + mo_bielec_integral_erf_jj = 0.d0 + mo_bielec_integral_erf_jj_exchange = 0.d0 + + do j=1,mo_tot_num + do i=1,mo_tot_num + mo_bielec_integral_erf_jj(i,j) = get_mo_bielec_integral_erf(i,j,i,j,mo_integrals_erf_map) + mo_bielec_integral_erf_jj_exchange(i,j) = get_mo_bielec_integral_erf(i,j,j,i,mo_integrals_erf_map) + mo_bielec_integral_erf_jj_anti(i,j) = mo_bielec_integral_erf_jj(i,j) - mo_bielec_integral_erf_jj_exchange(i,j) + enddo + enddo + +END_PROVIDER + + +subroutine clear_mo_erf_map + implicit none + BEGIN_DOC + ! Frees the memory of the MO map + END_DOC + call map_deinit(mo_integrals_erf_map) + FREE mo_integrals_erf_map mo_bielec_integral_erf_jj mo_bielec_integral_erf_jj_anti + FREE mo_bielec_integral_Erf_jj_exchange mo_bielec_integrals_erf_in_map + + +end + +subroutine provide_all_mo_integrals_erf + implicit none + provide mo_integrals_erf_map mo_bielec_integral_erf_jj mo_bielec_integral_erf_jj_anti + provide mo_bielec_integral_erf_jj_exchange mo_bielec_integrals_erf_in_map + +end + + +subroutine add_integrals_to_map_erf(mask_ijkl) + use bitmasks + implicit none + + BEGIN_DOC + ! Adds integrals to tha MO map according to some bitmask + END_DOC + + integer(bit_kind), intent(in) :: mask_ijkl(N_int,4) + + integer :: i,j,k,l + integer :: i0,j0,k0,l0 + double precision :: c, cpu_1, cpu_2, wall_1, wall_2, wall_0 + + integer, allocatable :: list_ijkl(:,:) + integer :: n_i, n_j, n_k, n_l + integer, allocatable :: bielec_tmp_0_idx(:) + real(integral_kind), allocatable :: bielec_tmp_0(:,:) + double precision, allocatable :: bielec_tmp_1(:) + double precision, allocatable :: bielec_tmp_2(:,:) + double precision, allocatable :: bielec_tmp_3(:,:,:) + !DIR$ ATTRIBUTES ALIGN : 64 :: bielec_tmp_1, bielec_tmp_2, bielec_tmp_3 + + integer :: n_integrals + integer :: size_buffer + integer(key_kind),allocatable :: buffer_i(:) + real(integral_kind),allocatable :: buffer_value(:) + double precision :: map_mb + + integer :: i1,j1,k1,l1, ii1, kmax, thread_num + integer :: i2,i3,i4 + double precision,parameter :: thr_coef = 1.d-10 + + PROVIDE ao_bielec_integrals_in_map mo_coef + + !Get list of MOs for i,j,k and l + !------------------------------- + + allocate(list_ijkl(mo_tot_num,4)) + call bitstring_to_list( mask_ijkl(1,1), list_ijkl(1,1), n_i, N_int ) + call bitstring_to_list( mask_ijkl(1,2), list_ijkl(1,2), n_j, N_int ) + call bitstring_to_list( mask_ijkl(1,3), list_ijkl(1,3), n_k, N_int ) + call bitstring_to_list( mask_ijkl(1,4), list_ijkl(1,4), n_l, N_int ) + character*(2048) :: output(1) + print*, 'i' + call bitstring_to_str( output(1), mask_ijkl(1,1), N_int ) + print *, trim(output(1)) + j = 0 + do i = 1, N_int + j += popcnt(mask_ijkl(i,1)) + enddo + if(j==0)then + return + endif + + print*, 'j' + call bitstring_to_str( output(1), mask_ijkl(1,2), N_int ) + print *, trim(output(1)) + j = 0 + do i = 1, N_int + j += popcnt(mask_ijkl(i,2)) + enddo + if(j==0)then + return + endif + + print*, 'k' + call bitstring_to_str( output(1), mask_ijkl(1,3), N_int ) + print *, trim(output(1)) + j = 0 + do i = 1, N_int + j += popcnt(mask_ijkl(i,3)) + enddo + if(j==0)then + return + endif + + print*, 'l' + call bitstring_to_str( output(1), mask_ijkl(1,4), N_int ) + print *, trim(output(1)) + j = 0 + do i = 1, N_int + j += popcnt(mask_ijkl(i,4)) + enddo + if(j==0)then + return + endif + + size_buffer = min(ao_num*ao_num*ao_num,16000000) + print*, 'Providing the ERF molecular integrals ' + print*, 'Buffers : ', 8.*(mo_tot_num*(n_j)*(n_k+1) + mo_tot_num+& + ao_num+ao_num*ao_num+ size_buffer*3)/(1024*1024), 'MB / core' + + call wall_time(wall_1) + call cpu_time(cpu_1) + double precision :: accu_bis + accu_bis = 0.d0 + + !$OMP PARALLEL PRIVATE(l1,k1,j1,i1,i2,i3,i4,i,j,k,l,c, ii1,kmax, & + !$OMP bielec_tmp_0_idx, bielec_tmp_0, bielec_tmp_1,bielec_tmp_2,bielec_tmp_3,& + !$OMP buffer_i,buffer_value,n_integrals,wall_2,i0,j0,k0,l0, & + !$OMP wall_0,thread_num,accu_bis) & + !$OMP DEFAULT(NONE) & + !$OMP SHARED(size_buffer,ao_num,mo_tot_num,n_i,n_j,n_k,n_l, & + !$OMP mo_coef_transp, & + !$OMP mo_coef_transp_is_built, list_ijkl, & + !$OMP mo_coef_is_built, wall_1, & + !$OMP mo_coef,mo_integrals_threshold,mo_integrals_erf_map) + n_integrals = 0 + wall_0 = wall_1 + allocate(bielec_tmp_3(mo_tot_num, n_j, n_k), & + bielec_tmp_1(mo_tot_num), & + bielec_tmp_0(ao_num,ao_num), & + bielec_tmp_0_idx(ao_num), & + bielec_tmp_2(mo_tot_num, n_j), & + buffer_i(size_buffer), & + buffer_value(size_buffer) ) + + thread_num = 0 + !$ thread_num = omp_get_thread_num() + !$OMP DO SCHEDULE(guided) + do l1 = 1,ao_num + bielec_tmp_3 = 0.d0 + do k1 = 1,ao_num + bielec_tmp_2 = 0.d0 + do j1 = 1,ao_num + call get_ao_bielec_integrals_erf(j1,k1,l1,ao_num,bielec_tmp_0(1,j1)) ! all integrals for a given l1, k1 + ! call compute_ao_bielec_integrals(j1,k1,l1,ao_num,bielec_tmp_0(1,j1)) + enddo + do j1 = 1,ao_num + kmax = 0 + do i1 = 1,ao_num + c = bielec_tmp_0(i1,j1) + if (c == 0.d0) then + cycle + endif + kmax += 1 + bielec_tmp_0(kmax,j1) = c + bielec_tmp_0_idx(kmax) = i1 + enddo + + if (kmax==0) then + cycle + endif + + bielec_tmp_1 = 0.d0 + ii1=1 + ! sum_m c_m^i (m) + do ii1 = 1,kmax-4,4 + i1 = bielec_tmp_0_idx(ii1) + i2 = bielec_tmp_0_idx(ii1+1) + i3 = bielec_tmp_0_idx(ii1+2) + i4 = bielec_tmp_0_idx(ii1+3) + do i = list_ijkl(1,1), list_ijkl(n_i,1) + bielec_tmp_1(i) = bielec_tmp_1(i) + & + mo_coef_transp(i,i1) * bielec_tmp_0(ii1,j1) + & + mo_coef_transp(i,i2) * bielec_tmp_0(ii1+1,j1) + & + mo_coef_transp(i,i3) * bielec_tmp_0(ii1+2,j1) + & + mo_coef_transp(i,i4) * bielec_tmp_0(ii1+3,j1) + enddo ! i + enddo ! ii1 + + i2 = ii1 + do ii1 = i2,kmax + i1 = bielec_tmp_0_idx(ii1) + do i = list_ijkl(1,1), list_ijkl(n_i,1) + bielec_tmp_1(i) = bielec_tmp_1(i) + mo_coef_transp(i,i1) * bielec_tmp_0(ii1,j1) + enddo ! i + enddo ! ii1 + c = 0.d0 + + do i = list_ijkl(1,1), list_ijkl(n_i,1) + c = max(c,abs(bielec_tmp_1(i))) + if (c>mo_integrals_threshold) exit + enddo + if ( c < mo_integrals_threshold ) then + cycle + endif + + do j0 = 1, n_j + j = list_ijkl(j0,2) + c = mo_coef_transp(j,j1) + if (abs(c) < thr_coef) then + cycle + endif + do i = list_ijkl(1,1), list_ijkl(n_i,1) + bielec_tmp_2(i,j0) = bielec_tmp_2(i,j0) + c * bielec_tmp_1(i) + enddo ! i + enddo ! j + enddo !j1 + if ( maxval(abs(bielec_tmp_2)) < mo_integrals_threshold ) then + cycle + endif + + + do k0 = 1, n_k + k = list_ijkl(k0,3) + c = mo_coef_transp(k,k1) + if (abs(c) < thr_coef) then + cycle + endif + + do j0 = 1, n_j + j = list_ijkl(j0,2) + do i = list_ijkl(1,1), k + bielec_tmp_3(i,j0,k0) = bielec_tmp_3(i,j0,k0) + c* bielec_tmp_2(i,j0) + enddo!i + enddo !j + + enddo !k + enddo !k1 + + + + do l0 = 1,n_l + l = list_ijkl(l0,4) + c = mo_coef_transp(l,l1) + if (abs(c) < thr_coef) then + cycle + endif + j1 = ishft((l*l-l),-1) + do j0 = 1, n_j + j = list_ijkl(j0,2) + if (j > l) then + exit + endif + j1 += 1 + do k0 = 1, n_k + k = list_ijkl(k0,3) + i1 = ishft((k*k-k),-1) + if (i1<=j1) then + continue + else + exit + endif + bielec_tmp_1 = 0.d0 + do i0 = 1, n_i + i = list_ijkl(i0,1) + if (i>k) then + exit + endif + bielec_tmp_1(i) = c*bielec_tmp_3(i,j0,k0) + ! i1+=1 + enddo + + do i0 = 1, n_i + i = list_ijkl(i0,1) + if(i> min(k,j1-i1+list_ijkl(1,1)-1))then + exit + endif + if (abs(bielec_tmp_1(i)) < mo_integrals_threshold) then + cycle + endif + n_integrals += 1 + buffer_value(n_integrals) = bielec_tmp_1(i) + !DIR$ FORCEINLINE + call mo_bielec_integrals_index(i,j,k,l,buffer_i(n_integrals)) + if (n_integrals == size_buffer) then + call insert_into_mo_integrals_erf_map(n_integrals,buffer_i,buffer_value,& + real(mo_integrals_threshold,integral_kind)) + n_integrals = 0 + endif + enddo + 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 + print*, 100.*float(l1)/float(ao_num), '% in ', & + wall_2-wall_1, 's', map_mb(mo_integrals_erf_map) ,'MB' + endif + endif + enddo + !$OMP END DO NOWAIT + deallocate (bielec_tmp_1,bielec_tmp_2,bielec_tmp_3) + + integer :: index_needed + + call insert_into_mo_integrals_erf_map(n_integrals,buffer_i,buffer_value,& + real(mo_integrals_threshold,integral_kind)) + deallocate(buffer_i, buffer_value) + !$OMP END PARALLEL + call map_merge(mo_integrals_erf_map) + + call wall_time(wall_2) + call cpu_time(cpu_2) + integer*8 :: get_mo_erf_map_size, mo_map_size + mo_map_size = get_mo_erf_map_size() + + deallocate(list_ijkl) + + + print*,'Molecular ERF integrals provided:' + print*,' Size of MO ERF map ', map_mb(mo_integrals_erf_map) ,'MB' + print*,' Number of MO ERF integrals: ', mo_map_size + print*,' cpu time :',cpu_2 - cpu_1, 's' + print*,' wall time :',wall_2 - wall_1, 's ( x ', (cpu_2-cpu_1)/(wall_2-wall_1), ')' + +end + + diff --git a/src/integrals_bielec_erf/providers_ao_erf.irp.f b/src/integrals_bielec_erf/providers_ao_erf.irp.f new file mode 100644 index 00000000..34c90bb5 --- /dev/null +++ b/src/integrals_bielec_erf/providers_ao_erf.irp.f @@ -0,0 +1,125 @@ + +BEGIN_PROVIDER [ logical, ao_bielec_integrals_erf_in_map ] + implicit none + use f77_zmq + use map_module + BEGIN_DOC + ! Map of Atomic integrals + ! i(r1) j(r2) 1/r12 k(r1) l(r2) + END_DOC + + integer :: i,j,k,l + double precision :: ao_bielec_integral_erf,cpu_1,cpu_2, wall_1, wall_2 + double precision :: integral, wall_0 + include 'Utils/constants.include.F' + + ! For integrals file + integer(key_kind),allocatable :: buffer_i(:) + integer,parameter :: size_buffer = 1024*64 + real(integral_kind),allocatable :: buffer_value(:) + + integer :: n_integrals, rc + integer :: kk, m, j1, i1, lmax + character*(64) :: fmt + + integral = ao_bielec_integral_erf(1,1,1,1) + + double precision :: map_mb + PROVIDE read_ao_integrals_erf disk_access_ao_integrals_erf + if (read_ao_integrals_erf) then + print*,'Reading the AO ERF integrals' + call map_load_from_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map) + print*, 'AO ERF integrals provided' + ao_bielec_integrals_erf_in_map = .True. + return + endif + + print*, 'Providing the AO ERF integrals' + call wall_time(wall_0) + call wall_time(wall_1) + call cpu_time(cpu_1) + + integer(ZMQ_PTR) :: zmq_to_qp_run_socket, zmq_socket_pull + call new_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,'ao_integrals_erf') + + character(len=:), allocatable :: task + allocate(character(len=ao_num*12) :: task) + write(fmt,*) '(', ao_num, '(I5,X,I5,''|''))' + do l=1,ao_num + write(task,fmt) (i,l, i=1,l) + integer, external :: add_task_to_taskserver + if (add_task_to_taskserver(zmq_to_qp_run_socket,trim(task)) == -1) then + stop 'Unable to add task to server' + endif + enddo + deallocate(task) + + integer, external :: zmq_set_running + if (zmq_set_running(zmq_to_qp_run_socket) == -1) then + print *, irp_here, ': Failed in zmq_set_running' + endif + + PROVIDE nproc + !$OMP PARALLEL DEFAULT(shared) private(i) num_threads(nproc+1) + i = omp_get_thread_num() + if (i==0) then + call ao_bielec_integrals_erf_in_map_collector(zmq_socket_pull) + else + call ao_bielec_integrals_erf_in_map_slave_inproc(i) + endif + !$OMP END PARALLEL + + call end_parallel_job(zmq_to_qp_run_socket, zmq_socket_pull, 'ao_integrals_erf') + + + print*, 'Sorting the map' + call map_sort(ao_integrals_erf_map) + call cpu_time(cpu_2) + call wall_time(wall_2) + integer(map_size_kind) :: get_ao_erf_map_size, ao_erf_map_size + ao_erf_map_size = get_ao_erf_map_size() + + print*, 'AO ERF integrals provided:' + print*, ' Size of AO ERF map : ', map_mb(ao_integrals_erf_map) ,'MB' + print*, ' Number of AO ERF integrals :', ao_erf_map_size + print*, ' cpu time :',cpu_2 - cpu_1, 's' + print*, ' wall time :',wall_2 - wall_1, 's ( x ', (cpu_2-cpu_1)/(wall_2-wall_1+tiny(1.d0)), ' )' + + ao_bielec_integrals_erf_in_map = .True. + + if (write_ao_integrals_erf) then + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map) + call ezfio_set_integrals_erf_disk_access_ao_integrals_erf("Read") + endif + +END_PROVIDER + + + + +BEGIN_PROVIDER [ double precision, ao_bielec_integral_erf_schwartz,(ao_num,ao_num) ] + implicit none + BEGIN_DOC + ! Needed to compute Schwartz inequalities + END_DOC + + integer :: i,k + double precision :: ao_bielec_integral_erf,cpu_1,cpu_2, wall_1, wall_2 + + ao_bielec_integral_erf_schwartz(1,1) = ao_bielec_integral_erf(1,1,1,1) + !$OMP PARALLEL DO PRIVATE(i,k) & + !$OMP DEFAULT(NONE) & + !$OMP SHARED (ao_num,ao_bielec_integral_erf_schwartz) & + !$OMP SCHEDULE(dynamic) + do i=1,ao_num + do k=1,i + ao_bielec_integral_erf_schwartz(i,k) = dsqrt(ao_bielec_integral_erf(i,k,i,k)) + ao_bielec_integral_erf_schwartz(k,i) = ao_bielec_integral_erf_schwartz(i,k) + enddo + enddo + !$OMP END PARALLEL DO + +END_PROVIDER + + diff --git a/src/integrals_bielec_erf/qp_ao_erf_ints.irp.f b/src/integrals_bielec_erf/qp_ao_erf_ints.irp.f new file mode 100644 index 00000000..df6d8d16 --- /dev/null +++ b/src/integrals_bielec_erf/qp_ao_erf_ints.irp.f @@ -0,0 +1,32 @@ +program qp_ao_ints + use omp_lib + implicit none + BEGIN_DOC +! Increments a running calculation to compute AO integral_erfs + END_DOC + integer :: i + + call switch_qp_run_to_master + + zmq_context = f77_zmq_ctx_new () + + ! Set the state of the ZMQ + zmq_state = 'ao_integral_erfs' + + ! Provide everything needed + double precision :: integral_erf, ao_bielec_integral_erf + integral_erf = ao_bielec_integral_erf(1,1,1,1) + + character*(64) :: state + call wait_for_state(zmq_state,state) + do while (state /= 'Stopped') + !$OMP PARALLEL DEFAULT(PRIVATE) PRIVATE(i) + i = omp_get_thread_num() + call ao_bielec_integrals_erf_in_map_slave_tcp(i) + !$OMP END PARALLEL + call wait_for_state(zmq_state,state) + enddo + + print *, 'Done' +end + diff --git a/src/integrals_bielec_erf/read_write.irp.f b/src/integrals_bielec_erf/read_write.irp.f new file mode 100644 index 00000000..12bbf0bc --- /dev/null +++ b/src/integrals_bielec_erf/read_write.irp.f @@ -0,0 +1,47 @@ +BEGIN_PROVIDER [ logical, read_ao_integrals_erf ] +&BEGIN_PROVIDER [ logical, read_mo_integrals_erf ] +&BEGIN_PROVIDER [ logical, write_ao_integrals_erf ] +&BEGIN_PROVIDER [ logical, write_mo_integrals_erf ] + + BEGIN_DOC +! One level of abstraction for disk_access_ao_integrals_erf and disk_access_mo_integrals_erf + END_DOC +implicit none + + if (disk_access_ao_integrals_erf.EQ.'Read') then + read_ao_integrals_erf = .True. + write_ao_integrals_erf = .False. + + else if (disk_access_ao_integrals_erf.EQ.'Write') then + read_ao_integrals_erf = .False. + write_ao_integrals_erf = .True. + + else if (disk_access_ao_integrals_erf.EQ.'None') then + read_ao_integrals_erf = .False. + write_ao_integrals_erf = .False. + + else + print *, 'bielec_integrals_erf/disk_access_ao_integrals_erf has a wrong type' + stop 1 + + endif + + if (disk_access_mo_integrals_erf.EQ.'Read') then + read_mo_integrals_erf = .True. + write_mo_integrals_erf = .False. + + else if (disk_access_mo_integrals_erf.EQ.'Write') then + read_mo_integrals_erf = .False. + write_mo_integrals_erf = .True. + + else if (disk_access_mo_integrals_erf.EQ.'None') then + read_mo_integrals_erf = .False. + write_mo_integrals_erf = .False. + + else + print *, 'bielec_integrals_erf/disk_access_mo_integrals_erf has a wrong type' + stop 1 + + endif + +END_PROVIDER diff --git a/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f b/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f new file mode 100644 index 00000000..ffc956a1 --- /dev/null +++ b/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f @@ -0,0 +1,36 @@ +subroutine save_erf_bi_elec_integrals_mo + implicit none + integer :: i,j,k,l + PROVIDE mo_bielec_integrals_erf_in_map + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map) + call ezfio_set_integrals_bielec_disk_access_mo_integrals("Read") +end + +subroutine save_erf_bi_elec_integrals_ao + implicit none + integer :: i,j,k,l + PROVIDE ao_bielec_integrals_erf_in_map + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map) + call ezfio_set_integrals_bielec_disk_access_ao_integrals("Read") +end + +subroutine save_erf_bi_elec_integrals_mo_into_regular_integrals_mo + implicit none + integer :: i,j,k,l + PROVIDE mo_bielec_integrals_erf_in_map + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints',mo_integrals_erf_map) + call ezfio_set_integrals_bielec_disk_access_mo_integrals("Read") +end + +subroutine save_erf_bi_elec_integrals_ao_into_regular_integrals_ao + implicit none + integer :: i,j,k,l + PROVIDE ao_bielec_integrals_erf_in_map + call ezfio_set_work_empty(.False.) + call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints',ao_integrals_erf_map) + call ezfio_set_integrals_bielec_disk_access_ao_integrals("Read") +end + diff --git a/src/integrals_bielec_erf/write_integrals_erf.irp.f b/src/integrals_bielec_erf/write_integrals_erf.irp.f new file mode 100644 index 00000000..fa3584a1 --- /dev/null +++ b/src/integrals_bielec_erf/write_integrals_erf.irp.f @@ -0,0 +1,20 @@ +program write_integrals + implicit none + BEGIN_DOC + ! This program saves the bielec erf integrals into the EZFIO folder + END_DOC + disk_access_mo_integrals = "None" + touch disk_access_mo_integrals + disk_access_ao_integrals = "None" + touch disk_access_ao_integrals + call routine + +end + +subroutine routine + implicit none + call save_erf_bi_elec_integrals_ao + call save_erf_bi_elec_integrals_mo + +end + diff --git a/src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f b/src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f new file mode 100644 index 00000000..488c6372 --- /dev/null +++ b/src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f @@ -0,0 +1,21 @@ +program write_integrals_erf_to_regular_integrals + implicit none + BEGIN_DOC + ! This program saves the bielec erf integrals into the EZFIO folder but at the regular bielec integrals place. + ! Threfore, if the user runs a future calculation with a reading of the integrals, the calculation will be performed with the erf bielec integrals instead of the regular bielec integrals + END_DOC + disk_access_mo_integrals = "None" + touch disk_access_mo_integrals + disk_access_ao_integrals = "None" + touch disk_access_ao_integrals + call routine + +end + +subroutine routine + implicit none + call save_erf_bi_elec_integrals_mo_into_regular_integrals_mo + call save_erf_bi_elec_integrals_ao_into_regular_integrals_ao + +end + diff --git a/src/mo_basis/mos_in_r.irp.f b/src/mo_basis/mos_in_r.irp.f new file mode 100644 index 00000000..4bbf9b2b --- /dev/null +++ b/src/mo_basis/mos_in_r.irp.f @@ -0,0 +1,55 @@ + +subroutine give_all_mos_at_r(r,mos_array) + implicit none + double precision, intent(in) :: r(3) + double precision, intent(out) :: mos_array(mo_tot_num) + double precision :: aos_array(ao_num) + call give_all_aos_at_r(r,aos_array) + call dgemv('N',mo_tot_num,ao_num,1.d0,mo_coef_transp,mo_tot_num,aos_array,1,0.d0,mos_array,1) +end + +subroutine give_all_mos_and_grad_at_r(r,mos_array,mos_grad_array) + implicit none + double precision, intent(in) :: r(3) + double precision, intent(out) :: mos_array(mo_tot_num) + double precision, intent(out) :: mos_grad_array(mo_tot_num,3) + integer :: i,j,k + double precision :: aos_array(ao_num),aos_grad_array(ao_num,3) + call give_all_aos_and_grad_at_r(r,aos_array,aos_grad_array) + mos_array=0d0 + mos_grad_array=0d0 + do j = 1, mo_tot_num + do k=1, ao_num + mos_array(j) += mo_coef(k,j)*aos_array(k) + mos_grad_array(j,1) += mo_coef(k,j)*aos_grad_array(k,1) + mos_grad_array(j,2) += mo_coef(k,j)*aos_grad_array(k,2) + mos_grad_array(j,3) += mo_coef(k,j)*aos_grad_array(k,3) + enddo + enddo +end + + +subroutine give_all_mos_and_grad_and_lapl_at_r(r,mos_array,mos_grad_array,mos_lapl_array) + implicit none + double precision, intent(in) :: r(3) + double precision, intent(out) :: mos_array(mo_tot_num) + double precision, intent(out) :: mos_grad_array(mo_tot_num,3),mos_lapl_array(mo_tot_num,3) + integer :: i,j,k + double precision :: aos_array(ao_num),aos_grad_array(ao_num,3),aos_lapl_array(ao_num,3) + call give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_lapl_array) + mos_array=0d0 + mos_grad_array=0d0 + mos_lapl_array=0d0 + do j = 1, mo_tot_num + do k=1, ao_num + mos_array(j) += mo_coef(k,j)*aos_array(k) + mos_grad_array(j,1) += mo_coef(k,j)*aos_grad_array(k,1) + mos_grad_array(j,2) += mo_coef(k,j)*aos_grad_array(k,2) + mos_grad_array(j,3) += mo_coef(k,j)*aos_grad_array(k,3) + mos_lapl_array(j,1) += mo_coef(k,j)*aos_lapl_array(k,1) + mos_lapl_array(j,2) += mo_coef(k,j)*aos_lapl_array(k,2) + mos_lapl_array(j,3) += mo_coef(k,j)*aos_lapl_array(k,3) + enddo + enddo +end + From 02c8e669803d5ee5d9338deba899dd88d39b8dfe Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Wed, 19 Dec 2018 12:40:48 +0100 Subject: [PATCH 05/22] added dft_utils_two_body and it compilates --- configure | 2 +- src/ao_one_e_integrals/pot_ao_erf_ints.irp.f | 2 +- src/becke_numerical_grid/grid_becke.irp.f | 3 +- src/davidson/u0_h_u0_bielec.irp.f | 494 ++++++++++++++++++ src/determinants/psi_energy_mono_elec.irp.f | 26 + src/dummy/NEED | 1 + .../ao_bi_integrals_erf.irp.f | 12 +- .../mo_bi_integrals_erf.irp.f | 2 +- .../providers_ao_erf.irp.f | 4 +- .../routines_save_integrals_erf.irp.f | 4 +- ...f => write_ints_erf_to_regular_ints.irp.f} | 4 +- src/nuclei/nuclei.irp.f | 10 + src/slave/slave_cipsi | Bin 21204584 -> 17536848 bytes src/utils/constants.include.F | 6 + 14 files changed, 553 insertions(+), 17 deletions(-) create mode 100644 src/davidson/u0_h_u0_bielec.irp.f create mode 100644 src/determinants/psi_energy_mono_elec.irp.f rename src/integrals_bielec_erf/{write_integrals_erf_to_regular_integrals.irp.f => write_ints_erf_to_regular_ints.irp.f} (82%) diff --git a/configure b/configure index 228cee0b..1c0b63b4 100755 --- a/configure +++ b/configure @@ -27,7 +27,7 @@ EOF exit } - +export QP_ROOT=${PWD} PACKAGES="" while : ; do diff --git a/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f b/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f index d076609c..a5eb0bda 100644 --- a/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f +++ b/src/ao_one_e_integrals/pot_ao_erf_ints.irp.f @@ -64,7 +64,7 @@ double precision :: I_n_special_exact,integrate_bourrin,I_n_bibi double precision :: V_e_n,const_factor,dist_integral,tmp double precision :: accu,rint,p_inv,p,rho,p_inv_2 integer :: n_pt_out,lmax -include 'Utils/constants.include.F' +include 'utils/constants.include.F' p = alpha + beta p_inv = 1.d0/p p_inv_2 = 0.5d0 * p_inv diff --git a/src/becke_numerical_grid/grid_becke.irp.f b/src/becke_numerical_grid/grid_becke.irp.f index 9b268cba..6a08e628 100644 --- a/src/becke_numerical_grid/grid_becke.irp.f +++ b/src/becke_numerical_grid/grid_becke.irp.f @@ -123,8 +123,7 @@ BEGIN_PROVIDER [double precision, grid_points_per_atom, (3,n_points_integration_ enddo END_PROVIDER -BEGIN_PROVIDER [double precision, weight_functions_at_grid_points, & - (n_points_integration_angular,n_points_radial_grid,nucl_num) ] +BEGIN_PROVIDER [double precision, weight_functions_at_grid_points, (n_points_integration_angular,n_points_radial_grid,nucl_num) ] BEGIN_DOC ! Weight function at grid points : w_n(r) according to the equation (22) ! of Becke original paper (JCP, 88, 1988) diff --git a/src/davidson/u0_h_u0_bielec.irp.f b/src/davidson/u0_h_u0_bielec.irp.f new file mode 100644 index 00000000..8092213c --- /dev/null +++ b/src/davidson/u0_h_u0_bielec.irp.f @@ -0,0 +1,494 @@ +BEGIN_PROVIDER [ double precision, psi_energy_bielec, (N_states) ] + implicit none + BEGIN_DOC +! Energy of the current wave function + END_DOC + integer :: i,j + call u_0_H_u_0_bielec(psi_energy_bielec,psi_coef,N_det,psi_det,N_int,N_states,psi_det_size) + do i=N_det+1,N_states + psi_energy(i) = 0.d0 + enddo +END_PROVIDER + + +subroutine H_S2_u_0_bielec_nstates_openmp(v_0,s_0,u_0,N_st,sze) + use bitmasks + implicit none + BEGIN_DOC + ! Computes v_0 = H|u_0> and s_0 = S^2 |u_0> + ! + ! Assumes that the determinants are in psi_det + ! + ! istart, iend, ishift, istep are used in ZMQ parallelization. + END_DOC + integer, intent(in) :: N_st,sze + double precision, intent(inout) :: v_0(sze,N_st), s_0(sze,N_st), u_0(sze,N_st) + integer :: k + double precision, allocatable :: u_t(:,:), v_t(:,:), s_t(:,:) + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: u_t + allocate(u_t(N_st,N_det),v_t(N_st,N_det),s_t(N_st,N_det)) + do k=1,N_st + call dset_order(u_0(1,k),psi_bilinear_matrix_order,N_det) + enddo + v_t = 0.d0 + s_t = 0.d0 + call dtranspose( & + u_0, & + size(u_0, 1), & + u_t, & + size(u_t, 1), & + N_det, N_st) + + call H_S2_u_0_bielec_nstates_openmp_work(v_t,s_t,u_t,N_st,sze,1,N_det,0,1) + deallocate(u_t) + + call dtranspose( & + v_t, & + size(v_t, 1), & + v_0, & + size(v_0, 1), & + N_st, N_det) + call dtranspose( & + s_t, & + size(s_t, 1), & + s_0, & + size(s_0, 1), & + N_st, N_det) + deallocate(v_t,s_t) + + do k=1,N_st + call dset_order(v_0(1,k),psi_bilinear_matrix_order_reverse,N_det) + call dset_order(s_0(1,k),psi_bilinear_matrix_order_reverse,N_det) + call dset_order(u_0(1,k),psi_bilinear_matrix_order_reverse,N_det) + enddo + +end + + +subroutine H_S2_u_0_bielec_nstates_openmp_work(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + use bitmasks + implicit none + BEGIN_DOC + ! Computes v_t = H|u_t> and s_t = S^2 |u_t> + ! + ! Default should be 1,N_det,0,1 + END_DOC + integer, intent(in) :: N_st,sze,istart,iend,ishift,istep + double precision, intent(in) :: u_t(N_st,N_det) + double precision, intent(out) :: v_t(N_st,sze), s_t(N_st,sze) + + + PROVIDE ref_bitmask_energy N_int + + select case (N_int) + case (1) + call H_S2_u_0_bielec_nstates_openmp_work_1(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + case (2) + call H_S2_u_0_bielec_nstates_openmp_work_2(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + case (3) + call H_S2_u_0_bielec_nstates_openmp_work_3(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + case (4) + call H_S2_u_0_bielec_nstates_openmp_work_4(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + case default + call H_S2_u_0_bielec_nstates_openmp_work_N_int(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + end select +end +BEGIN_TEMPLATE + +subroutine H_S2_u_0_bielec_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) + use bitmasks + implicit none + BEGIN_DOC + ! Computes v_t = H|u_t> and s_t = S^2 |u_t> + ! + ! Default should be 1,N_det,0,1 + END_DOC + integer, intent(in) :: N_st,sze,istart,iend,ishift,istep + double precision, intent(in) :: u_t(N_st,N_det) + double precision, intent(out) :: v_t(N_st,sze), s_t(N_st,sze) + + double precision :: hij, sij + integer :: i,j,k,l + integer :: k_a, k_b, l_a, l_b, m_a, m_b + integer :: istate + integer :: krow, kcol, krow_b, kcol_b + integer :: lrow, lcol + integer :: mrow, mcol + integer(bit_kind) :: spindet($N_int) + integer(bit_kind) :: tmp_det($N_int,2) + integer(bit_kind) :: tmp_det2($N_int,2) + integer(bit_kind) :: tmp_det3($N_int,2) + integer(bit_kind), allocatable :: buffer(:,:) + integer :: n_doubles + integer, allocatable :: doubles(:) + integer, allocatable :: singles_a(:) + integer, allocatable :: singles_b(:) + integer, allocatable :: idx(:), idx0(:) + integer :: maxab, n_singles_a, n_singles_b, kcol_prev + integer*8 :: k8 + + maxab = max(N_det_alpha_unique, N_det_beta_unique)+1 + allocate(idx0(maxab)) + + do i=1,maxab + idx0(i) = i + enddo + + ! Prepare the array of all alpha single excitations + ! ------------------------------------------------- + + PROVIDE N_int nthreads_davidson + !$OMP PARALLEL DEFAULT(NONE) NUM_THREADS(nthreads_davidson) & + !$OMP SHARED(psi_bilinear_matrix_rows, N_det, & + !$OMP psi_bilinear_matrix_columns, & + !$OMP psi_det_alpha_unique, psi_det_beta_unique, & + !$OMP n_det_alpha_unique, n_det_beta_unique, N_int, & + !$OMP psi_bilinear_matrix_transp_rows, & + !$OMP psi_bilinear_matrix_transp_columns, & + !$OMP psi_bilinear_matrix_transp_order, N_st, & + !$OMP psi_bilinear_matrix_order_transp_reverse, & + !$OMP psi_bilinear_matrix_columns_loc, & + !$OMP psi_bilinear_matrix_transp_rows_loc, & + !$OMP istart, iend, istep, irp_here, v_t, s_t, & + !$OMP ishift, idx0, u_t, maxab) & + !$OMP PRIVATE(krow, kcol, tmp_det, spindet, k_a, k_b, i, & + !$OMP lcol, lrow, l_a, l_b, & + !$OMP buffer, doubles, n_doubles, & + !$OMP tmp_det2, hij, sij, idx, l, kcol_prev, & + !$OMP singles_a, n_singles_a, singles_b, & + !$OMP n_singles_b, k8) + + ! Alpha/Beta double excitations + ! ============================= + + allocate( buffer($N_int,maxab), & + singles_a(maxab), & + singles_b(maxab), & + doubles(maxab), & + idx(maxab)) + + kcol_prev=-1 + + ASSERT (iend <= N_det) + ASSERT (istart > 0) + ASSERT (istep > 0) + + !$OMP DO SCHEDULE(dynamic,64) + do k_a=istart+ishift,iend,istep + + krow = psi_bilinear_matrix_rows(k_a) + ASSERT (krow <= N_det_alpha_unique) + + kcol = psi_bilinear_matrix_columns(k_a) + ASSERT (kcol <= N_det_beta_unique) + + tmp_det(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, krow) + tmp_det(1:$N_int,2) = psi_det_beta_unique (1:$N_int, kcol) + + if (kcol /= kcol_prev) then + call get_all_spin_singles_$N_int( & + psi_det_beta_unique, idx0, & + tmp_det(1,2), N_det_beta_unique, & + singles_b, n_singles_b) + endif + kcol_prev = kcol + + ! Loop over singly excited beta columns + ! ------------------------------------- + + do i=1,n_singles_b + lcol = singles_b(i) + + tmp_det2(1:$N_int,2) = psi_det_beta_unique(1:$N_int, lcol) + + l_a = psi_bilinear_matrix_columns_loc(lcol) + ASSERT (l_a <= N_det) + + do j=1,psi_bilinear_matrix_columns_loc(lcol+1) - l_a + lrow = psi_bilinear_matrix_rows(l_a) + ASSERT (lrow <= N_det_alpha_unique) + + buffer(1:$N_int,j) = psi_det_alpha_unique(1:$N_int, lrow) + + ASSERT (l_a <= N_det) + idx(j) = l_a + l_a = l_a+1 + enddo + j = j-1 + + call get_all_spin_singles_$N_int( & + buffer, idx, tmp_det(1,1), j, & + singles_a, n_singles_a ) + + ! Loop over alpha singles + ! ----------------------- + + do k = 1,n_singles_a + l_a = singles_a(k) + ASSERT (l_a <= N_det) + + lrow = psi_bilinear_matrix_rows(l_a) + ASSERT (lrow <= N_det_alpha_unique) + + tmp_det2(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, lrow) + call i_H_j_double_alpha_beta(tmp_det,tmp_det2,$N_int,hij) + call get_s2(tmp_det,tmp_det2,$N_int,sij) + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,l_a) + s_t(l,k_a) = s_t(l,k_a) + sij * u_t(l,l_a) + enddo + enddo + + enddo + + enddo + !$OMP END DO + + !$OMP DO SCHEDULE(dynamic,64) + do k_a=istart+ishift,iend,istep + + + ! Single and double alpha excitations + ! =================================== + + + ! Initial determinant is at k_a in alpha-major representation + ! ----------------------------------------------------------------------- + + krow = psi_bilinear_matrix_rows(k_a) + ASSERT (krow <= N_det_alpha_unique) + + kcol = psi_bilinear_matrix_columns(k_a) + ASSERT (kcol <= N_det_beta_unique) + + tmp_det(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, krow) + tmp_det(1:$N_int,2) = psi_det_beta_unique (1:$N_int, kcol) + + ! Initial determinant is at k_b in beta-major representation + ! ---------------------------------------------------------------------- + + k_b = psi_bilinear_matrix_order_transp_reverse(k_a) + ASSERT (k_b <= N_det) + + spindet(1:$N_int) = tmp_det(1:$N_int,1) + + ! Loop inside the beta column to gather all the connected alphas + lcol = psi_bilinear_matrix_columns(k_a) + l_a = psi_bilinear_matrix_columns_loc(lcol) + do i=1,N_det_alpha_unique + if (l_a > N_det) exit + lcol = psi_bilinear_matrix_columns(l_a) + if (lcol /= kcol) exit + lrow = psi_bilinear_matrix_rows(l_a) + ASSERT (lrow <= N_det_alpha_unique) + + buffer(1:$N_int,i) = psi_det_alpha_unique(1:$N_int, lrow) + idx(i) = l_a + l_a = l_a+1 + enddo + i = i-1 + + call get_all_spin_singles_and_doubles_$N_int( & + buffer, idx, spindet, i, & + singles_a, doubles, n_singles_a, n_doubles ) + + ! Compute Hij for all alpha singles + ! ---------------------------------- + + tmp_det2(1:$N_int,2) = psi_det_beta_unique (1:$N_int, kcol) + do i=1,n_singles_a + l_a = singles_a(i) + ASSERT (l_a <= N_det) + + lrow = psi_bilinear_matrix_rows(l_a) + ASSERT (lrow <= N_det_alpha_unique) + + tmp_det2(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, lrow) + call i_H_j_mono_spin_bielec( tmp_det, tmp_det2, $N_int, 1, hij) + + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,l_a) + ! single => sij = 0 + enddo + enddo + + + ! Compute Hij for all alpha doubles + ! ---------------------------------- + + do i=1,n_doubles + l_a = doubles(i) + ASSERT (l_a <= N_det) + + lrow = psi_bilinear_matrix_rows(l_a) + ASSERT (lrow <= N_det_alpha_unique) + + call i_H_j_double_spin( tmp_det(1,1), psi_det_alpha_unique(1, lrow), $N_int, hij) + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,l_a) + ! same spin => sij = 0 + enddo + enddo + + + ! Single and double beta excitations + ! ================================== + + + ! Initial determinant is at k_a in alpha-major representation + ! ----------------------------------------------------------------------- + + krow = psi_bilinear_matrix_rows(k_a) + kcol = psi_bilinear_matrix_columns(k_a) + + tmp_det(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, krow) + tmp_det(1:$N_int,2) = psi_det_beta_unique (1:$N_int, kcol) + + spindet(1:$N_int) = tmp_det(1:$N_int,2) + + ! Initial determinant is at k_b in beta-major representation + ! ----------------------------------------------------------------------- + + k_b = psi_bilinear_matrix_order_transp_reverse(k_a) + ASSERT (k_b <= N_det) + + ! Loop inside the alpha row to gather all the connected betas + lrow = psi_bilinear_matrix_transp_rows(k_b) + l_b = psi_bilinear_matrix_transp_rows_loc(lrow) + do i=1,N_det_beta_unique + if (l_b > N_det) exit + lrow = psi_bilinear_matrix_transp_rows(l_b) + if (lrow /= krow) exit + lcol = psi_bilinear_matrix_transp_columns(l_b) + ASSERT (lcol <= N_det_beta_unique) + + buffer(1:$N_int,i) = psi_det_beta_unique(1:$N_int, lcol) + idx(i) = l_b + l_b = l_b+1 + enddo + i = i-1 + + call get_all_spin_singles_and_doubles_$N_int( & + buffer, idx, spindet, i, & + singles_b, doubles, n_singles_b, n_doubles ) + + ! Compute Hij for all beta singles + ! ---------------------------------- + + tmp_det2(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, krow) + do i=1,n_singles_b + l_b = singles_b(i) + ASSERT (l_b <= N_det) + + lcol = psi_bilinear_matrix_transp_columns(l_b) + ASSERT (lcol <= N_det_beta_unique) + + tmp_det2(1:$N_int,2) = psi_det_beta_unique (1:$N_int, lcol) + call i_H_j_mono_spin_bielec( tmp_det, tmp_det2, $N_int, 2, hij) + l_a = psi_bilinear_matrix_transp_order(l_b) + ASSERT (l_a <= N_det) + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,l_a) + ! single => sij = 0 + enddo + enddo + + ! Compute Hij for all beta doubles + ! ---------------------------------- + + do i=1,n_doubles + l_b = doubles(i) + ASSERT (l_b <= N_det) + + lcol = psi_bilinear_matrix_transp_columns(l_b) + ASSERT (lcol <= N_det_beta_unique) + + call i_H_j_double_spin( tmp_det(1,2), psi_det_beta_unique(1, lcol), $N_int, hij) + l_a = psi_bilinear_matrix_transp_order(l_b) + ASSERT (l_a <= N_det) + + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,l_a) + ! same spin => sij = 0 + enddo + enddo + + + ! Diagonal contribution + ! ===================== + + + ! Initial determinant is at k_a in alpha-major representation + ! ----------------------------------------------------------------------- + + krow = psi_bilinear_matrix_rows(k_a) + ASSERT (krow <= N_det_alpha_unique) + + kcol = psi_bilinear_matrix_columns(k_a) + ASSERT (kcol <= N_det_beta_unique) + + tmp_det(1:$N_int,1) = psi_det_alpha_unique(1:$N_int, krow) + tmp_det(1:$N_int,2) = psi_det_beta_unique (1:$N_int, kcol) + + double precision, external :: diag_H_mat_elem_bielec, diag_S_mat_elem + + hij = diag_H_mat_elem_bielec(tmp_det,$N_int) + sij = diag_S_mat_elem(tmp_det,$N_int) + do l=1,N_st + v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,k_a) + s_t(l,k_a) = s_t(l,k_a) + sij * u_t(l,k_a) + enddo + + end do + !$OMP END DO + deallocate(buffer, singles_a, singles_b, doubles, idx) + !$OMP END PARALLEL + +end + +SUBST [ N_int ] + +1;; +2;; +3;; +4;; +N_int;; + +END_TEMPLATE + + +subroutine u_0_H_u_0_bielec(e_0,u_0,n,keys_tmp,Nint,N_st,sze) + use bitmasks + implicit none + BEGIN_DOC + ! Computes e_0 = / + ! + ! n : number of determinants + ! + END_DOC + integer, intent(in) :: n,Nint, N_st, sze + double precision, intent(out) :: e_0(N_st) + double precision, intent(inout) :: u_0(sze,N_st) + integer(bit_kind),intent(in) :: keys_tmp(Nint,2,n) + + double precision, allocatable :: v_0(:,:), s_0(:,:), u_1(:,:) + double precision :: u_dot_u,u_dot_v,diag_H_mat_elem + integer :: i,j + + allocate (v_0(n,N_st),s_0(n,N_st),u_1(n,N_st)) + u_1(1:n,:) = u_0(1:n,:) + call H_S2_u_0_bielec_nstates_openmp(v_0,s_0,u_1,N_st,n) + u_0(1:n,:) = u_1(1:n,:) + deallocate(u_1) + double precision :: norm + do i=1,N_st + norm = u_dot_u(u_0(1,i),n) + if (norm /= 0.d0) then + e_0(i) = u_dot_v(v_0(1,i),u_0(1,i),n)/u_dot_u(u_0(1,i),n) + else + e_0(i) = 0.d0 + endif + enddo + deallocate (s_0, v_0) +end + diff --git a/src/determinants/psi_energy_mono_elec.irp.f b/src/determinants/psi_energy_mono_elec.irp.f new file mode 100644 index 00000000..494865db --- /dev/null +++ b/src/determinants/psi_energy_mono_elec.irp.f @@ -0,0 +1,26 @@ + BEGIN_PROVIDER [ double precision, psi_energy_h_core, (N_states) ] + implicit none + integer :: i + integer :: j,k + double precision :: tmp(mo_tot_num,mo_tot_num),mono_ints(mo_tot_num,mo_tot_num) + BEGIN_DOC +! psi_energy_h_core = +! computed using the one_body_dm_mo_alpha+one_body_dm_mo_beta and mo_mono_elec_integral + END_DOC + psi_energy_h_core = 0.d0 + do i = 1, N_states + do j = 1, mo_tot_num + do k = 1, mo_tot_num + psi_energy_h_core(i) += mo_mono_elec_integral(k,j) * (one_body_dm_mo_alpha(k,j,i) + one_body_dm_mo_beta(k,j,i)) + enddo + enddo + enddo + double precision :: accu + do i = 1, N_states + do j = 1, mo_tot_num + accu += one_body_dm_mo_alpha(j,j,i) + one_body_dm_mo_beta(j,j,i) + enddo + accu = (elec_alpha_num + elec_beta_num ) / accu + psi_energy_h_core(i) = psi_energy_h_core(i) * accu + enddo +END_PROVIDER diff --git a/src/dummy/NEED b/src/dummy/NEED index 9027e5df..5b904917 100644 --- a/src/dummy/NEED +++ b/src/dummy/NEED @@ -8,6 +8,7 @@ davidson davidson_dressed davidson_undressed determinants +dft_utils_one_body dressing electrons ezfio_files diff --git a/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f b/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f index e3e88d3f..8b3c0d89 100644 --- a/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f +++ b/src/integrals_bielec_erf/ao_bi_integrals_erf.irp.f @@ -10,7 +10,7 @@ double precision function ao_bielec_integral_erf(i,j,k,l) double precision :: I_center(3),J_center(3),K_center(3),L_center(3) integer :: num_i,num_j,num_k,num_l,dim1,I_power(3),J_power(3),K_power(3),L_power(3) double precision :: integral - include 'Utils/constants.include.F' + include 'utils/constants.include.F' double precision :: P_new(0:max_dim,3),P_center(3),fact_p,pp double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq integer :: iorder_p(3), iorder_q(3) @@ -114,7 +114,7 @@ double precision function ao_bielec_integral_schwartz_accel_erf(i,j,k,l) double precision :: I_center(3),J_center(3),K_center(3),L_center(3) integer :: num_i,num_j,num_k,num_l,dim1,I_power(3),J_power(3),K_power(3),L_power(3) double precision :: integral - include 'Utils/constants.include.F' + include 'utils/constants.include.F' double precision :: P_new(0:max_dim,3),P_center(3),fact_p,pp double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq integer :: iorder_p(3), iorder_q(3) @@ -283,7 +283,7 @@ subroutine compute_ao_bielec_integrals_erf(j,k,l,sze,buffer_value) ! Compute AO 1/r12 integrals for all i and fixed j,k,l END_DOC - include 'Utils/constants.include.F' + include 'utils/constants.include.F' integer, intent(in) :: j,k,l,sze real(integral_kind), intent(out) :: buffer_value(sze) double precision :: ao_bielec_integral_erf @@ -322,7 +322,7 @@ double precision function general_primitive_integral_erf(dim, & ! Computes the integral where p,q,r,s are Gaussian primitives END_DOC integer,intent(in) :: dim - include 'Utils/constants.include.F' + include 'utils/constants.include.F' double precision, intent(in) :: P_new(0:max_dim,3),P_center(3),fact_p,p,p_inv double precision, intent(in) :: Q_new(0:max_dim,3),Q_center(3),fact_q,q,q_inv integer, intent(in) :: iorder_p(3) @@ -472,7 +472,7 @@ double precision function ERI_erf(alpha,beta,delta,gama,a_x,b_x,c_x,d_x,a_y,b_y, double precision :: p,q,denom,coeff double precision :: I_f integer :: nx,ny,nz - include 'Utils/constants.include.F' + include 'utils/constants.include.F' nx = a_x+b_x+c_x+d_x if(iand(nx,1) == 1) then ERI_erf = 0.d0 @@ -524,7 +524,7 @@ subroutine integrale_new_erf(I_f,a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z implicit none - include 'Utils/constants.include.F' + include 'utils/constants.include.F' double precision :: p,q integer :: a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z integer :: i, n_iter, n_pt, j diff --git a/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f b/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f index 40d0d85c..d7a5de2c 100644 --- a/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f +++ b/src/integrals_bielec_erf/mo_bi_integrals_erf.irp.f @@ -55,7 +55,7 @@ BEGIN_PROVIDER [ logical, mo_bielec_integrals_erf_in_map ] if (write_mo_integrals_erf) then call ezfio_set_work_empty(.False.) call map_save_to_disk(trim(ezfio_filename)//'/work/mo_ints_erf',mo_integrals_erf_map) - call ezfio_set_integrals_erf_disk_access_mo_integrals_erf("Read") + call ezfio_set_integrals_bielec_erf_disk_access_mo_integrals_erf("Read") endif END_PROVIDER diff --git a/src/integrals_bielec_erf/providers_ao_erf.irp.f b/src/integrals_bielec_erf/providers_ao_erf.irp.f index 34c90bb5..2990582e 100644 --- a/src/integrals_bielec_erf/providers_ao_erf.irp.f +++ b/src/integrals_bielec_erf/providers_ao_erf.irp.f @@ -11,7 +11,7 @@ BEGIN_PROVIDER [ logical, ao_bielec_integrals_erf_in_map ] integer :: i,j,k,l double precision :: ao_bielec_integral_erf,cpu_1,cpu_2, wall_1, wall_2 double precision :: integral, wall_0 - include 'Utils/constants.include.F' + include 'utils/constants.include.F' ! For integrals file integer(key_kind),allocatable :: buffer_i(:) @@ -90,7 +90,7 @@ BEGIN_PROVIDER [ logical, ao_bielec_integrals_erf_in_map ] if (write_ao_integrals_erf) then call ezfio_set_work_empty(.False.) call map_save_to_disk(trim(ezfio_filename)//'/work/ao_ints_erf',ao_integrals_erf_map) - call ezfio_set_integrals_erf_disk_access_ao_integrals_erf("Read") + call ezfio_set_integrals_bielec_erf_disk_access_ao_integrals_erf("Read") endif END_PROVIDER diff --git a/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f b/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f index ffc956a1..6271a9e4 100644 --- a/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f +++ b/src/integrals_bielec_erf/routines_save_integrals_erf.irp.f @@ -16,7 +16,7 @@ subroutine save_erf_bi_elec_integrals_ao call ezfio_set_integrals_bielec_disk_access_ao_integrals("Read") end -subroutine save_erf_bi_elec_integrals_mo_into_regular_integrals_mo +subroutine save_erf_bielec_ints_mo_into_ints_mo implicit none integer :: i,j,k,l PROVIDE mo_bielec_integrals_erf_in_map @@ -25,7 +25,7 @@ subroutine save_erf_bi_elec_integrals_mo_into_regular_integrals_mo call ezfio_set_integrals_bielec_disk_access_mo_integrals("Read") end -subroutine save_erf_bi_elec_integrals_ao_into_regular_integrals_ao +subroutine save_erf_bielec_ints_mo_into_ints_ao implicit none integer :: i,j,k,l PROVIDE ao_bielec_integrals_erf_in_map diff --git a/src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f b/src/integrals_bielec_erf/write_ints_erf_to_regular_ints.irp.f similarity index 82% rename from src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f rename to src/integrals_bielec_erf/write_ints_erf_to_regular_ints.irp.f index 488c6372..6569159f 100644 --- a/src/integrals_bielec_erf/write_integrals_erf_to_regular_integrals.irp.f +++ b/src/integrals_bielec_erf/write_ints_erf_to_regular_ints.irp.f @@ -14,8 +14,8 @@ end subroutine routine implicit none - call save_erf_bi_elec_integrals_mo_into_regular_integrals_mo - call save_erf_bi_elec_integrals_ao_into_regular_integrals_ao + call save_erf_bielec_ints_mo_into_ints_ao + call save_erf_bielec_ints_mo_into_ints_mo end diff --git a/src/nuclei/nuclei.irp.f b/src/nuclei/nuclei.irp.f index b2d1f54b..477b7c8e 100644 --- a/src/nuclei/nuclei.irp.f +++ b/src/nuclei/nuclei.irp.f @@ -90,6 +90,7 @@ END_PROVIDER &BEGIN_PROVIDER [ double precision, nucl_dist_vec_y, (nucl_num,nucl_num) ] &BEGIN_PROVIDER [ double precision, nucl_dist_vec_z, (nucl_num,nucl_num) ] &BEGIN_PROVIDER [ double precision, nucl_dist, (nucl_num,nucl_num) ] +&BEGIN_PROVIDER [ double precision, nucl_dist_inv, (nucl_num,nucl_num) ] implicit none BEGIN_DOC ! nucl_dist : Nucleus-nucleus distances @@ -97,6 +98,8 @@ END_PROVIDER ! nucl_dist_2 : Nucleus-nucleus distances squared ! nucl_dist_vec : Nucleus-nucleus distances vectors + ! + ! nucl_dist_inv(I,J) = inversed of the distance between nucleus I and nucleus J END_DOC integer :: ie1, ie2, l @@ -124,6 +127,13 @@ END_PROVIDER ASSERT (nucl_dist(ie1,ie2) > 0.d0) enddo enddo + do ie1 = 1, nucl_num + do ie2 = 1, nucl_num + if(ie1 == ie2)cycle + nucl_dist_inv(ie2,ie1) = 1.d0/nucl_dist(ie2,ie1) + enddo + enddo + END_PROVIDER diff --git a/src/slave/slave_cipsi b/src/slave/slave_cipsi index 510ba2e50bdb0e9548ed66dfef9064d7d7325daf..0cd36783986612f44bb0461bfcdad4cb21d2766a 100755 GIT binary patch literal 17536848 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 z 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�ZgJFxW(l10mCft9$DK2=`O=FVv< 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�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%0A)FaiUe7foYs?NS3YO?D!Fbw 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

    e!Envz)j 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