(git:6a2e663)
dbm_api Module Reference

Functions/Subroutines

subroutine, public dbm_create_from_template (matrix, name, template)
 Creates a new matrix from given template, reusing dist and row/col_block_sizes. More...
 
subroutine, public dbm_create (matrix, name, dist, row_block_sizes, col_block_sizes)
 Creates a new matrix. More...
 
subroutine, public dbm_finalize (matrix)
 Needed to be called for DBCSR after blocks where inserted. For DBM it's a no-opt. More...
 
subroutine, public dbm_release (matrix)
 Releases a matrix and all its ressources. More...
 
subroutine, public dbm_copy (matrix_a, matrix_b)
 Copies content of matrix_b into matrix_a. Matrices must have the same row/col block sizes and distribution. More...
 
subroutine, public dbm_redistribute (matrix, redist)
 Copies content of matrix_b into matrix_a. Matrices may have different distributions. More...
 
subroutine, public dbm_get_block_p (matrix, row, col, block, row_size, col_size)
 Looks up a block from given matrics. This routine is thread-safe. If the block is not found then a null pointer is returned. More...
 
subroutine, public dbm_put_block (matrix, row, col, block, summation)
 Adds a block to given matrix. This routine is thread-safe. If block already exist then it gets overwritten (or summed). More...
 
subroutine, public dbm_clear (matrix)
 Remove all blocks from given matrix, but does not release the underlying memory. More...
 
subroutine, public dbm_filter (matrix, eps)
 Removes all blocks from the given matrix whose block norm is below the given threshold. Blocks of size zero are always kept. More...
 
subroutine, public dbm_reserve_blocks (matrix, rows, cols)
 Adds given list of blocks efficiently. The blocks will be filled with zeros. More...
 
subroutine, public dbm_scale (matrix, alpha)
 Multiplies all entries in the given matrix by the given factor alpha. More...
 
subroutine, public dbm_zero (matrix)
 Sets all blocks in the given matrix to zero. More...
 
subroutine, public dbm_add (matrix_a, matrix_b)
 Adds matrix_b to matrix_a. More...
 
subroutine, public dbm_multiply (transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, retain_sparsity, filter_eps, flop)
 Computes matrix product: matrix_c = alpha * matrix_a * matrix_b + beta * matrix_c. More...
 
subroutine, public dbm_iterator_start (iterator, matrix)
 Creates an iterator for the blocks of the given matrix. The iteration order is not stable. More...
 
integer function, public dbm_iterator_num_blocks (iterator)
 Returns number of blocks the iterator will provide to calling thread. More...
 
logical function, public dbm_iterator_blocks_left (iterator)
 Tests whether the given iterator has any block left. More...
 
subroutine, public dbm_iterator_next_block (iterator, row, column, block, row_size, col_size)
 Returns the next block from the given iterator. More...
 
subroutine, public dbm_iterator_stop (iterator)
 Releases the given iterator. More...
 
real(kind=dp) function, public dbm_checksum (matrix)
 Computes a checksum of the given matrix. More...
 
real(kind=dp) function, public dbm_maxabs (matrix)
 Returns the absolute value of the larges element of the entire given matrix. More...
 
character(len=default_string_length) function, public dbm_get_name (matrix)
 Returns the name of the matrix of the given matrix. More...
 
pure integer function, public dbm_get_nze (matrix)
 Returns the number of local Non-Zero Elements of the given matrix. More...
 
pure integer function, public dbm_get_num_blocks (matrix)
 Returns the number of local blocks of the given matrix. More...
 
integer function, dimension(:), pointer, contiguous, public dbm_get_row_block_sizes (matrix)
 Returns the row block sizes of the given matrix. More...
 
integer function, dimension(:), pointer, contiguous, public dbm_get_col_block_sizes (matrix)
 Returns the column block sizes of the given matrix. More...
 
subroutine, public dbm_get_local_rows (matrix, local_rows)
 Returns the local row block sizes of the given matrix. More...
 
subroutine, public dbm_get_local_cols (matrix, local_cols)
 Returns the local column block sizes of the given matrix. More...
 
subroutine, public dbm_get_stored_coordinates (matrix, row, column, processor)
 Returns the MPI rank on which the given block should be stored. More...
 
type(dbm_distribution_obj) function, public dbm_get_distribution (matrix)
 Returns the distribution of the given matrix. More...
 
subroutine, public dbm_distribution_new (dist, mp_comm, row_dist_block, col_dist_block)
 Creates a new two dimensional distribution. More...
 
subroutine, public dbm_distribution_hold (dist)
 Increases the reference counter of the given distribution. More...
 
subroutine, public dbm_distribution_release (dist)
 Decreases the reference counter of the given distribution. More...
 
integer function, dimension(:), pointer, contiguous, public dbm_distribution_row_dist (dist)
 Returns the rows of the given distribution. More...
 
integer function, dimension(:), pointer, contiguous, public dbm_distribution_col_dist (dist)
 Returns the columns of the given distribution. More...
 
subroutine, public dbm_library_init ()
 Initialize DBM library. More...
 
subroutine, public dbm_library_finalize ()
 Finalize DBM library. More...
 
subroutine, public dbm_library_print_stats (mpi_comm, output_unit)
 Print DBM library statistics. More...
 

Function/Subroutine Documentation

◆ dbm_create_from_template()

subroutine, public dbm_api::dbm_create_from_template ( type(dbm_type), intent(inout)  matrix,
character(len=*), intent(in)  name,
type(dbm_type), intent(in)  template 
)

Creates a new matrix from given template, reusing dist and row/col_block_sizes.

Parameters
matrix...
name...
template...
Author
Ole Schuett

Definition at line 264 of file dbm_api.F.

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

◆ dbm_create()

subroutine, public dbm_api::dbm_create ( type(dbm_type), intent(inout)  matrix,
character(len=*), intent(in)  name,
type(dbm_distribution_obj), intent(in)  dist,
integer, dimension(:), intent(in), pointer, contiguous  row_block_sizes,
integer, dimension(:), intent(in), pointer, contiguous  col_block_sizes 
)

Creates a new matrix.

Parameters
matrix...
name...
dist...
row_block_sizes...
col_block_sizes...
Author
Ole Schuett

Definition at line 292 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_finalize()

subroutine, public dbm_api::dbm_finalize ( type(dbm_type), intent(inout)  matrix)

Needed to be called for DBCSR after blocks where inserted. For DBM it's a no-opt.

Parameters
matrix...
Author
Ole Schuett

Definition at line 338 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_release()

subroutine, public dbm_api::dbm_release ( type(dbm_type), intent(inout)  matrix)

Releases a matrix and all its ressources.

Parameters
matrix...
Author
Ole Schuett

Definition at line 353 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_copy()

subroutine, public dbm_api::dbm_copy ( type(dbm_type), intent(inout)  matrix_a,
type(dbm_type), intent(in)  matrix_b 
)

Copies content of matrix_b into matrix_a. Matrices must have the same row/col block sizes and distribution.

Parameters
matrix_a...
matrix_b...
Author
Ole Schuett

Definition at line 379 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_redistribute()

subroutine, public dbm_api::dbm_redistribute ( type(dbm_type), intent(in)  matrix,
type(dbm_type), intent(inout)  redist 
)

Copies content of matrix_b into matrix_a. Matrices may have different distributions.

Parameters
matrix...
redist...
Author
Ole Schuett

Definition at line 411 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_block_p()

subroutine, public dbm_api::dbm_get_block_p ( type(dbm_type), intent(inout)  matrix,
integer, intent(in)  row,
integer, intent(in)  col,
real(dp), dimension(:, :), intent(out), pointer  block,
integer, intent(out), optional  row_size,
integer, intent(out), optional  col_size 
)

Looks up a block from given matrics. This routine is thread-safe. If the block is not found then a null pointer is returned.

Parameters
matrix...
row...
col...
block...
row_size...
col_size...
Author
Ole Schuett

Definition at line 448 of file dbm_api.F.

◆ dbm_put_block()

subroutine, public dbm_api::dbm_put_block ( type(dbm_type), intent(inout)  matrix,
integer, intent(in)  row,
integer, intent(in)  col,
real(dp), dimension(:, :), intent(in), contiguous  block,
logical, intent(in), optional  summation 
)

Adds a block to given matrix. This routine is thread-safe. If block already exist then it gets overwritten (or summed).

Parameters
matrix...
row...
col...
block...
summation...
Author
Ole Schuett

Definition at line 490 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_clear()

subroutine, public dbm_api::dbm_clear ( type(dbm_type), intent(inout)  matrix)

Remove all blocks from given matrix, but does not release the underlying memory.

Parameters
matrix...
Author
Ole Schuett

Definition at line 528 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_filter()

subroutine, public dbm_api::dbm_filter ( type(dbm_type), intent(inout)  matrix,
real(dp), intent(in)  eps 
)

Removes all blocks from the given matrix whose block norm is below the given threshold. Blocks of size zero are always kept.

Parameters
matrix...
eps...
Author
Ole Schuett

Definition at line 554 of file dbm_api.F.

◆ dbm_reserve_blocks()

subroutine, public dbm_api::dbm_reserve_blocks ( type(dbm_type), intent(inout)  matrix,
integer, dimension(:), intent(in)  rows,
integer, dimension(:), intent(in)  cols 
)

Adds given list of blocks efficiently. The blocks will be filled with zeros.

Parameters
matrix...
rows...
cols...
Author
Ole Schuett

Definition at line 588 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_scale()

subroutine, public dbm_api::dbm_scale ( type(dbm_type), intent(inout)  matrix,
real(dp), intent(in)  alpha 
)

Multiplies all entries in the given matrix by the given factor alpha.

Parameters
matrix...
alpha...
Author
Ole Schuett

Definition at line 630 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_zero()

subroutine, public dbm_api::dbm_zero ( type(dbm_type), intent(inout)  matrix)

Sets all blocks in the given matrix to zero.

Parameters
matrix...
Author
Ole Schuett

Definition at line 661 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_add()

subroutine, public dbm_api::dbm_add ( type(dbm_type), intent(inout)  matrix_a,
type(dbm_type), intent(in)  matrix_b 
)

Adds matrix_b to matrix_a.

Parameters
matrix_a...
matrix_b...
Author
Ole Schuett

Definition at line 691 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_multiply()

subroutine, public dbm_api::dbm_multiply ( logical, intent(in)  transa,
logical, intent(in)  transb,
real(kind=dp), intent(in)  alpha,
type(dbm_type), intent(in)  matrix_a,
type(dbm_type), intent(in)  matrix_b,
real(kind=dp), intent(in)  beta,
type(dbm_type), intent(inout)  matrix_c,
logical, intent(in), optional  retain_sparsity,
real(kind=dp), intent(in), optional  filter_eps,
integer(int_8), intent(out), optional  flop 
)

Computes matrix product: matrix_c = alpha * matrix_a * matrix_b + beta * matrix_c.

Parameters
transa...
transb...
alpha...
matrix_a...
matrix_b...
beta...
matrix_c...
retain_sparsity...
filter_eps...
flop...
Author
Ole Schuett

Definition at line 733 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_iterator_start()

subroutine, public dbm_api::dbm_iterator_start ( type(dbm_iterator), intent(out)  iterator,
type(dbm_type), intent(in)  matrix 
)

Creates an iterator for the blocks of the given matrix. The iteration order is not stable.

Parameters
iterator...
matrix...
Author
Ole Schuett

Definition at line 836 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_iterator_num_blocks()

integer function, public dbm_api::dbm_iterator_num_blocks ( type(dbm_iterator), intent(in)  iterator)

Returns number of blocks the iterator will provide to calling thread.

Parameters
iterator...
Returns
...
Author
Ole Schuett

Definition at line 861 of file dbm_api.F.

◆ dbm_iterator_blocks_left()

logical function, public dbm_api::dbm_iterator_blocks_left ( type(dbm_iterator), intent(in)  iterator)

Tests whether the given iterator has any block left.

Parameters
iterator...
Returns
...
Author
Ole Schuett

Definition at line 883 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_iterator_next_block()

subroutine, public dbm_api::dbm_iterator_next_block ( type(dbm_iterator), intent(inout)  iterator,
integer, intent(out)  row,
integer, intent(out)  column,
real(dp), dimension(:, :), intent(out), optional, pointer  block,
integer, intent(out), optional  row_size,
integer, intent(out), optional  col_size 
)

Returns the next block from the given iterator.

Parameters
iterator...
row...
column...
block...
row_size...
col_size...
Author
Ole Schuett

Definition at line 909 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_iterator_stop()

subroutine, public dbm_api::dbm_iterator_stop ( type(dbm_iterator), intent(inout)  iterator)

Releases the given iterator.

Parameters
iterator...
Author
Ole Schuett

Definition at line 947 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_checksum()

real(kind=dp) function, public dbm_api::dbm_checksum ( type(dbm_type), intent(in)  matrix)

Computes a checksum of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 968 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_maxabs()

real(kind=dp) function, public dbm_api::dbm_maxabs ( type(dbm_type), intent(inout)  matrix)

Returns the absolute value of the larges element of the entire given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 995 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_name()

character(len=default_string_length) function, public dbm_api::dbm_get_name ( type(dbm_type), intent(in)  matrix)

Returns the name of the matrix of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1022 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_nze()

pure integer function, public dbm_api::dbm_get_nze ( type(dbm_type), intent(in)  matrix)

Returns the number of local Non-Zero Elements of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1056 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_num_blocks()

pure integer function, public dbm_api::dbm_get_num_blocks ( type(dbm_type), intent(in)  matrix)

Returns the number of local blocks of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1079 of file dbm_api.F.

◆ dbm_get_row_block_sizes()

integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_get_row_block_sizes ( type(dbm_type), intent(in)  matrix)

Returns the row block sizes of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1102 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_col_block_sizes()

integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_get_col_block_sizes ( type(dbm_type), intent(in)  matrix)

Returns the column block sizes of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1129 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_local_rows()

subroutine, public dbm_api::dbm_get_local_rows ( type(dbm_type), intent(in)  matrix,
integer, dimension(:), allocatable  local_rows 
)

Returns the local row block sizes of the given matrix.

Parameters
matrix...
local_rows...
Returns
...
Author
Ole Schuett

Definition at line 1157 of file dbm_api.F.

◆ dbm_get_local_cols()

subroutine, public dbm_api::dbm_get_local_cols ( type(dbm_type), intent(in)  matrix,
integer, dimension(:), allocatable  local_cols 
)

Returns the local column block sizes of the given matrix.

Parameters
matrix...
local_cols...
Returns
...
Author
Ole Schuett

Definition at line 1194 of file dbm_api.F.

◆ dbm_get_stored_coordinates()

subroutine, public dbm_api::dbm_get_stored_coordinates ( type(dbm_type), intent(in)  matrix,
integer, intent(in)  row,
integer, intent(in)  column,
integer, intent(out)  processor 
)

Returns the MPI rank on which the given block should be stored.

Parameters
matrix...
row...
column...
processor...
Author
Ole Schuett

Definition at line 1232 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_get_distribution()

type(dbm_distribution_obj) function, public dbm_api::dbm_get_distribution ( type(dbm_type), intent(in)  matrix)

Returns the distribution of the given matrix.

Parameters
matrix...
Returns
...
Author
Ole Schuett

Definition at line 1265 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_distribution_new()

subroutine, public dbm_api::dbm_distribution_new ( type(dbm_distribution_obj), intent(out)  dist,
class(mp_comm_type), intent(in)  mp_comm,
integer, dimension(:), intent(in), pointer, contiguous  row_dist_block,
integer, dimension(:), intent(in), pointer, contiguous  col_dist_block 
)

Creates a new two dimensional distribution.

Parameters
dist...
mp_comm...
row_dist_block...
col_dist_block...
Author
Ole Schuett

Definition at line 1293 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_distribution_hold()

subroutine, public dbm_api::dbm_distribution_hold ( type(dbm_distribution_obj)  dist)

Increases the reference counter of the given distribution.

Parameters
dist...
Author
Ole Schuett

Definition at line 1377 of file dbm_api.F.

◆ dbm_distribution_release()

subroutine, public dbm_api::dbm_distribution_release ( type(dbm_distribution_obj)  dist)

Decreases the reference counter of the given distribution.

Parameters
dist...
Author
Ole Schuett

Definition at line 1400 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_distribution_row_dist()

integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_distribution_row_dist ( type(dbm_distribution_obj), intent(in)  dist)

Returns the rows of the given distribution.

Parameters
dist...
Returns
...
Author
Ole Schuett

Definition at line 1424 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_distribution_col_dist()

integer function, dimension(:), pointer, contiguous, public dbm_api::dbm_distribution_col_dist ( type(dbm_distribution_obj), intent(in)  dist)

Returns the columns of the given distribution.

Parameters
dist...
Returns
...
Author
Ole Schuett

Definition at line 1454 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_library_init()

subroutine, public dbm_api::dbm_library_init ( void  )

Initialize DBM library.

Author
Ole Schuett

Definition at line 1482 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_library_finalize()

subroutine, public dbm_api::dbm_library_finalize ( void  )

Finalize DBM library.

Author
Ole Schuett

Definition at line 1496 of file dbm_api.F.

Here is the caller graph for this function:

◆ dbm_library_print_stats()

subroutine, public dbm_api::dbm_library_print_stats ( type(mp_comm_type), intent(in)  mpi_comm,
integer, intent(in)  output_unit 
)

Print DBM library statistics.

Parameters
mpi_comm...
output_unit...
Author
Ole Schuett

Definition at line 1512 of file dbm_api.F.

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