Skip to content

Commit

Permalink
grid: Move dist_ab into task_type
Browse files Browse the repository at this point in the history
  • Loading branch information
oschuett committed Feb 7, 2020
1 parent cd7f38e commit 826f8f8
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 170 deletions.
23 changes: 10 additions & 13 deletions src/qs_collocate_density.F
Original file line number Diff line number Diff line change
Expand Up @@ -1451,8 +1451,8 @@ SUBROUTINE calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho,
my_compute_grad, my_compute_tau, my_soft, use_subpatch
REAL(KIND=dp) :: eps_rho_rspace, rab2, scale, zetp
REAL(KIND=dp), DIMENSION(3) :: ra, rab, rab_inv, rb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dist_ab, p_block, pab, sphi_a, sphi_b, &
work, zeta, zetb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: p_block, pab, sphi_a, sphi_b, work, &
zeta, zetb
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: pabt, workt
TYPE(cell_type), POINTER :: cell
TYPE(cube_info_type), DIMENSION(:), POINTER :: cube_info
Expand All @@ -1477,9 +1477,8 @@ SUBROUTINE calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho,
do_kp = PRESENT(matrix_p_kp)

NULLIFY (qs_kind, cell, dft_control, orb_basis_set, deltap, &
qs_kind_set, particle_set, rs_rho, pw_env, rs_descs, &
dist_ab, la_max, la_min, &
lb_max, lb_min, npgfa, npgfb, nsgfa, nsgfb, p_block, &
qs_kind_set, particle_set, rs_rho, pw_env, rs_descs, la_max, &
la_min, lb_max, lb_min, npgfa, npgfb, nsgfa, nsgfb, p_block, &
sphi_a, sphi_b, zeta, zetb, first_sgfa, first_sgfb, tasks, pabt, &
workt, lgrid, mylmax)

Expand Down Expand Up @@ -1610,7 +1609,6 @@ SUBROUTINE calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho,
IF (my_soft) task_list => task_list_soft
CPASSERT(ASSOCIATED(task_list))
tasks => task_list%tasks
dist_ab => task_list%dist_ab
atom_pair_send => task_list%atom_pair_send
atom_pair_recv => task_list%atom_pair_recv
ntasks = task_list%ntasks
Expand Down Expand Up @@ -1680,7 +1678,7 @@ SUBROUTINE calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho,

!$OMP PARALLEL DEFAULT(NONE), &
!$OMP SHARED(ntasks,tasks,nimages,natoms,maxset,maxpgf,particle_set,pabt,workt), &
!$OMP SHARED(my_basis_type,my_soft,deltap,maxco,dist_ab,ncoset,nthread), &
!$OMP SHARED(my_basis_type,my_soft,deltap,maxco,ncoset,nthread), &
!$OMP SHARED(cell,cube_info,eps_rho_rspace,ga_gb_function, my_idir,map_consistent), &
!$OMP SHARED(rs_rho,lgrid,gridlevel_info,task_list,qs_kind_set,lmax_global), &
!$OMP PRIVATE(igrid_level,iatom,jatom,iset,jset,ipgf,jpgf,ikind,jkind,pab,work), &
Expand Down Expand Up @@ -1802,7 +1800,7 @@ SUBROUTINE calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho,
jset_old = jset
ENDIF

rab(:) = dist_ab(:, itask)
rab(:) = tasks(itask)%rab
rab2 = rab(1)*rab(1) + rab(2)*rab(2) + rab(3)*rab(3)
rb(:) = ra(:) + rab(:)
zetp = zeta(ipgf, iset) + zetb(jpgf, jset)
Expand Down Expand Up @@ -1998,8 +1996,8 @@ SUBROUTINE calculate_drho_elec(matrix_p, matrix_p_kp, drho, drho_gspace, qs_env,
use_subpatch
REAL(KIND=dp) :: eps_rho_rspace, rab2, scale, zetp
REAL(KIND=dp), DIMENSION(3) :: ra, rab, rab_inv, rb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dist_ab, p_block, pab, sphi_a, sphi_b, &
work, zeta, zetb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: p_block, pab, sphi_a, sphi_b, work, &
zeta, zetb
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: pabt, workt
TYPE(cell_type), POINTER :: cell
TYPE(cube_info_type), DIMENSION(:), POINTER :: cube_info
Expand All @@ -2026,7 +2024,7 @@ SUBROUTINE calculate_drho_elec(matrix_p, matrix_p_kp, drho, drho_gspace, qs_env,
NULLIFY (qs_kind, cell, dft_control, orb_basis_set, deltap, &
qs_kind_set, sab_orb, particle_set, rs_rho, pw_env, rs_descs, &
dist_ab, la_max, la_min, &
la_max, la_min, &
lb_max, lb_min, npgfa, npgfb, nsgfa, nsgfb, p_block, &
sphi_a, sphi_b, zeta, zetb, first_sgfa, first_sgfb, tasks, pabt, &
workt, mylmax)
Expand Down Expand Up @@ -2108,7 +2106,6 @@ SUBROUTINE calculate_drho_elec(matrix_p, matrix_p_kp, drho, drho_gspace, qs_env,
IF (my_soft) task_list => task_list_soft
CPASSERT(ASSOCIATED(task_list))
tasks => task_list%tasks
dist_ab => task_list%dist_ab
atom_pair_send => task_list%atom_pair_send
atom_pair_recv => task_list%atom_pair_recv
ntasks = task_list%ntasks
Expand Down Expand Up @@ -2275,7 +2272,7 @@ SUBROUTINE calculate_drho_elec(matrix_p, matrix_p_kp, drho, drho_gspace, qs_env,
ENDIF
rab(:) = dist_ab(:, itask)
rab(:) = tasks(itask)%rab
rab2 = rab(1)*rab(1) + rab(2)*rab(2) + rab(3)*rab(3)
rb(:) = ra(:) + rab(:)
zetp = zeta(ipgf, iset) + zetb(jpgf, jset)
Expand Down
14 changes: 5 additions & 9 deletions src/qs_integrate_potential_product.F
Original file line number Diff line number Diff line change
Expand Up @@ -215,9 +215,8 @@ SUBROUTINE integrate_v_rspace_low(v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env
REAL(KIND=dp), DIMENSION(3, 3) :: my_virial_a, my_virial_b, pv_thread
REAL(KIND=dp), DIMENSION(3, natom) :: force_thread
REAL(KIND=dp), DIMENSION(:), POINTER :: set_radius_a, set_radius_b
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dist_ab, h_block, hab, p_block, pab, &
rpgfa, rpgfb, sphi_a, sphi_b, work, &
zeta, zetb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: h_block, hab, p_block, pab, rpgfa, &
rpgfb, sphi_a, sphi_b, work, zeta, zetb
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: habt, hadb, hdab, pabt, workt
REAL(kind=dp), DIMENSION(:, :, :, :), POINTER :: hadbt, hdabt
TYPE(admm_type), POINTER :: admm_env
Expand Down Expand Up @@ -253,7 +252,7 @@ SUBROUTINE integrate_v_rspace_low(v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env
CPASSERT(PRESENT(hmat_kp))
END IF

NULLIFY (pw_env, rs_descs, tasks, dist_ab, admm_env)
NULLIFY (pw_env, rs_descs, tasks, admm_env)

debug_count = debug_count + 1

Expand Down Expand Up @@ -323,7 +322,6 @@ SUBROUTINE integrate_v_rspace_low(v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env

! short cuts to task list variables
tasks => task_list%tasks
dist_ab => task_list%dist_ab
atom_pair_send => task_list%atom_pair_send
atom_pair_recv => task_list%atom_pair_recv

Expand Down Expand Up @@ -464,7 +462,7 @@ SUBROUTINE integrate_v_rspace_low(v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env
!$OMP SHARED(workt,habt,hdabt,hadbt,pabt,tasks,particle_set,natom,maxset), &
!$OMP SHARED(maxpgf,my_basis_type,my_gapw,dhmat,deltap,use_virial,admm_scal_fac), &
!$OMP SHARED(pab_required,calculate_forces,ncoset,rs_v,cube_info,my_compute_tau), &
!$OMP SHARED(map_consistent,eps_gvg_rspace,force,virial,cell,dist_ab), &
!$OMP SHARED(map_consistent,eps_gvg_rspace,force,virial,cell), &
!$OMP SHARED(gridlevel_info,task_list,block_touched,nthread,qs_kind_set), &
!$OMP SHARED(nimages,do_kp), &
!$OMP PRIVATE(ithread,work,hab,hdab,hadb,pab,iset_old,jset_old), &
Expand Down Expand Up @@ -647,9 +645,7 @@ SUBROUTINE integrate_v_rspace_low(v_rspace, hmat, hmat_kp, pmat, pmat_kp, qs_env

ENDIF

rab(1) = dist_ab(1, itask)
rab(2) = dist_ab(2, itask)
rab(3) = dist_ab(3, itask)
rab = tasks(itask)%rab
rab2 = DOT_PRODUCT(rab, rab)
rb(1) = ra(1) + rab(1)
rb(2) = ra(2) + rab(2)
Expand Down
19 changes: 9 additions & 10 deletions src/qs_linres_current.F
Original file line number Diff line number Diff line change
Expand Up @@ -602,9 +602,9 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir
scale, scale2, zetp
REAL(KIND=dp), DIMENSION(3) :: ra, rab, rb
REAL(KIND=dp), DIMENSION(:), POINTER :: set_radius_a, set_radius_b
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dist_ab, jp_block_a, jp_block_b, jp_block_c, &
jp_block_d, jpab_a, jpab_b, jpab_c, jpab_d, jpblock_a, jpblock_b, jpblock_c, jpblock_d, &
rpgfa, rpgfb, sphi_a, sphi_b, work, zeta, zetb
REAL(KIND=dp), DIMENSION(:, :), POINTER :: jp_block_a, jp_block_b, jp_block_c, jp_block_d, &
jpab_a, jpab_b, jpab_c, jpab_d, jpblock_a, jpblock_b, jpblock_c, jpblock_d, rpgfa, rpgfb, &
sphi_a, sphi_b, work, zeta, zetb
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: jpabt_a, jpabt_b, jpabt_c, jpabt_d, workt
TYPE(cell_type), POINTER :: cell
TYPE(cp_para_env_type), POINTER :: para_env
Expand Down Expand Up @@ -633,9 +633,9 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir

NULLIFY (qs_kind, cell, dft_control, orb_basis_set, rs_rho, &
qs_kind_set, sab_orb, particle_set, rs_current, pw_env, &
rs_descs, para_env, dist_ab, set_radius_a, set_radius_b, la_max, &
rs_descs, para_env, set_radius_a, set_radius_b, la_max, &
la_min, lb_max, lb_min, npgfa, npgfb, nsgfa, nsgfb, rpgfa, rpgfb, &
sphi_a, sphi_b, zeta, zetb, first_sgfa, first_sgfb, dist_ab, &
sphi_a, sphi_b, zeta, zetb, first_sgfa, first_sgfb, &
tasks, workt, mat_a, mat_b, mat_c, mat_d, rs_gauge, mylmax)
NULLIFY (deltajp_a, deltajp_b, deltajp_c, deltajp_d)
NULLIFY (jp_block_a, jp_block_b, jp_block_c, jp_block_d)
Expand Down Expand Up @@ -719,7 +719,6 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir
CALL reallocate(jpabt_d, 1, maxco, 1, maxco, 0, nthread - 1)
CALL reallocate(workt, 1, maxco, 1, maxsgf_set, 0, nthread - 1)
CALL reallocate_tasks(tasks, max_tasks)
CALL reallocate(dist_ab, 1, 3, 1, max_tasks)

ntasks = 0
curr_tasks = SIZE(tasks)
Expand Down Expand Up @@ -866,7 +865,7 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir
END IF
END IF

CALL task_list_inner_loop(tasks, dist_ab, ntasks, curr_tasks, rs_descs, &
CALL task_list_inner_loop(tasks, ntasks, curr_tasks, rs_descs, &
dft_control, cube_info, gridlevel_info, cindex, &
iatom, jatom, rpgfa, rpgfb, zeta, zetb, kind_radius_b, set_radius_a, set_radius_b, ra, rab, &
la_max, la_min, lb_max, lb_min, npgfa, npgfb, nseta, nsetb)
Expand All @@ -885,7 +884,7 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir

! sorts / redistributes the task list
CALL distribute_tasks(rs_descs, ntasks, natom, nimages, &
tasks, dist_ab, atom_pair_send, atom_pair_recv, &
tasks, atom_pair_send, atom_pair_recv, &
symmetric=.FALSE., reorder_rs_grid_ranks=.TRUE., &
skip_load_balance_distributed=.FALSE.)

Expand Down Expand Up @@ -1112,7 +1111,7 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir

ENDIF

rab(:) = dist_ab(:, itask)
rab(:) = tasks(itask)%rab
rab2 = rab(1)*rab(1) + rab(2)*rab(2) + rab(3)*rab(3)
rb(:) = ra(:) + rab(:)
zetp = zeta(ipgf, iset) + zetb(jpgf, jset)
Expand Down Expand Up @@ -1223,7 +1222,7 @@ SUBROUTINE calculate_jrho_resp(mat_d0, mat_jp, mat_jp_rii, mat_jp_riii, iB, idir
END IF
DEALLOCATE (deltajp_a, deltajp_b, deltajp_c, deltajp_d)

DEALLOCATE (jpabt_a, jpabt_b, jpabt_c, jpabt_d, workt, tasks, dist_ab)
DEALLOCATE (jpabt_a, jpabt_b, jpabt_c, jpabt_d, workt, tasks)

IF (distributed_rs_grids) THEN
DEALLOCATE (atom_pair_send, atom_pair_recv)
Expand Down

0 comments on commit 826f8f8

Please sign in to comment.