(git:6a2e663)
qs_fb_atomic_matrix_methods Module Reference

Functions/Subroutines

subroutine, public fb_atmatrix_calc_size (dbcsr_mat, atomic_halo, nrows, ncols, blk_row_start, blk_col_start)
 Calculates the atomic matrix size from a given DBCSR matrix and atomic halo. It also calculates the first row (col) or the row (col) atomic blocks in the atomic matrix. More...
 
subroutine, public fb_atmatrix_construct (dbcsr_mat, atomic_halo, para_env, atomic_matrix, blk_row_start, blk_col_start)
 Constructs atomic matrix for filter basis method from a given DBCSR matrix and a set of atomic send and recv pairs corresponding to the matrix blocks that needs to be included in the atomic matrix. This version is for when we do MPI communications at every step, for each atomic matrix. More...
 
subroutine, public fb_atmatrix_construct_2 (matrix_storage, atomic_halo, atomic_matrix, blk_row_start, blk_col_start)
 Constructs atomic matrix for filter basis method from a given DBCSR matrix and a set of atomic send and recv pairs corresponding to the matrix blocks that needs to be included in the atomic matrix. This version is for when we do MPI communications collectively in one go at the beginning. More...
 
subroutine, public fb_atmatrix_generate_com_pairs_2 (dbcsr_mat, atomic_halos, para_env, atom_pairs_send, atom_pairs_recv)
 generate list of blocks (atom pairs) of a DBCSR matrix to be sent and received in order to construct all local atomic matrices corresponding to the atomic halos. This version is for the case when we do MPI communications collectively in one go at the beginning. More...
 

Function/Subroutine Documentation

◆ fb_atmatrix_calc_size()

subroutine, public qs_fb_atomic_matrix_methods::fb_atmatrix_calc_size ( type(dbcsr_type), pointer  dbcsr_mat,
type(fb_atomic_halo_obj), intent(in)  atomic_halo,
integer, intent(out)  nrows,
integer, intent(out)  ncols,
integer, dimension(:), intent(out)  blk_row_start,
integer, dimension(:), intent(out)  blk_col_start 
)

Calculates the atomic matrix size from a given DBCSR matrix and atomic halo. It also calculates the first row (col) or the row (col) atomic blocks in the atomic matrix.

Parameters
dbcsr_mat: pointer to the DBCSR matrix the atomic matrix is to be constructed from
atomic_halo: the atomic halo used for defining the atomic matrix from the DBCSR matrix
nrows: outputs total number of rows in the atomic matrix
ncols: outputs total number of cols in the atomic matrix
blk_row_start: first row in each atomic blk row in the atomic matrix
blk_col_start: first col in each atomic blk col in the atomic matrix
Author
Lianheng Tong (LT) lianh.nosp@m.eng..nosp@m.tong@.nosp@m.kcl..nosp@m.ac.uk

Definition at line 65 of file qs_fb_atomic_matrix_methods.F.

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

◆ fb_atmatrix_construct()

subroutine, public qs_fb_atomic_matrix_methods::fb_atmatrix_construct ( type(dbcsr_type), pointer  dbcsr_mat,
type(fb_atomic_halo_obj), intent(in)  atomic_halo,
type(mp_para_env_type), pointer  para_env,
real(kind=dp), dimension(:, :), intent(out)  atomic_matrix,
integer, dimension(:), intent(in)  blk_row_start,
integer, dimension(:), intent(in)  blk_col_start 
)

Constructs atomic matrix for filter basis method from a given DBCSR matrix and a set of atomic send and recv pairs corresponding to the matrix blocks that needs to be included in the atomic matrix. This version is for when we do MPI communications at every step, for each atomic matrix.

Parameters
dbcsr_mat: the DBCSR matrix the atomic matrix is to be constructed from
atomic_halo: the atomic halo conrresponding to this atomic matrix
para_env: cp2k parallel environment
atomic_matrix: the atomic matrix to be constructed, it should have already been allocated prior entering this subroutine
blk_row_start: first row in each atomic blk row in the atomic matrix
blk_col_start: first col in each atomic blk col in the atomic matrix
Author
Lianheng Tong (LT) lianh.nosp@m.eng..nosp@m.tong@.nosp@m.kcl..nosp@m.ac.uk

Definition at line 125 of file qs_fb_atomic_matrix_methods.F.

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

◆ fb_atmatrix_construct_2()

subroutine, public qs_fb_atomic_matrix_methods::fb_atmatrix_construct_2 ( type(fb_matrix_data_obj), intent(in)  matrix_storage,
type(fb_atomic_halo_obj), intent(in)  atomic_halo,
real(kind=dp), dimension(:, :), intent(out)  atomic_matrix,
integer, dimension(:), intent(in)  blk_row_start,
integer, dimension(:), intent(in)  blk_col_start 
)

Constructs atomic matrix for filter basis method from a given DBCSR matrix and a set of atomic send and recv pairs corresponding to the matrix blocks that needs to be included in the atomic matrix. This version is for when we do MPI communications collectively in one go at the beginning.

Parameters
matrix_storage: data storing the relevant DBCSR matrix blocks needed for constructing the atomic matrix
atomic_halo: the atomic halo conrresponding to this atomic matrix
atomic_matrix: the atomic matrix to be constructed, it should have already been allocated prior entering this subroutine
blk_row_start: first row in each atomic blk row in the atomic matrix
blk_col_start: first col in each atomic blk col in the atomic matrix
Author
Lianheng Tong (LT) lianh.nosp@m.eng..nosp@m.tong@.nosp@m.kcl..nosp@m.ac.uk

Definition at line 336 of file qs_fb_atomic_matrix_methods.F.

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

◆ fb_atmatrix_generate_com_pairs_2()

subroutine, public qs_fb_atomic_matrix_methods::fb_atmatrix_generate_com_pairs_2 ( type(dbcsr_type), pointer  dbcsr_mat,
type(fb_atomic_halo_list_obj), intent(in)  atomic_halos,
type(mp_para_env_type), pointer  para_env,
type(fb_com_atom_pairs_obj), intent(inout)  atom_pairs_send,
type(fb_com_atom_pairs_obj), intent(inout)  atom_pairs_recv 
)

generate list of blocks (atom pairs) of a DBCSR matrix to be sent and received in order to construct all local atomic matrices corresponding to the atomic halos. This version is for the case when we do MPI communications collectively in one go at the beginning.

Parameters
dbcsr_mat: The DBCSR matrix the atom blocks come from
atomic_halos: the list of all atomic halos local to the process
para_env: cp2k parallel environment
atom_pairs_send: list of atom blocks from local DBCSR matrix data to be sent
atom_pairs_recv: list of atom blocks from remote DBCSR matrix data to be recveived
Author
Lianheng Tong (LT) lianh.nosp@m.eng..nosp@m.tong@.nosp@m.kcl..nosp@m.ac.uk

Definition at line 621 of file qs_fb_atomic_matrix_methods.F.

Here is the caller graph for this function: