mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2025-04-30 04:15:00 +02:00
Reduced memory
This commit is contained in:
parent
5042df1b11
commit
be1da3c402
@ -4235,10 +4235,9 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
real(c_double) , intent(in) :: een_rescaled_single_e_gl(4,elec_num, 0:cord_num, walk_num)
|
||||
real(c_double) , intent(out) :: delta_p_gl(elec_num,4,nucl_num,0:cord_num, 0:cord_num-1, walk_num)
|
||||
|
||||
double precision :: delta_e_gl(4,elec_num, 0:cord_num, walk_num)
|
||||
|
||||
double precision :: delta_e_gl_2(elec_num, 0:cord_num, walk_num)
|
||||
double precision :: een_rescaled_e_gl_2(elec_num, elec_num, 0:cord_num, walk_num)
|
||||
double precision :: delta_e_gl(4,elec_num)
|
||||
double precision :: delta_e_gl_2(elec_num)
|
||||
double precision :: een_rescaled_e_gl_2(elec_num)
|
||||
|
||||
double precision :: een_rescaled_delta_n(nucl_num, 0:cord_num)
|
||||
double precision :: delta_c(nucl_num,0:cord_num)
|
||||
@ -4263,10 +4262,6 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
if (cord_num == 0) return
|
||||
|
||||
|
||||
delta_e_gl(:,:,:,:) = een_rescaled_single_e_gl(:,:,:,:) - een_rescaled_e_gl(num, :, :, :, :)
|
||||
|
||||
delta_e_gl(:, num, :, :) = 0.0d0
|
||||
|
||||
delta_c = 0.0d0
|
||||
delta_c2 = 0.0d0
|
||||
delta_p_gl = 0.0d0
|
||||
@ -4280,34 +4275,37 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
een_rescaled_delta_n(:,:) = een_rescaled_single_n(:,:,nw) - een_rescaled_n(num, :, :, nw)
|
||||
|
||||
do m=0, cord_num-1
|
||||
delta_e_gl(:,:) = een_rescaled_single_e_gl(:,:,m,nw) - een_rescaled_e_gl(num, :, :, m, nw)
|
||||
delta_e_gl(:, num) = 0.0d0
|
||||
|
||||
do a = 1, nucl_num
|
||||
do l=0, cord_num
|
||||
do j = 1, elec_num
|
||||
do k = 1, 3
|
||||
delta_p_gl(num,k,a,l,m,nw) = delta_p_gl(num,k,a,l,m,nw) + &
|
||||
delta_e_gl(k,j,m,nw) * een_rescaled_n(j,a,l,nw)
|
||||
delta_e_gl(k,j) * een_rescaled_n(j,a,l,nw)
|
||||
delta_p_gl(j,k,a,l,m,nw) = delta_p_gl(j,k,a,l,m,nw) - &
|
||||
delta_e_gl(k,j,m,nw) * een_rescaled_n(num,a,l,nw)
|
||||
delta_e_gl(k,j) * een_rescaled_n(num,a,l,nw)
|
||||
|
||||
|
||||
delta_p_gl(j,k,a,l,m,nw) = delta_p_gl(j,k,a,l,m,nw) + &
|
||||
een_rescaled_e_gl(j,k,num,m,nw) * een_rescaled_delta_n(a,l)
|
||||
|
||||
delta_p_gl(j,k,a,l,m,nw) = delta_p_gl(j,k,a,l,m,nw) - &
|
||||
delta_e_gl(k,j,m,nw) * een_rescaled_delta_n(a,l)
|
||||
delta_e_gl(k,j) * een_rescaled_delta_n(a,l)
|
||||
|
||||
|
||||
end do
|
||||
delta_p_gl(num,4,a,l,m,nw) = delta_p_gl(num,4,a,l,m,nw) + &
|
||||
delta_e_gl(4,j,m,nw) * een_rescaled_n(j,a,l,nw)
|
||||
delta_e_gl(4,j) * een_rescaled_n(j,a,l,nw)
|
||||
delta_p_gl(j,4,a,l,m,nw) = delta_p_gl(j,4,a,l,m,nw) + &
|
||||
delta_e_gl(4,j,m,nw) * een_rescaled_n(num,a,l,nw)
|
||||
delta_e_gl(4,j) * een_rescaled_n(num,a,l,nw)
|
||||
|
||||
delta_p_gl(j,4,a,l,m,nw) = delta_p_gl(j,4,a,l,m,nw) + &
|
||||
een_rescaled_e_gl(num,4,j,m,nw) * een_rescaled_delta_n(a,l)
|
||||
|
||||
delta_p_gl(j,4,a,l,m,nw) = delta_p_gl(j,4,a,l,m,nw) + &
|
||||
delta_e_gl(4,j,m,nw) * een_rescaled_delta_n(a,l)
|
||||
delta_e_gl(4,j) * een_rescaled_delta_n(a,l)
|
||||
|
||||
end do
|
||||
end do
|
||||
@ -4321,20 +4319,22 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
|
||||
do nw=1, walk_num
|
||||
een_rescaled_delta_n(:,:) = een_rescaled_single_n(:,:,nw) - een_rescaled_n(num, :, :, nw)
|
||||
|
||||
do m=0, cord_num-1
|
||||
delta_e_gl(:,:) = een_rescaled_single_e_gl(:,:,m,nw) - een_rescaled_e_gl(num, :, :, m, nw)
|
||||
delta_e_gl(:, num) = 0.0d0
|
||||
|
||||
do k = 1, 3
|
||||
delta_e_gl_2(:,:,:) = delta_e_gl(k, :,:,:)
|
||||
een_rescaled_e_gl_2(:,:,:,:) = een_rescaled_e_gl(:,k, :,:,:)
|
||||
delta_e_gl_2(:) = delta_e_gl(k, :)
|
||||
|
||||
info = qmckl_dgemm(context, 'T', 'N', 1_8, nucl_num * (cord_num+1), elec_num, 1.0d0, &
|
||||
delta_e_gl_2(1,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_n(1,1,0,nw),elec_num, &
|
||||
0.0d0, &
|
||||
delta_c,1_8)
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'N', elec_num, nucl_num * (cord_num+1), 1_8, -1.0d0, &
|
||||
delta_e_gl_2(1,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_n(num,1,0,nw),elec_num, &
|
||||
0.0d0, &
|
||||
delta_c2(1,1,0),elec_num)
|
||||
@ -4344,7 +4344,7 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'T', elec_num, nucl_num * (cord_num+1), 1_8, 1.0d0, &
|
||||
een_rescaled_e_gl_2(:,num,m,nw),elec_num, &
|
||||
een_rescaled_e_gl(1,k, num,m,nw),elec_num, &
|
||||
een_rescaled_delta_n,nucl_num* (cord_num+1), &
|
||||
0.0d0, &
|
||||
delta_c2,elec_num)
|
||||
@ -4354,7 +4354,7 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
delta_p_gl(:,k,:,:,m,nw) = delta_p_gl(:,k,:,:,m,nw) + delta_c2(:,:,:)
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'T', elec_num, nucl_num * (cord_num+1), 1_8, -1.0d0, &
|
||||
delta_e_gl_2(:,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_delta_n,nucl_num* (cord_num+1), &
|
||||
0.0d0, &
|
||||
delta_c2(:,:,:),elec_num)
|
||||
@ -4364,17 +4364,16 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
|
||||
end do
|
||||
k = 4
|
||||
delta_e_gl_2(:,:,:) = delta_e_gl(k, :,:,:)
|
||||
een_rescaled_e_gl_2(:,:,:,:) = een_rescaled_e_gl(:,k, :,:,:)
|
||||
delta_e_gl_2(:) = delta_e_gl(k, :)
|
||||
|
||||
info = qmckl_dgemm(context, 'T', 'N', 1_8, nucl_num * (cord_num+1), elec_num, 1.0d0, &
|
||||
delta_e_gl_2(1,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_n(1,1,0,nw),elec_num, &
|
||||
0.0d0, &
|
||||
delta_c,1_8)
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'N', elec_num, nucl_num * (cord_num+1), 1_8, 1.0d0, &
|
||||
delta_e_gl_2(1,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_n(num,1,0,nw),elec_num, &
|
||||
0.0d0, &
|
||||
delta_c2,elec_num)
|
||||
@ -4384,19 +4383,19 @@ integer function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
||||
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'T', elec_num, nucl_num * (cord_num+1), 1_8, 1.0d0, &
|
||||
een_rescaled_e_gl_2(:,num,m,nw),elec_num, &
|
||||
een_rescaled_e_gl(:,k, num,m,nw),elec_num, &
|
||||
een_rescaled_delta_n,nucl_num* (cord_num+1), &
|
||||
0.0d0, &
|
||||
delta_c2(:,:,:),elec_num)
|
||||
delta_c2,elec_num)
|
||||
|
||||
|
||||
delta_p_gl(:,k,:,:,m,nw) = delta_p_gl(:,k,:,:,m,nw) + delta_c2(:,:,:)
|
||||
|
||||
info = qmckl_dgemm(context, 'N', 'T', elec_num, nucl_num * (cord_num+1), 1_8, 1.0d0, &
|
||||
delta_e_gl_2(:,m,nw),elec_num, &
|
||||
delta_e_gl_2,elec_num, &
|
||||
een_rescaled_delta_n,nucl_num* (cord_num+1), &
|
||||
0.0d0, &
|
||||
delta_c2(:,:,:),elec_num)
|
||||
delta_c2,elec_num)
|
||||
|
||||
delta_p_gl(:,k,:,:,m,nw) = delta_p_gl(:,k,:,:,m,nw) + delta_c2(:,:,:)
|
||||
end do
|
||||
|
Loading…
x
Reference in New Issue
Block a user