Skip to content

Commit e2ac556

Browse files
committed
Merge branch 'dev-stable' of github.com:QuantumPackage/qp2 into dev-stable
2 parents 2011445 + dec22b7 commit e2ac556

13 files changed

Lines changed: 68 additions & 16 deletions

File tree

external/ezfio

Submodule ezfio updated from c5963c2 to d02132e

plugins/local/basis_correction/print_routine.irp.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ subroutine print_basis_correction
7676
! write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD SU-LDA-OT , state ',istate,' = ',ecmd_lda_on_top_su_mu_of_r(istate)
7777
write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD SU-PBE-OT , state ',istate,' = ',ecmd_pbe_on_top_su_mu_of_r(istate)
7878
enddo
79-
if (mu_of_r_potential == "proj_cas") then
79+
if ( (mu_of_r_potential == "proj_cas").or. &
80+
(mu_of_r_potential == "cas_full") ) then
8081
print*,''
8182
print*,'Work in progress'
8283
do istate = 1, N_states

plugins/local/basis_correction/sr_correction_on_top.irp.f

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ double precision function g0_gori_mu(rs, rho_a, rho_b,mu)
152152
do ipoint = 1, n_points_final_grid
153153
weight = final_weight_at_r_vector(ipoint)
154154

155-
mu = mu_of_r_projector_ao_prod(ipoint)
155+
! mu = mu_of_r_projector_ao_prod(ipoint)
156+
mu = mu_of_r_prov(ipoint,1)
156157
epsilon = 1.d0 / (4.d0 * mu*mu)
157158

158159
f2_term = a3 * (4.d0*epsilon)**(1.5d0) / (1.d0 + four_over_sq_pi*dsqrt(epsilon))

src/ao_basis_product/basis_prod.irp.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ end function basis_prod_overlap_func
146146
double precision :: local_cutoff
147147
integer :: i, j, k, mm
148148

149-
! local_cutoff = 1.d-4
150149
local_cutoff = 1.d-10
150+
! local_cutoff = -1.d-15
151151
mm=basis_prod_num
152152
do i=1,basis_prod_num
153153
if ( D(i) < local_cutoff) then

src/davidson/u0_h_u0.irp.f

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,9 @@ subroutine H_u_0_nstates_openmp_work_$N_int(v_t,u_t,N_st,sze,istart,iend,ishift,
182182
compute_singles=.True.
183183

184184
if (.not.compute_singles) then
185-
provide singles_alpha_csc
186-
provide singles_beta_csc
185+
provide singles_alpha_csc
186+
provide singles_beta_csc
187+
provide singles_beta_csc_idx
187188
endif
188189

189190

src/davidson/u0_hs2_u0.irp.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ subroutine H_S2_u_0_nstates_openmp_work_$N_int(v_t,s_t,u_t,N_st,sze,istart,iend,
231231
if (.not.compute_singles) then
232232
provide singles_alpha_csc
233233
provide singles_beta_csc
234+
provide singles_beta_csc_idx
234235
endif
235236

236237

src/determinants/density_matrix.irp.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
!$OMP N_det_alpha_unique,N_det_beta_unique,irp_here)
118118
allocate(tmp_a(mo_num,mo_num,N_states), tmp_b(mo_num,mo_num,N_states) )
119119
tmp_a = 0.d0
120-
!$OMP DO SCHEDULE(guided)
120+
!$OMP DO SCHEDULE(dynamic)
121121
do k_a=1,N_det
122122
krow = psi_bilinear_matrix_rows(k_a)
123123
ASSERT (krow <= N_det_alpha_unique)
@@ -173,7 +173,7 @@
173173
deallocate(tmp_a)
174174

175175
tmp_b = 0.d0
176-
!$OMP DO SCHEDULE(guided)
176+
!$OMP DO SCHEDULE(dynamic)
177177
do k_b=1,N_det
178178
krow = psi_bilinear_matrix_transp_rows(k_b)
179179
ASSERT (krow <= N_det_alpha_unique)

src/dft_utils_in_r/ao_in_r.irp.f

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010
implicit none
1111
integer :: i
1212

13+
! For provide outside of openMP section
14+
call give_all_aos_at_r(final_grid_points(1,1), aos_in_r_array(1,1))
15+
1316
!$OMP PARALLEL DO &
1417
!$OMP DEFAULT (NONE) &
1518
!$OMP PRIVATE (i) &
1619
!$OMP SHARED(aos_in_r_array,n_points_final_grid,final_grid_points)
17-
do i = 1, n_points_final_grid
20+
do i = 2, n_points_final_grid
1821
call give_all_aos_at_r(final_grid_points(1,i), aos_in_r_array(1,i))
1922
enddo
2023
!$OMP END PARALLEL DO
@@ -58,14 +61,24 @@
5861
double precision :: r(3)
5962
double precision, allocatable :: aos_grad_array(:,:), aos_array(:)
6063

64+
! For provide outside of openMP section
65+
allocate(aos_grad_array(3,ao_num), aos_array(ao_num))
66+
call give_all_aos_and_grad_at_r(final_grid_points(1,1),aos_array,aos_grad_array)
67+
do m = 1, 3
68+
do j = 1, ao_num
69+
aos_grad_in_r_array(j,1,m) = aos_grad_array(m,j)
70+
enddo
71+
enddo
72+
deallocate(aos_grad_array, aos_array)
73+
6174
!$OMP PARALLEL &
6275
!$OMP DEFAULT (NONE) &
6376
!$OMP PRIVATE (i,j,m,r,aos_array,aos_grad_array) &
6477
!$OMP SHARED(aos_grad_in_r_array,n_points_final_grid,ao_num,final_grid_points)
6578
allocate(aos_grad_array(3,ao_num), aos_array(ao_num))
6679

6780
!$OMP DO
68-
do i = 1, n_points_final_grid
81+
do i = 2, n_points_final_grid
6982
call give_all_aos_and_grad_at_r(final_grid_points(1,i),aos_array,aos_grad_array)
7083
do m = 1, 3
7184
do j = 1, ao_num
@@ -123,13 +136,23 @@
123136
integer :: i,j,m
124137
double precision, allocatable :: aos_lapl_array(:,:), aos_grad_array(:,:), aos_array(:)
125138

139+
! For provide outside of openMP section
140+
allocate( aos_array(ao_num), aos_grad_array(3,ao_num), aos_lapl_array(3,ao_num))
141+
call give_all_aos_and_grad_and_lapl_at_r(final_grid_points(1,1),aos_array,aos_grad_array,aos_lapl_array)
142+
do j = 1, ao_num
143+
do m = 1, 3
144+
aos_lapl_in_r_array(m,j,1) = aos_lapl_array(m,j)
145+
enddo
146+
enddo
147+
deallocate( aos_array, aos_grad_array, aos_lapl_array)
148+
126149
!$OMP PARALLEL &
127150
!$OMP DEFAULT (NONE) &
128151
!$OMP PRIVATE (i,aos_array,aos_grad_array,aos_lapl_array,j,m) &
129152
!$OMP SHARED(aos_lapl_in_r_array,n_points_final_grid,ao_num,final_grid_points)
130153
allocate( aos_array(ao_num), aos_grad_array(3,ao_num), aos_lapl_array(3,ao_num))
131154
!$OMP DO
132-
do i = 1, n_points_final_grid
155+
do i = 2, n_points_final_grid
133156
call give_all_aos_and_grad_and_lapl_at_r(final_grid_points(1,i),aos_array,aos_grad_array,aos_lapl_array)
134157
do j = 1, ao_num
135158
do m = 1, 3
@@ -185,10 +208,13 @@
185208
! aos_in_r_array_extra(i,j) = value of the ith ao on the jth grid point of the EXTRA grid
186209
END_DOC
187210
integer :: i
211+
! For provide outside of OpenMP
212+
call give_all_aos_at_r(final_grid_points_extra(1,1),aos_in_r_array_extra(1,1))
213+
188214
!$OMP PARALLEL DO &
189215
!$OMP DEFAULT (NONE) PRIVATE (i) &
190216
!$OMP SHARED(aos_in_r_array_extra,n_points_extra_final_grid,final_grid_points_extra)
191-
do i = 1, n_points_extra_final_grid
217+
do i = 2, n_points_extra_final_grid
192218
call give_all_aos_at_r(final_grid_points_extra(1,i),aos_in_r_array_extra(1,i))
193219
enddo
194220
!$OMP END PARALLEL DO
@@ -224,14 +250,23 @@
224250
integer :: i, j, m
225251
double precision, allocatable :: aos_array(:), aos_grad_array(:,:)
226252

253+
! For provide outside of OpenMP
254+
allocate(aos_array(ao_num), aos_grad_array(3,ao_num))
255+
call give_all_aos_and_grad_at_r(final_grid_points_extra(1,1), aos_array, aos_grad_array)
256+
do m = 1, 3
257+
do j = 1, ao_num
258+
aos_grad_in_r_array_extra(j,1,m) = aos_grad_array(m,j)
259+
enddo
260+
enddo
261+
deallocate(aos_array,aos_grad_array)
227262

228263
!$OMP PARALLEL &
229264
!$OMP DEFAULT (NONE) &
230265
!$OMP PRIVATE (i,j,m,aos_array,aos_grad_array) &
231266
!$OMP SHARED(aos_grad_in_r_array_extra,n_points_extra_final_grid,ao_num,final_grid_points_extra)
232267
allocate(aos_array(ao_num), aos_grad_array(3,ao_num))
233268
!$OMP DO
234-
do i = 1, n_points_extra_final_grid
269+
do i = 2, n_points_extra_final_grid
235270
call give_all_aos_and_grad_at_r(final_grid_points_extra(1,i), aos_array, aos_grad_array)
236271
do m = 1, 3
237272
do j = 1, ao_num

src/dft_utils_in_r/dm_in_r.irp.f

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,16 @@
2727
double precision :: r(3)
2828
double precision, allocatable :: aos_array(:),grad_aos_array(:,:)
2929
double precision, allocatable :: dm_a(:),dm_b(:), dm_a_grad(:,:), dm_b_grad(:,:)
30+
3031
allocate(dm_a(N_states),dm_b(N_states), dm_a_grad(3,N_states), dm_b_grad(3,N_states))
3132
allocate(aos_array(ao_num),grad_aos_array(3,ao_num))
33+
34+
! For provide outside of OpenMP
35+
r(1) = final_grid_points(1,1)
36+
r(2) = final_grid_points(2,1)
37+
r(3) = final_grid_points(3,1)
38+
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)
39+
3240
!$OMP PARALLEL DO &
3341
!$OMP DEFAULT (NONE) &
3442
!$OMP SHARED(n_points_final_grid,final_grid_points,N_states, &

src/ezfio_files/environment.irp.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
nproc = 1
4141
!$OMP PARALLEL
4242
!$OMP MASTER
43-
!$ nproc = omp_get_num_threads()
43+
nproc = omp_get_num_threads()
4444
!$OMP END MASTER
4545
!$OMP END PARALLEL
4646
END_PROVIDER

0 commit comments

Comments
 (0)