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

Distributed matrix module. More...

Data Types

type  distributedmatrix
 Distributed matrix type. More...
 

Functions/Subroutines

subroutine construct_mat_distributed (this)
 
subroutine initialize_struct_distributed (this, matrix_size, matrix_type, block_size)
 
subroutine insert_matelem_distributed (this, i, j, coefficient, class, thresh)
 
subroutine get_matelem_distributed (this, idx, i, j, coeff)
 
subroutine setup_diag_matrix (this, matrix_size, matrix_type, block_size)
 
logical function insert_into_diag_matrix (this, row, column, coefficient)
 This inserts an element into the hard storage which is considered the final location before diagonalization It also checks wherther the element exists within the aloowed range and tells us if it was successfully inserted. More...
 
subroutine update_continuum_distributed (this, force_update)
 
subroutine convert_temp_cache_to_array (this, matrix_ij, matrix_coeffs)
 
subroutine update_l2_distributed (this, force_update, count_)
 
subroutine clear_matrix (this)
 
subroutine finalize_matrix_self (this)
 
subroutine finalize_distributed (this)
 
subroutine destroy_matrix (this)
 
subroutine print_distributed (this)
 
subroutine clear_distributed (this)
 
subroutine destroy_distributed (this)
 
subroutine update_counter (this)
 

Detailed Description

Distributed matrix module.

Authors
A Al-Refaie
Date
2017

Provides DistributedMatrix used by parallel diagonalizers. Other specialized matrix types are based on this. See SCALAPACKMatrix_module::SCALAPACKMatrix and SLEPCMatrix_module::SLEPCMatrix.

Note
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.

Function/Subroutine Documentation

◆ clear_distributed()

subroutine distributedmatrix_module::clear_distributed ( class(distributedmatrix this)
private

Definition at line 413 of file DistributedMatrix_module.f90.

◆ clear_matrix()

subroutine distributedmatrix_module::clear_matrix ( class(distributedmatrix this)
private

Definition at line 379 of file DistributedMatrix_module.f90.

◆ construct_mat_distributed()

subroutine distributedmatrix_module::construct_mat_distributed ( class(distributedmatrix this)
private

Definition at line 95 of file DistributedMatrix_module.f90.

◆ convert_temp_cache_to_array()

subroutine distributedmatrix_module::convert_temp_cache_to_array ( class(distributedmatrix this,
integer(longint), dimension(:,:), intent(inout)  matrix_ij,
real(wp), dimension(:), intent(inout)  matrix_coeffs 
)
private

Definition at line 255 of file DistributedMatrix_module.f90.

◆ destroy_distributed()

subroutine distributedmatrix_module::destroy_distributed ( class(distributedmatrix this)
private

Definition at line 422 of file DistributedMatrix_module.f90.

◆ destroy_matrix()

subroutine distributedmatrix_module::destroy_matrix ( class(distributedmatrix this)
private

Definition at line 398 of file DistributedMatrix_module.f90.

◆ finalize_distributed()

subroutine distributedmatrix_module::finalize_distributed ( class(distributedmatrix this)
private

Definition at line 389 of file DistributedMatrix_module.f90.

◆ finalize_matrix_self()

subroutine distributedmatrix_module::finalize_matrix_self ( class(distributedmatrix this)
private

Definition at line 384 of file DistributedMatrix_module.f90.

◆ get_matelem_distributed()

subroutine distributedmatrix_module::get_matelem_distributed ( class(distributedmatrix this,
integer, intent(in)  idx,
integer, intent(out)  i,
integer, intent(out)  j,
real(wp), intent(out)  coeff 
)
private

Definition at line 159 of file DistributedMatrix_module.f90.

◆ initialize_struct_distributed()

subroutine distributedmatrix_module::initialize_struct_distributed ( class(distributedmatrix this,
integer, intent(in)  matrix_size,
integer, intent(in)  matrix_type,
integer, intent(in)  block_size 
)
private

Definition at line 109 of file DistributedMatrix_module.f90.

◆ insert_into_diag_matrix()

logical function distributedmatrix_module::insert_into_diag_matrix ( class(distributedmatrix this,
integer, intent(in)  row,
integer, intent(in)  column,
real(wp), intent(in)  coefficient 
)
private

This inserts an element into the hard storage which is considered the final location before diagonalization It also checks wherther the element exists within the aloowed range and tells us if it was successfully inserted.

Definition at line 180 of file DistributedMatrix_module.f90.

◆ insert_matelem_distributed()

subroutine distributedmatrix_module::insert_matelem_distributed ( class(distributedmatrix this,
integer, intent(in)  i,
integer, intent(in)  j,
real(wp), intent(in)  coefficient,
integer, intent(in)  class,
real(wp), intent(in)  thresh 
)
private

Definition at line 131 of file DistributedMatrix_module.f90.

◆ print_distributed()

subroutine distributedmatrix_module::print_distributed ( class(distributedmatrix this)
private

Definition at line 403 of file DistributedMatrix_module.f90.

◆ setup_diag_matrix()

subroutine distributedmatrix_module::setup_diag_matrix ( class(distributedmatrix this,
integer, intent(in)  matrix_size,
integer, intent(in)  matrix_type,
integer, intent(in)  block_size 
)
private

Definition at line 172 of file DistributedMatrix_module.f90.

◆ update_continuum_distributed()

subroutine distributedmatrix_module::update_continuum_distributed ( class(distributedmatrix this,
logical, intent(in)  force_update 
)
private

Definition at line 191 of file DistributedMatrix_module.f90.

◆ update_counter()

subroutine distributedmatrix_module::update_counter ( class(distributedmatrix this)
private

Definition at line 432 of file DistributedMatrix_module.f90.

◆ update_l2_distributed()

subroutine distributedmatrix_module::update_l2_distributed ( class(distributedmatrix this,
logical, intent(in)  force_update,
integer, optional  count_ 
)
private

Definition at line 275 of file DistributedMatrix_module.f90.