Skip to content

Commit

Permalink
high-level routines for SOC; bandstructure, PDOS, local bandgap for G…
Browse files Browse the repository at this point in the history
…0W0/SOC
  • Loading branch information
JWilhelm committed Sep 20, 2023
1 parent 6636911 commit 6a2264c
Show file tree
Hide file tree
Showing 217 changed files with 7,166 additions and 1,683 deletions.
6 changes: 5 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ list(
atom_utils.F
atom_xc.F
auto_basis.F
bandstructure_methods.F
post_scf_bandstructure_methods.F
soc_pseudopotential_methods.F
soc_pseudopotential_utils.F
basis_set_output.F
beta_gamma_psi.F
block_p_types.F
Expand Down Expand Up @@ -204,6 +206,8 @@ list(
gw_communication.F
gw_methods.F
gw_types.F
post_scf_bandstructure_types.F
post_scf_bandstructure_utils.F
gw_utils.F
hartree_local_methods.F
hartree_local_types.F
Expand Down
62 changes: 0 additions & 62 deletions src/bandstructure_methods.F

This file was deleted.

18 changes: 16 additions & 2 deletions src/common/bibliography.F
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ MODULE bibliography
cp2kqs2020, Behler2007, Behler2011, Schran2020a, Schran2020b, &
Rycroft2009, Thomas2015, Brehm2018, Brehm2020, Shigeta2001, Heinecke2016, &
Brehm2021, Bussy2021a, Bussy2021b, Ditler2021, Ditler2022, Mattiat2019, Mattiat2022, &
Belleflamme2023, Knizia2013, Musaelian2023, Eriksen2020
Belleflamme2023, Knizia2013, Musaelian2023, Eriksen2020, Graml2023

CONTAINS

Expand Down Expand Up @@ -4852,7 +4852,7 @@ SUBROUTINE add_all_references()
" Kornbluth, M", &
" Kozinsky, B", &
"TI Learning local equivariant representations for large-scale", &
" atomistic dynamice", &
" atomistic dynamics", &
"SO Nature Communications", &
"PY 2023", &
"VL 14", &
Expand All @@ -4872,6 +4872,20 @@ SUBROUTINE add_all_references()
"ER"), &
DOI="10.1063/5.0030764")

CALL add_reference(key=Graml2023, ISI_record=s2a( &
"AU Graml, Maximilian", &
" Zollner, Klaus", &
" Hernangómez-Pérez, Daniel", &
" Faria Junior, Paulo Eduardo", &
" Wilhelm, Jan", &
"TI Low-scaling GW algorithm applied to twisted transition-metal ", &
" dichalcogenide heterobilayers", &
"SO arXiv", &
"PY 2023", &
"AR 2306.16066", &
"ER"), &
DOI="10.48550/arXiv.2306.16066")

END SUBROUTINE add_all_references

END MODULE bibliography
21 changes: 14 additions & 7 deletions src/gw_communication.F
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ MODULE gw_communication

PRIVATE

CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'gw_communication'

PUBLIC :: global_matrix_to_local_matrix, local_matrix_to_global_matrix

TYPE buffer_type
REAL(KIND=dp), DIMENSION(:), POINTER :: msg => NULL()
INTEGER, DIMENSION(:), POINTER :: sizes => NULL()
Expand All @@ -34,10 +38,6 @@ MODULE gw_communication
INTEGER :: msg_req = -1
END TYPE

CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'gw_communication'

PUBLIC :: global_matrix_to_local_matrix, local_matrix_to_global_matrix

CONTAINS

! **************************************************************************************************
Expand All @@ -46,11 +46,13 @@ MODULE gw_communication
!> \param mat_local ...
!> \param para_env ...
!> \param num_pe_sub ...
!> \param atom_ranges ...
! **************************************************************************************************
SUBROUTINE global_matrix_to_local_matrix(mat_global, mat_local, para_env, num_pe_sub)
SUBROUTINE global_matrix_to_local_matrix(mat_global, mat_local, para_env, num_pe_sub, atom_ranges)
TYPE(dbcsr_type) :: mat_global, mat_local
TYPE(mp_para_env_type), POINTER :: para_env
INTEGER :: num_pe_sub
INTEGER, DIMENSION(:, :), OPTIONAL :: atom_ranges

CHARACTER(LEN=*), PARAMETER :: routineN = 'global_matrix_to_local_matrix'

Expand Down Expand Up @@ -87,11 +89,13 @@ SUBROUTINE global_matrix_to_local_matrix(mat_global, mat_local, para_env, num_pe
row_size=row_size, col_size=col_size, &
row_offset=row_offset, col_offset=col_offset)

! JW here additional check is needed for iatom and jatom range
CALL dbcsr_get_stored_coordinates(mat_local, row, col, imep_sub)

DO igroup = 0, ngroup - 1

IF (PRESENT(atom_ranges)) THEN
IF (row < atom_ranges(1, igroup + 1) .OR. row > atom_ranges(2, igroup + 1)) CYCLE
END IF
imep = imep_sub + igroup*num_pe_sub

num_entries_blocks_send(2*imep) = num_entries_blocks_send(2*imep) + row_size*col_size
Expand Down Expand Up @@ -157,11 +161,14 @@ SUBROUTINE global_matrix_to_local_matrix(mat_global, mat_local, para_env, num_pe
row_size=row_size, col_size=col_size, &
row_offset=row_offset, col_offset=col_offset)

! JW check here whether block is in iatom/jatom range
CALL dbcsr_get_stored_coordinates(mat_local, row, col, imep_sub)

DO igroup = 0, ngroup - 1

IF (PRESENT(atom_ranges)) THEN
IF (row < atom_ranges(1, igroup + 1) .OR. row > atom_ranges(2, igroup + 1)) CYCLE
END IF

imep = imep_sub + igroup*num_pe_sub

msg_offset = entry_counter(imep)
Expand Down

0 comments on commit 6a2264c

Please sign in to comment.