Skip to content

Commit

Permalink
Enable SCREEN_ON_INITIAL_P for ROKS and TDDFPT forces run (#2653)
Browse files Browse the repository at this point in the history
  • Loading branch information
juerghutter committed Mar 6, 2023
1 parent f26eaef commit ffa692a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 31 deletions.
9 changes: 2 additions & 7 deletions src/hfx_derivatives.F
Original file line number Diff line number Diff line change
Expand Up @@ -534,13 +534,8 @@ SUBROUTINE derivatives_four_center(qs_env, rho_ao, rho_ao_resp, hfx_section, par
!! matrix is initialized to 1.0
IF (screen_pmat_forces) THEN
NULLIFY (shm_initial_p)
shm_initial_p => actual_x_data%initial_p
shm_pmax_atom => actual_x_data%pmax_atom

IF (memory_parameter%treat_forces_in_core) THEN
shm_initial_p => actual_x_data%initial_p_forces
shm_pmax_atom => actual_x_data%pmax_atom_forces
END IF
shm_initial_p => actual_x_data%initial_p_forces
shm_pmax_atom => actual_x_data%pmax_atom_forces
IF (memory_parameter%recalc_forces) THEN
CALL update_pmax_mat(shm_initial_p, &
actual_x_data%map_atom_to_kind_atom, &
Expand Down
45 changes: 21 additions & 24 deletions src/hfx_types.F
Original file line number Diff line number Diff line change
Expand Up @@ -874,24 +874,22 @@ SUBROUTINE hfx_create(x_data, para_env, hfx_section, atomic_kind_set, qs_kind_se
i = i + 1
END DO
END DO
IF (actual_x_data%memory_parameter%treat_forces_in_core) THEN
ALLOCATE (actual_x_data%pmax_atom_forces(natom, natom))

ALLOCATE (actual_x_data%initial_p_forces(nkind*(nkind + 1)/2))
i = 1
DO ikind = 1, nkind
CALL get_atomic_kind(atomic_kind_set(ikind), natom=natom_a)
nseta = actual_x_data%basis_parameter(ikind)%nset
DO jkind = ikind, nkind
CALL get_atomic_kind(atomic_kind_set(jkind), natom=natom_b)
nsetb = actual_x_data%basis_parameter(jkind)%nset
ALLOCATE (actual_x_data%initial_p_forces(i)%p_kind(nseta, nsetb, natom_a, natom_b))
actual_x_data%memory_parameter%size_p_screen = &
actual_x_data%memory_parameter%size_p_screen + nseta*nsetb*natom_a*natom_b
i = i + 1
END DO

ALLOCATE (actual_x_data%pmax_atom_forces(natom, natom))
ALLOCATE (actual_x_data%initial_p_forces(nkind*(nkind + 1)/2))
i = 1
DO ikind = 1, nkind
CALL get_atomic_kind(atomic_kind_set(ikind), natom=natom_a)
nseta = actual_x_data%basis_parameter(ikind)%nset
DO jkind = ikind, nkind
CALL get_atomic_kind(atomic_kind_set(jkind), natom=natom_b)
nsetb = actual_x_data%basis_parameter(jkind)%nset
ALLOCATE (actual_x_data%initial_p_forces(i)%p_kind(nseta, nsetb, natom_a, natom_b))
actual_x_data%memory_parameter%size_p_screen = &
actual_x_data%memory_parameter%size_p_screen + nseta*nsetb*natom_a*natom_b
i = i + 1
END DO
END IF
END DO
END IF
ALLOCATE (actual_x_data%map_atom_to_kind_atom(natom))
CALL get_atomic_kind_set(atomic_kind_set, kind_of=kind_of)
Expand Down Expand Up @@ -1831,13 +1829,12 @@ SUBROUTINE hfx_release(x_data)
DEALLOCATE (actual_x_data%initial_p(i)%p_kind)
END DO
DEALLOCATE (actual_x_data%initial_p)
IF (actual_x_data%memory_parameter%treat_forces_in_core) THEN
DEALLOCATE (actual_x_data%pmax_atom_forces)
DO i = 1, SIZE(actual_x_data%initial_p_forces)
DEALLOCATE (actual_x_data%initial_p_forces(i)%p_kind)
END DO
DEALLOCATE (actual_x_data%initial_p_forces)
END IF

DEALLOCATE (actual_x_data%pmax_atom_forces)
DO i = 1, SIZE(actual_x_data%initial_p_forces)
DEALLOCATE (actual_x_data%initial_p_forces(i)%p_kind)
END DO
DEALLOCATE (actual_x_data%initial_p_forces)
END IF
DEALLOCATE (actual_x_data%map_atom_to_kind_atom)
END IF
Expand Down

0 comments on commit ffa692a

Please sign in to comment.