mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-22 20:35:19 +01:00
fixed the factor 2 in lebedev
This commit is contained in:
parent
72ed06bf19
commit
b0a3c73b89
@ -1,4 +0,0 @@
|
||||
[energy]
|
||||
type: double precision
|
||||
doc: Calculated energy
|
||||
interface: ezfio
|
@ -5,7 +5,7 @@
|
||||
|
||||
BEGIN_PROVIDER [integer, n_points_radial_grid]
|
||||
implicit none
|
||||
n_points_radial_grid = 10
|
||||
n_points_radial_grid = 100000
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ END_PROVIDER
|
||||
accu = 0.d0
|
||||
do i = 1, n_points_integration_angular_lebedev
|
||||
accu += weights_angular_integration_lebedev(i)
|
||||
weights_angular_points(i) = weights_angular_integration_lebedev(i) * 2.d0 * pi
|
||||
weights_angular_points(i) = weights_angular_integration_lebedev(i) * 4.d0 * pi
|
||||
angular_quadrature_points(i,1) = dcos ( degre_rad * theta_angular_integration_lebedev(i)) &
|
||||
* dsin ( degre_rad * phi_angular_integration_lebedev(i))
|
||||
angular_quadrature_points(i,2) = dsin ( degre_rad * theta_angular_integration_lebedev(i)) &
|
||||
@ -115,7 +115,6 @@ BEGIN_PROVIDER [double precision, weight_functions_at_grid_points, (n_points_int
|
||||
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
|
||||
@ -131,7 +130,7 @@ END_PROVIDER
|
||||
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 k = 1, n_points_radial_grid
|
||||
do l = 1, n_points_integration_angular_lebedev
|
||||
one_body_dm_mo_alpha_at_grid_points(l,k,j) = 0.d0
|
||||
one_body_dm_mo_beta_at_grid_points(l,k,j) = 0.d0
|
||||
@ -139,18 +138,9 @@ END_PROVIDER
|
||||
r(2) = grid_points_per_atom(2,l,k,j)
|
||||
r(3) = grid_points_per_atom(3,l,k,j)
|
||||
|
||||
! call give_all_aos_at_r(r,aos_array)
|
||||
! do i = 1, ao_num
|
||||
! do m = 1, ao_num
|
||||
! contrib = aos_array(i) * aos_array(m)
|
||||
! one_body_dm_mo_alpha_at_grid_points(l,k,j) += one_body_dm_ao_alpha(i,m) * contrib
|
||||
! one_body_dm_mo_beta_at_grid_points(l,k,j) += one_body_dm_ao_beta(i,m) * contrib
|
||||
! enddo
|
||||
! enddo
|
||||
|
||||
call give_all_mos_at_r(r,mos_array)
|
||||
do i = 1, mo_tot_num
|
||||
do m = 1, mo_tot_num
|
||||
do m = 1, mo_tot_num
|
||||
do i = 1, mo_tot_num
|
||||
contrib = mos_array(i) * mos_array(m)
|
||||
one_body_dm_mo_alpha_at_grid_points(l,k,j) += one_body_dm_mo_alpha_average(i,m) * contrib
|
||||
one_body_dm_mo_beta_at_grid_points(l,k,j) += one_body_dm_mo_beta_average(i,m) * contrib
|
||||
|
@ -4,18 +4,12 @@ double precision function step_function_becke(x)
|
||||
double precision :: f_function_becke
|
||||
integer :: i,n_max_becke
|
||||
|
||||
!if(x.lt.-1.d0)then
|
||||
! step_function_becke = 0.d0
|
||||
!else if (x .gt.1)then
|
||||
! step_function_becke = 0.d0
|
||||
!else
|
||||
step_function_becke = f_function_becke(x)
|
||||
!!n_max_becke = 1
|
||||
do i = 1, 4
|
||||
do i = 1, 3
|
||||
step_function_becke = f_function_becke(step_function_becke)
|
||||
enddo
|
||||
step_function_becke = 0.5d0*(1.d0 - step_function_becke)
|
||||
!endif
|
||||
! step_function_becke = (1.d0 - step_function_becke)
|
||||
end
|
||||
|
||||
double precision function f_function_becke(x)
|
||||
|
@ -27,7 +27,6 @@
|
||||
!
|
||||
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
|
||||
|
@ -20,5 +20,17 @@ subroutine routine
|
||||
print*,'accu(2) = ',accu(2)
|
||||
print*,'Nalpha = ',elec_beta_num
|
||||
|
||||
accu = 0.d0
|
||||
do i = 1, mo_tot_num
|
||||
accu(1) += one_body_dm_mo_alpha_average(i,i)
|
||||
accu(2) += one_body_dm_mo_beta_average(i,i)
|
||||
enddo
|
||||
|
||||
|
||||
print*,' '
|
||||
print*,' '
|
||||
print*,'accu(1) = ',accu(1)
|
||||
print*,'accu(2) = ',accu(2)
|
||||
|
||||
|
||||
end
|
||||
|
@ -1,42 +0,0 @@
|
||||
! DO NOT MODIFY BY HAND
|
||||
! Created by $QP_ROOT/scripts/ezfio_interface/ei_handler.py
|
||||
! from file /home/giner/qp_fork/quantum_package/src/MRPT_Utils/EZFIO.cfg
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ logical, do_third_order_1h1p ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! If true, compute the third order contribution for the 1h1p
|
||||
END_DOC
|
||||
|
||||
logical :: has
|
||||
PROVIDE ezfio_filename
|
||||
|
||||
call ezfio_has_mrpt_utils_do_third_order_1h1p(has)
|
||||
if (has) then
|
||||
call ezfio_get_mrpt_utils_do_third_order_1h1p(do_third_order_1h1p)
|
||||
else
|
||||
print *, 'mrpt_utils/do_third_order_1h1p not found in EZFIO file'
|
||||
stop 1
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ logical, save_heff_eigenvectors ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! If true, save the eigenvectors of the dressed matrix at the end of the MRPT calculation
|
||||
END_DOC
|
||||
|
||||
logical :: has
|
||||
PROVIDE ezfio_filename
|
||||
|
||||
call ezfio_has_mrpt_utils_save_heff_eigenvectors(has)
|
||||
if (has) then
|
||||
call ezfio_get_mrpt_utils_save_heff_eigenvectors(save_heff_eigenvectors)
|
||||
else
|
||||
print *, 'mrpt_utils/save_heff_eigenvectors not found in EZFIO file'
|
||||
stop 1
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
@ -272,21 +272,13 @@ 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)
|
||||
call give_specific_mos_at_r(r,mos_array, mo_coef)
|
||||
end
|
||||
|
||||
subroutine give_specific_mos_at_r(r,mos_array, mo_coef_specific)
|
||||
implicit none
|
||||
double precision, intent(in) :: r(3)
|
||||
double precision, intent(in) :: mo_coef_specific(ao_num_align, mo_tot_num)
|
||||
double precision, intent(out) :: mos_array(mo_tot_num)
|
||||
double precision :: aos_array(ao_num),accu
|
||||
integer :: i,j
|
||||
call give_all_aos_at_r(r,aos_array)
|
||||
do i = 1, mo_tot_num
|
||||
accu = 0.d0
|
||||
do j = 1, ao_num
|
||||
accu += mo_coef_specific(j,i) * aos_array(j)
|
||||
accu += mo_coef(j,i) * aos_array(j)
|
||||
enddo
|
||||
mos_array(i) = accu
|
||||
enddo
|
||||
|
@ -4,7 +4,7 @@ BEGIN_PROVIDER [integer, degree_max_integration_lebedev]
|
||||
! needed for the angular integration according to LEBEDEV formulae
|
||||
END_DOC
|
||||
implicit none
|
||||
degree_max_integration_lebedev= 15
|
||||
degree_max_integration_lebedev= 3
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user