mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-21 11:03:29 +01:00
corrected the laplacians of aos
This commit is contained in:
parent
c35594edd3
commit
dd5a451679
@ -193,8 +193,8 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
END_DOC
|
END_DOC
|
||||||
double precision, intent(in) :: r(3)
|
double precision, intent(in) :: r(3)
|
||||||
double precision, intent(out) :: aos_array(ao_num)
|
double precision, intent(out) :: aos_array(ao_num)
|
||||||
double precision, intent(out) :: aos_grad_array(ao_num,3)
|
double precision, intent(out) :: aos_grad_array(3,ao_num)
|
||||||
double precision, intent(out) :: aos_lapl_array(ao_num,3)
|
double precision, intent(out) :: aos_lapl_array(3,ao_num)
|
||||||
|
|
||||||
integer :: power_ao(3)
|
integer :: power_ao(3)
|
||||||
integer :: i,j,k,l,m
|
integer :: i,j,k,l,m
|
||||||
@ -215,13 +215,13 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
do j = 1,Nucl_N_Aos(i)
|
do j = 1,Nucl_N_Aos(i)
|
||||||
k = Nucl_Aos_transposed(j,i) ! index of the ao in the ordered format
|
k = Nucl_Aos_transposed(j,i) ! index of the ao in the ordered format
|
||||||
aos_array(k) = 0.d0
|
aos_array(k) = 0.d0
|
||||||
aos_grad_array(k,1) = 0.d0
|
aos_grad_array(1,k) = 0.d0
|
||||||
aos_grad_array(k,2) = 0.d0
|
aos_grad_array(2,k) = 0.d0
|
||||||
aos_grad_array(k,3) = 0.d0
|
aos_grad_array(3,k) = 0.d0
|
||||||
|
|
||||||
aos_lapl_array(k,1) = 0.d0
|
aos_lapl_array(1,k) = 0.d0
|
||||||
aos_lapl_array(k,2) = 0.d0
|
aos_lapl_array(2,k) = 0.d0
|
||||||
aos_lapl_array(k,3) = 0.d0
|
aos_lapl_array(3,k) = 0.d0
|
||||||
|
|
||||||
power_ao(1:3)= ao_power_ordered_transp_per_nucl(1:3,j,i)
|
power_ao(1:3)= ao_power_ordered_transp_per_nucl(1:3,j,i)
|
||||||
dx2 = dx**power_ao(1)
|
dx2 = dx**power_ao(1)
|
||||||
@ -238,7 +238,12 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
else
|
else
|
||||||
dx3 = 0.d0
|
dx3 = 0.d0
|
||||||
endif
|
endif
|
||||||
dx4 = dble((2 * power_ao(1) + 1)) * dx**(power_ao(1))
|
if(power_ao(1) .ge. 1)then
|
||||||
|
dx4 = dble((2 * power_ao(1) + 1)) * dx**(power_ao(1))
|
||||||
|
else
|
||||||
|
dx4 = dble((power_ao(1) + 1)) * dx**(power_ao(1))
|
||||||
|
endif
|
||||||
|
|
||||||
dx5 = dx**(power_ao(1)+2)
|
dx5 = dx**(power_ao(1)+2)
|
||||||
|
|
||||||
if(power_ao(2) .ne. 0)then
|
if(power_ao(2) .ne. 0)then
|
||||||
@ -252,7 +257,13 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
else
|
else
|
||||||
dy3 = 0.d0
|
dy3 = 0.d0
|
||||||
endif
|
endif
|
||||||
dy4 = dble((2 * power_ao(2) + 1)) * dy**(power_ao(2))
|
|
||||||
|
if(power_ao(2) .ge. 1)then
|
||||||
|
dy4 = dble((2 * power_ao(2) + 1)) * dy**(power_ao(2))
|
||||||
|
else
|
||||||
|
dy4 = dble((power_ao(2) + 1)) * dy**(power_ao(2))
|
||||||
|
endif
|
||||||
|
|
||||||
dy5 = dy**(power_ao(2)+2)
|
dy5 = dy**(power_ao(2)+2)
|
||||||
|
|
||||||
|
|
||||||
@ -267,7 +278,13 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
else
|
else
|
||||||
dz3 = 0.d0
|
dz3 = 0.d0
|
||||||
endif
|
endif
|
||||||
dz4 = dble((2 * power_ao(3) + 1)) * dz**(power_ao(3))
|
|
||||||
|
if(power_ao(3) .ge. 1)then
|
||||||
|
dz4 = dble((2 * power_ao(3) + 1)) * dz**(power_ao(3))
|
||||||
|
else
|
||||||
|
dz4 = dble((power_ao(3) + 1)) * dz**(power_ao(3))
|
||||||
|
endif
|
||||||
|
|
||||||
dz5 = dz**(power_ao(3)+2)
|
dz5 = dz**(power_ao(3)+2)
|
||||||
|
|
||||||
|
|
||||||
@ -283,13 +300,13 @@ subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_la
|
|||||||
enddo
|
enddo
|
||||||
aos_array(k) = accu_1 * dx2 * dy2 * dz2
|
aos_array(k) = accu_1 * dx2 * dy2 * dz2
|
||||||
|
|
||||||
aos_grad_array(k,1) = accu_1 * dx1 * dy2 * dz2- 2.d0 * dx2 * dx * dy2 * dz2 * accu_2
|
aos_grad_array(1,k) = accu_1 * dx1 * dy2 * dz2- 2.d0 * dx2 * dx * dy2 * dz2 * accu_2
|
||||||
aos_grad_array(k,2) = accu_1 * dx2 * dy1 * dz2- 2.d0 * dx2 * dy2 * dy * dz2 * accu_2
|
aos_grad_array(2,k) = accu_1 * dx2 * dy1 * dz2- 2.d0 * dx2 * dy2 * dy * dz2 * accu_2
|
||||||
aos_grad_array(k,3) = accu_1 * dx2 * dy2 * dz1- 2.d0 * dx2 * dy2 * dz2 * dz * accu_2
|
aos_grad_array(3,k) = accu_1 * dx2 * dy2 * dz1- 2.d0 * dx2 * dy2 * dz2 * dz * accu_2
|
||||||
|
|
||||||
aos_lapl_array(k,1) = accu_1 * dx3 * dy2 * dz2- 2.d0 * dx4 * dy2 * dz2* accu_2 +4.d0 * dx5 *dy2 * dz2* accu_3
|
aos_lapl_array(1,k) = accu_1 * dx3 * dy2 * dz2- 2.d0 * dx4 * dy2 * dz2* accu_2 +4.d0 * dx5 *dy2 * dz2* accu_3
|
||||||
aos_lapl_array(k,2) = accu_1 * dx2 * dy3 * dz2- 2.d0 * dx2 * dy4 * dz2* accu_2 +4.d0 * dx2 *dy5 * dz2* accu_3
|
aos_lapl_array(2,k) = accu_1 * dx2 * dy3 * dz2- 2.d0 * dx2 * dy4 * dz2* accu_2 +4.d0 * dx2 *dy5 * dz2* accu_3
|
||||||
aos_lapl_array(k,3) = accu_1 * dx2 * dy2 * dz3- 2.d0 * dx2 * dy2 * dz4* accu_2 +4.d0 * dx2 *dy2 * dz5* accu_3
|
aos_lapl_array(3,k) = accu_1 * dx2 * dy2 * dz3- 2.d0 * dx2 * dy2 * dz4* accu_2 +4.d0 * dx2 *dy2 * dz5* accu_3
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
Loading…
Reference in New Issue
Block a user