MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
SLEPCMatrix_module Module Reference

SLEPc matrix module. More...

Data Types

type  CSRFormat
type  SLEPCMatrix

Functions/Subroutines

subroutine, public initialize_slepc
 Initialize SLEPc.
subroutine construct_csr (this, num_cols)
subroutine destroy_csr (this)
subroutine sort_csr (this)
pointer get_PETSC_Matrix (this)
subroutine create_PETSC_mat (this, matrix_size, matrix_type)
subroutine destroy_PETSC_mat (this)
subroutine Shuffle (a)
subroutine initialize_struct_SLEPC (this, matrix_size, matrix_type, block_size)
subroutine get_matelem_SLEPC (this, idx, i, j, coeff)
subroutine print_nonzeros (this)
logical function compress_cache_to_csr_format (this, matrix_cache, csr_matrix)
logical function insert_into_hard_cache (this, row, column, coefficient)
 Inserts an element into the hard storage which is considered the final location before diagonalization.
subroutine insert_csr_into_hard_cache (this, csr)
subroutine finalize_matrix_SLEPC (this)
subroutine print_SLEPC (this)
subroutine clear_SLEPC (this)
subroutine destroy_SLEPC (this)
recursive subroutine QsortCSR (a, coeff)
subroutine Partition (a, coeff, marker)

Detailed Description

SLEPc matrix module.

Authors
A Al-Refaie
Date
2017

This module is built in only when SLEPc library is available.

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

Function/Subroutine Documentation

◆ clear_SLEPC()

subroutine SLEPCMatrix_module::clear_SLEPC ( class(slepcmatrix) this)
private

Definition at line 664 of file SLEPCMatrix_module.F90.

◆ compress_cache_to_csr_format()

logical function SLEPCMatrix_module::compress_cache_to_csr_format ( class(slepcmatrix) this,
class(matrixcache) matrix_cache,
type(csrformat), dimension(:), intent(out), allocatable csr_matrix )
private

Definition at line 449 of file SLEPCMatrix_module.F90.

◆ construct_csr()

subroutine SLEPCMatrix_module::construct_csr ( class(csrformat) this,
integer, intent(in) num_cols )
private

Definition at line 129 of file SLEPCMatrix_module.F90.

◆ create_PETSC_mat()

subroutine SLEPCMatrix_module::create_PETSC_mat ( class(slepcmatrix) this,
intent(in) matrix_size,
integer, intent(in) matrix_type )
private

Definition at line 168 of file SLEPCMatrix_module.F90.

◆ destroy_csr()

subroutine SLEPCMatrix_module::destroy_csr ( type(csrformat) this)
private

Definition at line 142 of file SLEPCMatrix_module.F90.

◆ destroy_PETSC_mat()

subroutine SLEPCMatrix_module::destroy_PETSC_mat ( class(slepcmatrix) this)
private

Definition at line 191 of file SLEPCMatrix_module.F90.

◆ destroy_SLEPC()

subroutine SLEPCMatrix_module::destroy_SLEPC ( class(slepcmatrix) this)
private

Definition at line 672 of file SLEPCMatrix_module.F90.

◆ finalize_matrix_SLEPC()

subroutine SLEPCMatrix_module::finalize_matrix_SLEPC ( class(slepcmatrix) this)
private

Definition at line 634 of file SLEPCMatrix_module.F90.

◆ get_matelem_SLEPC()

subroutine SLEPCMatrix_module::get_matelem_SLEPC ( class(slepcmatrix) this,
integer, intent(in) idx,
integer, intent(out) i,
integer, intent(out) j,
real(wp), intent(out) coeff )
private

Definition at line 424 of file SLEPCMatrix_module.F90.

◆ get_PETSC_Matrix()

pointer SLEPCMatrix_module::get_PETSC_Matrix ( class(slepcmatrix) this)
private

Definition at line 159 of file SLEPCMatrix_module.F90.

◆ initialize_slepc()

subroutine, public SLEPCMatrix_module::initialize_slepc

Initialize SLEPc.

Authors
J Benda
Date
2019

SLEPc needs to be initialized by all processes at once. Originally, it was being initialized in the SLEPc matrix init routine, but since there are now multiple concurrent diagonalizations and not all of them need to use SLEPc, this needs to be separated out.

Definition at line 116 of file SLEPCMatrix_module.F90.

◆ initialize_struct_SLEPC()

subroutine SLEPCMatrix_module::initialize_struct_SLEPC ( class(slepcmatrix) this,
integer, intent(in) matrix_size,
integer, intent(in) matrix_type,
integer, intent(in) block_size )
private

Definition at line 224 of file SLEPCMatrix_module.F90.

◆ insert_csr_into_hard_cache()

subroutine SLEPCMatrix_module::insert_csr_into_hard_cache ( class(slepcmatrix) this,
class(csrformat), dimension(:), intent(in) csr )
private

Definition at line 607 of file SLEPCMatrix_module.F90.

◆ insert_into_hard_cache()

logical function SLEPCMatrix_module::insert_into_hard_cache ( class(slepcmatrix) this,
integer, intent(in) row,
integer, intent(in) column,
real(wp), intent(in) coefficient )
private

Inserts an element into the hard storage which is considered the final location before diagonalization.

Authors
A Al-Refaie
Date
2017

It also checks wherther the element exists within the aloowed range and tells us if it was successfully inserted.

Definition at line 565 of file SLEPCMatrix_module.F90.

◆ Partition()

subroutine SLEPCMatrix_module::Partition ( dimension(:) a,
dimension(:) coeff,
integer, intent(out) marker )
private

Definition at line 694 of file SLEPCMatrix_module.F90.

◆ print_nonzeros()

subroutine SLEPCMatrix_module::print_nonzeros ( class(slepcmatrix) this)
private

Definition at line 438 of file SLEPCMatrix_module.F90.

◆ print_SLEPC()

subroutine SLEPCMatrix_module::print_SLEPC ( class(slepcmatrix) this)
private

Definition at line 655 of file SLEPCMatrix_module.F90.

◆ QsortCSR()

recursive subroutine SLEPCMatrix_module::QsortCSR ( dimension(:) a,
dimension(:) coeff )
private

Definition at line 680 of file SLEPCMatrix_module.F90.

◆ Shuffle()

subroutine SLEPCMatrix_module::Shuffle ( dimension(:), intent(inout) a)
private

Definition at line 207 of file SLEPCMatrix_module.F90.

◆ sort_csr()

subroutine SLEPCMatrix_module::sort_csr ( class(csrformat) this)
private

Definition at line 151 of file SLEPCMatrix_module.F90.