![]() |
(git:d18deda)
|
Routines to convert sparse matrices between DBCSR (distributed-blocks compressed sparse rows) and SIESTA (distributed compressed sparse columns) formats. More...
Data Types | |
type | siesta_distrib_csc_struct_type |
Sparsity pattern of replicated SIESTA compressed sparse column (CSC) matrices. More... | |
Functions/Subroutines | |
subroutine, public | siesta_struct_create (siesta_struct, matrix_dbcsr_kp, subsys, cell_to_index, sab_nl, para_env, max_ij_cell_image, do_merge, gather_root) |
Map non-zero matrix blocks between sparse matrices in DBCSR and SIESTA formats. | |
subroutine, public | siesta_struct_release (siesta_struct) |
Release a SIESTA matrix structure. | |
subroutine, public | convert_dbcsr_to_distributed_siesta (matrix_siesta, matrix_dbcsr_kp, siesta_struct, para_env) |
Convert matrix from DBCSR to sparse SIESTA format. | |
subroutine, public | convert_distributed_siesta_to_dbcsr (matrix_dbcsr_kp, matrix_siesta, siesta_struct, para_env) |
Convert matrix from DBCSR to sparse SIESTA format. | |
Routines to convert sparse matrices between DBCSR (distributed-blocks compressed sparse rows) and SIESTA (distributed compressed sparse columns) formats.
subroutine, public smeagol_matrix_utils::siesta_struct_create | ( | type(siesta_distrib_csc_struct_type), intent(inout) | siesta_struct, |
type(dbcsr_p_type), dimension(:), intent(in) | matrix_dbcsr_kp, | ||
type(qs_subsys_type), pointer | subsys, | ||
integer, dimension(:, :, :), pointer | cell_to_index, | ||
type(neighbor_list_set_p_type), dimension(:), pointer | sab_nl, | ||
type(mp_para_env_type), pointer | para_env, | ||
integer, dimension(2), intent(inout) | max_ij_cell_image, | ||
logical, intent(in) | do_merge, | ||
integer, intent(in) | gather_root | ||
) |
Map non-zero matrix blocks between sparse matrices in DBCSR and SIESTA formats.
siesta_struct | structure that stores metadata (sparsity pattern) of sparse SIESTA matrices |
matrix_dbcsr_kp | DBCSR matrices for each cell image |
subsys | QuickStep molecular system |
cell_to_index | array to convert 3-D cell indices to 1-D DBCSR image indices |
sab_nl | pair-wise neighbour list |
para_env | MPI parallel environment |
max_ij_cell_image | largest index of cell images along i and j cell vectors (e.g. (2,0) in case of 5 cell images (0,0), (1,0), (-1,0), (2,0), and (-2,0)) |
do_merge | merge DBCSR images along transport direction (k cell vector) |
gather_root | distribute non-zero matrix elements of SIESTA matrices across all parallel processes (-1), or gather them on the given MPI rank (>= 0). |
Definition at line 161 of file smeagol_matrix_utils.F.
subroutine, public smeagol_matrix_utils::siesta_struct_release | ( | type(siesta_distrib_csc_struct_type), intent(inout) | siesta_struct | ) |
Release a SIESTA matrix structure.
siesta_struct | structure to release |
Definition at line 378 of file smeagol_matrix_utils.F.
subroutine, public smeagol_matrix_utils::convert_dbcsr_to_distributed_siesta | ( | real(kind=dp), dimension(:), intent(out) | matrix_siesta, |
type(dbcsr_p_type), dimension(:), intent(in) | matrix_dbcsr_kp, | ||
type(siesta_distrib_csc_struct_type), intent(in) | siesta_struct, | ||
type(mp_para_env_type), intent(in), pointer | para_env | ||
) |
Convert matrix from DBCSR to sparse SIESTA format.
matrix_siesta | matrix in SIESTA format [out] |
matrix_dbcsr_kp | DBCSR matrix [in] |
siesta_struct | structure to map matrix blocks between formats |
para_env | MPI parallel environment |
Definition at line 420 of file smeagol_matrix_utils.F.
subroutine, public smeagol_matrix_utils::convert_distributed_siesta_to_dbcsr | ( | type(dbcsr_p_type), dimension(:), intent(in) | matrix_dbcsr_kp, |
real(kind=dp), dimension(:), intent(in) | matrix_siesta, | ||
type(siesta_distrib_csc_struct_type), intent(in) | siesta_struct, | ||
type(mp_para_env_type), intent(in), pointer | para_env | ||
) |
Convert matrix from DBCSR to sparse SIESTA format.
matrix_dbcsr_kp | DBCSR matrix [out]. The matrix is declared as INTENT(in) as pointers to dbcsr matrices remain intact. However we have intention to update matrix elements |
matrix_siesta | matrix in SIESTA format [in] |
siesta_struct | structure to map matrix blocks between formats |
para_env | MPI parallel environment |
Definition at line 798 of file smeagol_matrix_utils.F.