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

Matrix cache module. More...

Data Types

type  matrixarray
 
type  matrixcache
 This handles the matrix elements and also expands the vector size if we have reached max capacity. More...
 

Functions/Subroutines

subroutine check_constructed (this)
 
integer function get_chunk_idx (this, idx)
 
subroutine construct (this, expand_size_)
 
subroutine insert_into_cache (this, i, j, coefficient)
 
subroutine get_local_mat (this, idx, mat_id, local_index)
 
subroutine get_from_cache (this, idx, i, j, coeff)
 
subroutine expand_array (this)
 
subroutine destroy_matrix_array (this)
 
subroutine construct_array (this, capacity)
 
subroutine clear_array (this)
 
subroutine insert_into_array (this, i, j, coeff)
 
subroutine get_from_array (this, idx, i, j, coeff)
 
subroutine expand_capacity (this, capacity)
 
logical function check_bounds (this, i)
 
logical function is_empty (this)
 
subroutine clear (this)
 
integer function get_size (this)
 
subroutine shrink_capacity (this)
 
subroutine clear_and_shrink (this)
 
subroutine destroy_cache (this)
 
subroutine print_matelems (this)
 
subroutine qsort_matelem (this)
 
recursive subroutine quick_sort_function (this, start_idx, end_idx)
 
subroutine partition_function (this, marker, start_idx, end_idx)
 

Detailed Description

Matrix cache 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 matrixcache_module::check_bounds ( class(matrixcache), intent(in)  this,
integer, intent(in)  i 
)
private

Definition at line 332 of file MatrixCache_module.f90.

◆ check_constructed()

subroutine matrixcache_module::check_constructed ( class(matrixcache this)
private

Definition at line 95 of file MatrixCache_module.f90.

◆ clear()

subroutine matrixcache_module::clear ( class(matrixcache this)
private

Definition at line 356 of file MatrixCache_module.f90.

◆ clear_and_shrink()

subroutine matrixcache_module::clear_and_shrink ( class(matrixcache this)
private

Definition at line 408 of file MatrixCache_module.f90.

◆ clear_array()

subroutine matrixcache_module::clear_array ( class(matrixarray this)
private

Definition at line 285 of file MatrixCache_module.f90.

◆ construct()

subroutine matrixcache_module::construct ( class(matrixcache this,
integer, intent(in), optional  expand_size_ 
)
private

Definition at line 118 of file MatrixCache_module.f90.

◆ construct_array()

subroutine matrixcache_module::construct_array ( class(matrixarray this,
integer, intent(in)  capacity 
)
private

Definition at line 270 of file MatrixCache_module.f90.

◆ destroy_cache()

subroutine matrixcache_module::destroy_cache ( class(matrixcache this)
private

Definition at line 417 of file MatrixCache_module.f90.

◆ destroy_matrix_array()

subroutine matrixcache_module::destroy_matrix_array ( class(matrixarray this)
private

Definition at line 250 of file MatrixCache_module.f90.

◆ expand_array()

subroutine matrixcache_module::expand_array ( class(matrixcache this)
private

Definition at line 222 of file MatrixCache_module.f90.

◆ expand_capacity()

subroutine matrixcache_module::expand_capacity ( class(matrixcache this,
integer, intent(in)  capacity 
)
private

Definition at line 321 of file MatrixCache_module.f90.

◆ get_chunk_idx()

integer function matrixcache_module::get_chunk_idx ( class(matrixcache this,
integer, intent(in)  idx 
)
private

Definition at line 106 of file MatrixCache_module.f90.

◆ get_from_array()

subroutine matrixcache_module::get_from_array ( class(matrixarray), intent(in)  this,
integer, intent(in)  idx,
integer, intent(out)  i,
integer, intent(out)  j,
real(wp), intent(out)  coeff 
)
private

Definition at line 306 of file MatrixCache_module.f90.

◆ get_from_cache()

subroutine matrixcache_module::get_from_cache ( class(matrixcache this,
integer, intent(in)  idx,
integer, intent(out)  i,
integer, intent(out)  j,
real(wp), intent(out)  coeff 
)
private

Definition at line 202 of file MatrixCache_module.f90.

◆ get_local_mat()

subroutine matrixcache_module::get_local_mat ( class(matrixcache this,
integer, intent(in)  idx,
integer, intent(out)  mat_id,
integer, intent(out)  local_index 
)
private

Definition at line 184 of file MatrixCache_module.f90.

◆ get_size()

integer function matrixcache_module::get_size ( class(matrixcache), intent(in)  this)
private

Definition at line 366 of file MatrixCache_module.f90.

◆ insert_into_array()

subroutine matrixcache_module::insert_into_array ( class(matrixarray this,
integer, intent(in)  i,
integer, intent(in)  j,
real(wp), intent(in)  coeff 
)
private

Definition at line 293 of file MatrixCache_module.f90.

◆ insert_into_cache()

subroutine matrixcache_module::insert_into_cache ( class(matrixcache this,
integer, intent(in)  i,
integer, intent(in)  j,
real(wp), intent(in)  coefficient 
)
private

Definition at line 159 of file MatrixCache_module.f90.

◆ is_empty()

logical function matrixcache_module::is_empty ( class(matrixcache), intent(in)  this)
private

Definition at line 348 of file MatrixCache_module.f90.

◆ partition_function()

subroutine matrixcache_module::partition_function ( class(matrixcache this,
integer, intent(out)  marker,
integer, intent(in)  start_idx,
integer, intent(in)  end_idx 
)
private

Definition at line 485 of file MatrixCache_module.f90.

◆ print_matelems()

subroutine matrixcache_module::print_matelems ( class(matrixcache this)
private

Definition at line 437 of file MatrixCache_module.f90.

◆ qsort_matelem()

subroutine matrixcache_module::qsort_matelem ( class(matrixcache this)
private

Definition at line 458 of file MatrixCache_module.f90.

◆ quick_sort_function()

recursive subroutine matrixcache_module::quick_sort_function ( class(matrixcache this,
integer, intent(in)  start_idx,
integer, intent(in)  end_idx 
)
private

Definition at line 469 of file MatrixCache_module.f90.

◆ shrink_capacity()

subroutine matrixcache_module::shrink_capacity ( class(matrixcache this)
private

Definition at line 374 of file MatrixCache_module.f90.