(git:0e87843)
Loading...
Searching...
No Matches
cp_dbcsr_redistribution Module Reference

Redistribution of DBCSR blocks and distributed matrix slices. More...

Functions/Subroutines

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.
subroutine, public cp_array_to_dbcsr_slices (array, nrows, ncols, para_env_sub, first_row, last_row, template, matrices, matrix_ptrs)
 Consume a distributed flattened array and create a DBCSR matrix per slice.

Detailed Description

Redistribution of DBCSR blocks and distributed matrix slices.

Function/Subroutine Documentation

◆ cp_dbcsr_to_subgroups()

subroutine, public cp_dbcsr_redistribution::cp_dbcsr_to_subgroups ( type(dbcsr_type) mat_global,
type(dbcsr_type) mat_local,
type(mp_para_env_type), intent(in) para_env,
integer num_pe_sub,
integer, dimension(:, :), optional block_row_ranges )

...

Parameters
mat_global...
mat_local...
para_env...
num_pe_sub...
block_row_ranges...

Definition at line 53 of file cp_dbcsr_redistribution.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_dbcsr_from_subgroups()

subroutine, public cp_dbcsr_redistribution::cp_dbcsr_from_subgroups ( type(dbcsr_type) mat_local,
type(dbcsr_type) mat_global,
type(mp_para_env_type), intent(in) para_env,
integer, dimension(:), intent(in), optional row_mapping,
logical, intent(in), optional copy_only )

Sum subgroup blocks into the global layout, or copy mapped blocks.

Parameters
mat_local...
mat_global...
para_envcommunicator covering all source and destination ranks
row_mappingoptional source-to-destination block-row permutation
copy_onlycopy without summation, filtering, or consuming the source (default: false)

Definition at line 213 of file cp_dbcsr_redistribution.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_array_to_dbcsr_slices()

subroutine, public cp_dbcsr_redistribution::cp_array_to_dbcsr_slices ( real(kind=dp), dimension(:, :), intent(inout), allocatable array,
integer, intent(in) nrows,
integer, intent(in) ncols,
type(mp_para_env_type), intent(in), pointer para_env_sub,
integer, intent(in) first_row,
integer, intent(in) last_row,
type(dbcsr_type), intent(inout) template,
type(dbcsr_type), dimension(:), intent(inout), optional, target matrices,
type(dbcsr_p_type), dimension(:), intent(inout), optional matrix_ptrs )

Consume a distributed flattened array and create a DBCSR matrix per slice.

Parameters
arraylocal flattened rows; all ranks have the same number of slices; deallocated on return
nrowsnumber of rows in each output matrix
ncolsnumber of columns in each output matrix
para_env_subcommunicator for the output matrices
first_rowfirst flattened row held locally
last_rowlast flattened row held locally
templateDBCSR template defining output distribution and block sizes
matricespreallocated array of output matrices
matrix_ptrspreallocated array of output pointers; pointees are allocated here
Note
Supply exactly one output representation. Flattened rows use (i-1)*ncols+j.

Definition at line 376 of file cp_dbcsr_redistribution.F.

Here is the call graph for this function:
Here is the caller graph for this function: