mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2024-11-07 06:33:38 +01:00
Removed padding in sparse_full_mv
This commit is contained in:
parent
033025c0ea
commit
052b2db389
@ -48,11 +48,11 @@ subroutine pow_l(r,a,x1,x2,x3)
|
|||||||
end function
|
end function
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ real, ao_axis_block, ((-2*simd_sp+1):ao_block_num_8) ]
|
BEGIN_PROVIDER [ real, ao_axis_block, (ao_block_num_8) ]
|
||||||
&BEGIN_PROVIDER [ real, ao_axis_grad_block_x, ((-2*simd_sp+1):ao_block_num_8) ]
|
&BEGIN_PROVIDER [ real, ao_axis_grad_block_x, (ao_block_num_8) ]
|
||||||
&BEGIN_PROVIDER [ real, ao_axis_grad_block_y, ((-2*simd_sp+1):ao_block_num_8) ]
|
&BEGIN_PROVIDER [ real, ao_axis_grad_block_y, (ao_block_num_8) ]
|
||||||
&BEGIN_PROVIDER [ real, ao_axis_grad_block_z, ((-2*simd_sp+1):ao_block_num_8) ]
|
&BEGIN_PROVIDER [ real, ao_axis_grad_block_z, (ao_block_num_8) ]
|
||||||
&BEGIN_PROVIDER [ real, ao_axis_lapl_block, ((-2*simd_sp+1):ao_block_num_8) ]
|
&BEGIN_PROVIDER [ real, ao_axis_lapl_block, (ao_block_num_8) ]
|
||||||
implicit none
|
implicit none
|
||||||
include '../types.F'
|
include '../types.F'
|
||||||
|
|
||||||
@ -111,13 +111,13 @@ end function
|
|||||||
ao_axis_block(idx) = p023 * p10
|
ao_axis_block(idx) = p023 * p10
|
||||||
p023 = real_of_int(pow1) * p023
|
p023 = real_of_int(pow1) * p023
|
||||||
|
|
||||||
|
ao_axis_grad_block_x(idx) = p023 * p11
|
||||||
|
ao_axis_grad_block_y(idx) = p013 * p21
|
||||||
|
ao_axis_grad_block_z(idx) = p012 * p31
|
||||||
ao_axis_lapl_block(idx) = real_of_int(pow1-1) * p023 * p12 &
|
ao_axis_lapl_block(idx) = real_of_int(pow1-1) * p023 * p12 &
|
||||||
+ real_of_int(pow2-1) * p013 * p22 &
|
+ real_of_int(pow2-1) * p013 * p22 &
|
||||||
+ real_of_int(pow3-1) * p012 * p32
|
+ real_of_int(pow3-1) * p012 * p32
|
||||||
|
|
||||||
ao_axis_grad_block_x(idx) = p023 * p11
|
|
||||||
ao_axis_grad_block_y(idx) = p013 * p21
|
|
||||||
ao_axis_grad_block_z(idx) = p012 * p31
|
|
||||||
|
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
|
@ -148,8 +148,8 @@ END_PROVIDER
|
|||||||
|
|
||||||
BEGIN_PROVIDER [ real, elec_dist, (elec_num_8,elec_num) ]
|
BEGIN_PROVIDER [ real, elec_dist, (elec_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, elec_dist_vec_x, (elec_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, elec_dist_vec_x, (elec_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, elec_dist_vec_y, ((-simd_sp+1):elec_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, elec_dist_vec_y, (elec_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, elec_dist_vec_z, ((-2*simd_sp+1):elec_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, elec_dist_vec_z, (elec_num_8,elec_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Electron-electron distances
|
! Electron-electron distances
|
||||||
|
58
src/mo.irp.f
58
src/mo.irp.f
@ -137,11 +137,11 @@ BEGIN_PROVIDER [ real, mo_coef_transp_present, (num_present_mos_8,ao_num_8) ]
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ real, mo_value_transp, ((-simd_sp+1):mo_num_8,elec_num) ]
|
BEGIN_PROVIDER [ real, mo_value_transp, (mo_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, mo_grad_transp_x, ((-2*simd_sp+1):mo_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, mo_grad_transp_x, (mo_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, mo_grad_transp_y, ((-3*simd_sp+1):mo_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, mo_grad_transp_y, (mo_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, mo_grad_transp_z, ((-4*simd_sp+1):mo_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, mo_grad_transp_z, (mo_num_8,elec_num) ]
|
||||||
&BEGIN_PROVIDER [ real, mo_lapl_transp, ((-5*simd_sp+1):mo_num_8,elec_num) ]
|
&BEGIN_PROVIDER [ real, mo_lapl_transp, (mo_num_8,elec_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
@ -295,7 +295,7 @@ BEGIN_PROVIDER [ real, mo_value, (elec_num_8,mo_num) ]
|
|||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
mo_value = 0.
|
mo_value = 0.
|
||||||
endif
|
endif
|
||||||
call transpose(mo_value_transp(1,1),mo_num_8+simd_sp,mo_value,elec_num_8,mo_num,elec_num)
|
call transpose(mo_value_transp(1,1),mo_num_8,mo_value,elec_num_8,mo_num,elec_num)
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
@ -323,12 +323,32 @@ END_PROVIDER
|
|||||||
PROVIDE primitives_reduced
|
PROVIDE primitives_reduced
|
||||||
endif
|
endif
|
||||||
! Transpose x last for cache efficiency
|
! Transpose x last for cache efficiency
|
||||||
call transpose_to_dp(mo_grad_transp_y(1,1),mo_num_8+3*simd_sp,mo_grad_y(1,1),elec_num_8,mo_num,elec_num)
|
call transpose_to_dp(mo_grad_transp_y(1,1),mo_num_8,mo_grad_y(1,1),elec_num_8,mo_num,elec_num)
|
||||||
call transpose_to_dp(mo_grad_transp_z(1,1),mo_num_8+4*simd_sp,mo_grad_z(1,1),elec_num_8,mo_num,elec_num)
|
call transpose_to_dp(mo_grad_transp_z(1,1),mo_num_8,mo_grad_z(1,1),elec_num_8,mo_num,elec_num)
|
||||||
call transpose_to_dp(mo_grad_transp_x(1,1),mo_num_8+2*simd_sp,mo_grad_x(1,1),elec_num_8,mo_num,elec_num)
|
call transpose_to_dp(mo_grad_transp_x(1,1),mo_num_8,mo_grad_x(1,1),elec_num_8,mo_num,elec_num)
|
||||||
|
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [ double precision, mo_lapl, (elec_num_8,mo_num) ]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Laplacians of the molecular orbitals
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
integer :: i,j
|
||||||
|
integer, save :: ifirst = 0
|
||||||
|
if (ifirst == 0) then
|
||||||
|
ifirst = 1
|
||||||
|
PROVIDE primitives_reduced
|
||||||
|
!DIR$ VECTOR ALIGNED
|
||||||
|
mo_lapl = 0.d0
|
||||||
|
endif
|
||||||
|
call transpose_to_dp(mo_lapl_transp(1,1),mo_num_8,mo_lapl,elec_num_8,mo_num,elec_num)
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, mo_grad_lapl, (4,elec_num,mo_num) ]
|
BEGIN_PROVIDER [ double precision, mo_grad_lapl, (4,elec_num,mo_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
@ -363,24 +383,6 @@ BEGIN_PROVIDER [ double precision, mo_grad_lapl_transp, (4,mo_num,elec_num) ]
|
|||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, mo_lapl, (elec_num_8,mo_num) ]
|
|
||||||
implicit none
|
|
||||||
BEGIN_DOC
|
|
||||||
! Laplacians of the molecular orbitals
|
|
||||||
END_DOC
|
|
||||||
|
|
||||||
integer :: i,j
|
|
||||||
integer, save :: ifirst = 0
|
|
||||||
if (ifirst == 0) then
|
|
||||||
ifirst = 1
|
|
||||||
PROVIDE primitives_reduced
|
|
||||||
!DIR$ VECTOR ALIGNED
|
|
||||||
mo_lapl = 0.d0
|
|
||||||
endif
|
|
||||||
call transpose_to_dp(mo_lapl_transp(1,1),mo_num_8+5*simd_sp,mo_lapl,elec_num_8,mo_num,elec_num)
|
|
||||||
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ real, prepare_walkers_t ]
|
BEGIN_PROVIDER [ real, prepare_walkers_t ]
|
||||||
implicit none
|
implicit none
|
||||||
@ -783,7 +785,7 @@ subroutine sparse_full_mv(A,LDA, &
|
|||||||
d14 = B4(kao)
|
d14 = B4(kao)
|
||||||
d15 = B5(kao)
|
d15 = B5(kao)
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
do k=0,LDA-1,simd_sp
|
do k=0,LDA-1,$IRP_ALIGN/4
|
||||||
!DIR$ VECTOR ALIGNED
|
!DIR$ VECTOR ALIGNED
|
||||||
do j=1,$IRP_ALIGN/4
|
do j=1,$IRP_ALIGN/4
|
||||||
C1(j+k) = C1(j+k) + A(j+k,k_vec(1))*d11
|
C1(j+k) = C1(j+k) + A(j+k,k_vec(1))*d11
|
||||||
|
Loading…
Reference in New Issue
Block a user