23 dbt_copy_matrix_to_tensor,&
24 dbt_copy_tensor_to_matrix,&
30#include "../base/base_uses.f90"
34 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'dbt_matrix_redistribution'
50 SUBROUTINE cp_fm_to_dbt(fm_global, mat_global, mat_local, tensor, para_env, num_pe_sub, eps_filter, block_row_ranges)
56 INTEGER,
INTENT(IN) :: num_pe_sub
57 REAL(kind=
dp),
INTENT(IN) :: eps_filter
58 INTEGER,
DIMENSION(:, :),
OPTIONAL :: block_row_ranges
60 CHARACTER(LEN=*),
PARAMETER :: routinen =
'cp_fm_to_dbt'
63 TYPE(dbt_type) :: tensor_tmp
65 CALL timeset(routinen, handle)
71 CALL dbt_create(mat_local, tensor_tmp)
72 CALL dbt_copy_matrix_to_tensor(mat_local, tensor_tmp)
73 CALL dbt_copy(tensor_tmp,
tensor, move_data=.true.)
74 CALL dbt_destroy(tensor_tmp)
95 CHARACTER(LEN=*),
PARAMETER :: routinen =
'cp_dbt_to_dbcsr'
99 CALL timeset(routinen, handle)
101 CALL dbt_copy_tensor_to_matrix(
tensor, mat_tensor)
108 CALL timestop(handle)
121 TYPE(dbt_type),
DIMENSION(:) :: t_r
126 CHARACTER(LEN=*),
PARAMETER :: routinen =
'cp_dbt_to_fm'
128 INTEGER :: handle, i_cell, n_images
130 CALL timeset(routinen, handle)
134 cpassert(n_images ==
SIZE(fm_r))
136 DO i_cell = 1, n_images
137 CALL cp_dbt_to_dbcsr(t_r(i_cell), mat_local%matrix, mat_global%matrix, &
142 CALL timestop(handle)
subroutine, public dbcsr_filter(matrix, eps)
...
subroutine, public dbcsr_set(matrix, alpha)
...
DBCSR operations in CP2K.
subroutine, public copy_dbcsr_to_fm(matrix, fm, plan, check_plan)
Copy a DBCSR matrix to a BLACS matrix.
subroutine, public copy_fm_to_dbcsr(fm, matrix, keep_sparsity)
Copy a BLACS matrix to a dbcsr matrix.
Redistribution of DBCSR blocks and distributed matrix slices.
subroutine, public cp_dbcsr_to_subgroups(mat_global, mat_local, para_env, num_pe_sub, block_row_ranges)
...
subroutine, public cp_dbcsr_from_subgroups(mat_local, mat_global, para_env, row_mapping, copy_only)
Sum subgroup blocks into the global layout, or copy mapped blocks.
represent a full matrix distributed on many processors
This is the start of a dbt_api, all publically needed functions are exported here....
Redistribute matrices between full-matrix and tensor process layouts.
subroutine, public cp_dbt_to_dbcsr(tensor, mat_tensor, mat_global, para_env)
...
subroutine, public cp_dbt_to_fm(t_r, fm_r, mat_global, mat_local, para_env)
...
subroutine, public cp_fm_to_dbt(fm_global, mat_global, mat_local, tensor, para_env, num_pe_sub, eps_filter, block_row_ranges)
...
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
stores all the informations relevant to an mpi environment