MPI-SCATCI  2.0
An MPI version of SCATCI
basematrix_module Module Reference

Base matrix module. More...

Data Types

type  basematrix
 Base matrix type. More...
 
interface  generic_clear
 
interface  generic_construct
 
interface  generic_destroy
 
interface  generic_get
 
interface  generic_insert
 

Functions/Subroutines

subroutine check_constructed (this)
 Check that matrix is constructed. More...
 
subroutine construct (this, mat_mode, threshold)
 Construct the matrix. More...
 
subroutine exclude_row_column (this, row_column)
 ? More...
 
subroutine initialize_matrix_structure (this, matrix_size, matrix_type, block_size)
 ? More...
 
subroutine set_options (this, option_val)
 ? More...
 
subroutine initialize_struct_self (this, matrix_size, matrix_type, block_size)
 Initialize the type. More...
 
subroutine insert_matrix_element (this, i, j, coefficient, class_, thresh_)
 Set matrix element. More...
 
subroutine store_diagonal (this, i, coeff)
 Set diagonal element. More...
 
subroutine get_matrix_element (this, idx, i, j, coeff)
 Retrieve matrix element. More...
 
subroutine update_continuum (this, force_update)
 ? More...
 
subroutine update_pure_l2 (this, force_update, count_)
 ? More...
 
subroutine finalize_matrix (this)
 ? More...
 
subroutine expand_capacity (this, capacity)
 ? More...
 
logical function check_bounds (this, i)
 ? More...
 
logical function is_empty (this)
 Determine if matrix is empty. More...
 
subroutine clear (this)
 Clear matrix. More...
 
integer function get_size (this)
 Get matrix size (rank) More...
 
integer function get_matrix_size (this)
 Get matrix size (number of elements) More...
 
subroutine print_mat (this)
 Print matrix. More...
 
subroutine destroy (this)
 Destroy matrix. More...
 
subroutine update_matrix (this)
 Update matrix. More...
 

Detailed Description

Base matrix module.

Authors
A Al-Refaie
Date
2017
Note
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.

Function/Subroutine Documentation

◆ check_bounds()

logical function basematrix_module::check_bounds ( class(basematrix this,
integer, intent(in)  i 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 386 of file BaseMatrix_module.f90.

◆ check_constructed()

subroutine basematrix_module::check_constructed ( class(basematrix this)
private

Check that matrix is constructed.

Authors
A Al-Refaie
Date
2017

Check that matrix is constructed; hard stop if not.

Definition at line 146 of file BaseMatrix_module.f90.

◆ clear()

subroutine basematrix_module::clear ( class(basematrix this)
private

Clear matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 419 of file BaseMatrix_module.f90.

◆ construct()

subroutine basematrix_module::construct ( class(basematrix this,
integer, intent(in)  mat_mode,
real(wp), intent(in), optional  threshold 
)
private

Construct the matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 161 of file BaseMatrix_module.f90.

◆ destroy()

subroutine basematrix_module::destroy ( class(basematrix this)
private

Destroy matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 486 of file BaseMatrix_module.f90.

◆ exclude_row_column()

subroutine basematrix_module::exclude_row_column ( class(basematrix this,
integer, intent(in)  row_column 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 187 of file BaseMatrix_module.f90.

◆ expand_capacity()

subroutine basematrix_module::expand_capacity ( class(basematrix this,
integer, intent(in)  capacity 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 376 of file BaseMatrix_module.f90.

◆ finalize_matrix()

subroutine basematrix_module::finalize_matrix ( class(basematrix this)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 367 of file BaseMatrix_module.f90.

◆ get_matrix_element()

subroutine basematrix_module::get_matrix_element ( class(basematrix this,
integer, intent(in)  idx,
integer, intent(out)  i,
integer, intent(out)  j,
real(wp), intent(out)  coeff 
)
private

Retrieve matrix element.

Authors
A Al-Refaie
Date
2017

Definition at line 329 of file BaseMatrix_module.f90.

◆ get_matrix_size()

integer function basematrix_module::get_matrix_size ( class(basematrix this)
private

Get matrix size (number of elements)

Authors
A Al-Refaie
Date
2017

Definition at line 453 of file BaseMatrix_module.f90.

◆ get_size()

integer function basematrix_module::get_size ( class(basematrix this)
private

Get matrix size (rank)

Authors
A Al-Refaie
Date
2017

Definition at line 441 of file BaseMatrix_module.f90.

◆ initialize_matrix_structure()

subroutine basematrix_module::initialize_matrix_structure ( class(basematrix this,
integer, intent(in)  matrix_size,
integer, intent(in)  matrix_type,
integer, intent(in)  block_size 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 203 of file BaseMatrix_module.f90.

◆ initialize_struct_self()

subroutine basematrix_module::initialize_struct_self ( class(basematrix this,
integer, intent(in)  matrix_size,
integer, intent(in)  matrix_type,
integer, intent(in)  block_size 
)
private

Initialize the type.

Authors
A Al-Refaie
Date
2017

Do nothing

Definition at line 249 of file BaseMatrix_module.f90.

◆ insert_matrix_element()

subroutine basematrix_module::insert_matrix_element ( class(basematrix this,
integer, intent(in)  i,
integer, intent(in)  j,
real(wp), intent(in)  coefficient,
integer, intent(in), optional  class_,
real(wp), intent(in), optional  thresh_ 
)
private

Set matrix element.

Authors
A Al-Refaie
Date
2017

Definition at line 259 of file BaseMatrix_module.f90.

◆ is_empty()

logical function basematrix_module::is_empty ( class(basematrix this)
private

Determine if matrix is empty.

Authors
A Al-Refaie
Date
2017

Check if there are no elements in the mastrix.

Definition at line 407 of file BaseMatrix_module.f90.

◆ print_mat()

subroutine basematrix_module::print_mat ( class(basematrix this)
private

Print matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 469 of file BaseMatrix_module.f90.

◆ set_options()

subroutine basematrix_module::set_options ( class(basematrix this,
class(options), intent(in)  option_val 
)
private

?

Authors
A Al-Refaie
Date
2017

Usually does nothing but some matrix formats may need more parameters in order to function.

Definition at line 237 of file BaseMatrix_module.f90.

◆ store_diagonal()

subroutine basematrix_module::store_diagonal ( class(basematrix this,
integer, intent(in)  i,
real(wp), intent(in)  coeff 
)
private

Set diagonal element.

Authors
A Al-Refaie
Date
2017

Definition at line 314 of file BaseMatrix_module.f90.

◆ update_continuum()

subroutine basematrix_module::update_continuum ( class(basematrix this,
logical, intent(in)  force_update 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 346 of file BaseMatrix_module.f90.

◆ update_matrix()

subroutine basematrix_module::update_matrix ( class(basematrix this)
private

Update matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 503 of file BaseMatrix_module.f90.

◆ update_pure_l2()

subroutine basematrix_module::update_pure_l2 ( class(basematrix this,
logical, intent(in)  force_update,
integer, optional  count_ 
)
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 356 of file BaseMatrix_module.f90.