MPI-SCATCI 2.0
An MPI version of SCATCI
Loading...
Searching...
No Matches
BaseMatrix_module::BaseMatrix Type Referenceabstract

Base matrix type. More...

Public Member Functions

procedure, public initialize_matrix_structure (this, matrix_size, matrix_type, block_size)
 ?
procedure, public construct (this, mat_mode, threshold)
 Construct the matrix.
procedure, public insert_matrix_element (this, i, j, coefficient, class_, thresh_)
 Set matrix element.
procedure, public get_matrix_element (this, idx, i, j, coeff)
 Retrieve matrix element.
procedure, public exclude_row_column (this, row_column)
 ?
procedure, public is_empty (this)
 Determine if matrix is empty.
procedure, public get_size (this)
 Get matrix size (rank)
procedure, public get_matrix_size (this)
 Get matrix size (number of elements)
procedure, public clear (this)
 Clear matrix.
procedure, public destroy (this)
 Destroy matrix.
procedure, public update_continuum (this, force_update)
 ?
procedure, public set_options (this, option_val)
 ?
procedure, public update_pure_L2 update_pure_l2
procedure, public finalize_matrix (this)
 ?
procedure, public store_diagonal (this, i, coeff)
 Set diagonal element.
procedure, public initialize_struct_self (this, matrix_size, matrix_type, block_size)
 Initialize the type.
procedure(generic_construct), deferred construct_self (this)
procedure(generic_insert), deferred insert_matelem_self (this, i, j, coefficient, class, thresh)
procedure(generic_get), deferred get_matelem_self (this, idx, i, j, coeff)
procedure(generic_clear), deferred clear_self (this)
procedure(generic_destroy), deferred destroy_self (this)
procedure, public expand_capacity (this, capacity)
 ?
procedure, public print (this)
 Print matrix.

Public Attributes

real(wp) threshold
integer matrix_type
integer matrix_indexing = MATRIX_INDEX_FORTRAN
integer matrix_mode
integer excluded_rowcol = 2000000000
logical constructed = .false.
 Number of elements in the array of both the integral and coefficients.
integer matrix_dimension
integer n = 0
integer block_size
logical remove_row_column = .false.
real(wp), dimension(:), allocatable diagonal
logical initialized = .false.

Private Member Functions

procedure, private check_bounds (this, i)
 ?
procedure, private check_constructed (this)
 Check that matrix is constructed.

Detailed Description

Base matrix type.

Authors
A Al-Refaie
Date
2017

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

Definition at line 47 of file BaseMatrix_module.f90.

Member Function/Subroutine Documentation

◆ check_bounds()

procedure, private BaseMatrix_module::BaseMatrix::check_bounds ( class(basematrix) this,
integer, intent(in) i )
private

?

Authors
A Al-Refaie
Date
2017

Definition at line 90 of file BaseMatrix_module.f90.

◆ check_constructed()

procedure, private BaseMatrix_module::BaseMatrix::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 91 of file BaseMatrix_module.f90.

◆ clear()

procedure, public BaseMatrix_module::BaseMatrix::clear ( class(basematrix) this)

Clear matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 71 of file BaseMatrix_module.f90.

◆ clear_self()

procedure(generic_clear), deferred BaseMatrix_module::BaseMatrix::clear_self ( class(basematrix) this)
pure virtual

Definition at line 84 of file BaseMatrix_module.f90.

◆ construct()

procedure, public BaseMatrix_module::BaseMatrix::construct ( class(basematrix) this,
integer, intent(in) mat_mode,
real(wp), intent(in), optional threshold )

Construct the matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 63 of file BaseMatrix_module.f90.

◆ construct_self()

procedure(generic_construct), deferred BaseMatrix_module::BaseMatrix::construct_self ( class(basematrix) this)
pure virtual

Definition at line 81 of file BaseMatrix_module.f90.

◆ destroy()

procedure, public BaseMatrix_module::BaseMatrix::destroy ( class(basematrix) this)

Destroy matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 72 of file BaseMatrix_module.f90.

◆ destroy_self()

procedure(generic_destroy), deferred BaseMatrix_module::BaseMatrix::destroy_self ( class(basematrix) this)
pure virtual

Definition at line 85 of file BaseMatrix_module.f90.

◆ exclude_row_column()

procedure, public BaseMatrix_module::BaseMatrix::exclude_row_column ( class(basematrix) this,
integer, intent(in) row_column )

?

Authors
A Al-Refaie
Date
2017

Definition at line 66 of file BaseMatrix_module.f90.

◆ expand_capacity()

procedure, public BaseMatrix_module::BaseMatrix::expand_capacity ( class(basematrix) this,
integer, intent(in) capacity )

?

Authors
A Al-Refaie
Date
2017

Definition at line 87 of file BaseMatrix_module.f90.

◆ finalize_matrix()

procedure, public BaseMatrix_module::BaseMatrix::finalize_matrix ( class(basematrix) this)

?

Authors
A Al-Refaie
Date
2017

Definition at line 77 of file BaseMatrix_module.f90.

◆ get_matelem_self()

procedure(generic_get), deferred BaseMatrix_module::BaseMatrix::get_matelem_self ( class(basematrix) this,
integer, intent(in) idx,
integer, intent(out) i,
integer, intent(out) j,
real(wp), intent(out) coeff )
pure virtual

Definition at line 83 of file BaseMatrix_module.f90.

◆ get_matrix_element()

procedure, public BaseMatrix_module::BaseMatrix::get_matrix_element ( class(basematrix) this,
integer, intent(in) idx,
integer, intent(out) i,
integer, intent(out) j,
real(wp), intent(out) coeff )

Retrieve matrix element.

Authors
A Al-Refaie
Date
2017

Definition at line 65 of file BaseMatrix_module.f90.

◆ get_matrix_size()

procedure, public BaseMatrix_module::BaseMatrix::get_matrix_size ( class(basematrix) this)

Get matrix size (number of elements)

Authors
A Al-Refaie
Date
2017

Definition at line 69 of file BaseMatrix_module.f90.

◆ get_size()

procedure, public BaseMatrix_module::BaseMatrix::get_size ( class(basematrix) this)

Get matrix size (rank)

Authors
A Al-Refaie
Date
2017

Definition at line 68 of file BaseMatrix_module.f90.

◆ initialize_matrix_structure()

procedure, public BaseMatrix_module::BaseMatrix::initialize_matrix_structure ( class(basematrix) this,
integer, intent(in) matrix_size,
integer, intent(in) matrix_type,
integer, intent(in) block_size )

?

Authors
A Al-Refaie
Date
2017

Definition at line 62 of file BaseMatrix_module.f90.

◆ initialize_struct_self()

procedure, public BaseMatrix_module::BaseMatrix::initialize_struct_self ( class(basematrix) this,
integer, intent(in) matrix_size,
integer, intent(in) matrix_type,
integer, intent(in) block_size )

Initialize the type.

Authors
A Al-Refaie
Date
2017

Do nothing

Definition at line 79 of file BaseMatrix_module.f90.

◆ insert_matelem_self()

procedure(generic_insert), deferred BaseMatrix_module::BaseMatrix::insert_matelem_self ( class(basematrix) this,
integer, intent(in) i,
integer, intent(in) j,
real(wp), intent(in) coefficient,
integer, intent(in) class,
real(wp), intent(in) thresh )
pure virtual

Definition at line 82 of file BaseMatrix_module.f90.

◆ insert_matrix_element()

procedure, public BaseMatrix_module::BaseMatrix::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_ )

Set matrix element.

Authors
A Al-Refaie
Date
2017

Definition at line 64 of file BaseMatrix_module.f90.

◆ is_empty()

procedure, public BaseMatrix_module::BaseMatrix::is_empty ( class(basematrix) this)

Determine if matrix is empty.

Authors
A Al-Refaie
Date
2017

Check if there are no elements in the mastrix.

Definition at line 67 of file BaseMatrix_module.f90.

◆ print()

procedure, public BaseMatrix_module::BaseMatrix::print ( class(basematrix) this)

Print matrix.

Authors
A Al-Refaie
Date
2017

Definition at line 88 of file BaseMatrix_module.f90.

◆ set_options()

procedure, public BaseMatrix_module::BaseMatrix::set_options ( class(basematrix) this,
class(options), intent(in) option_val )

?

Authors
A Al-Refaie
Date
2017

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

Definition at line 75 of file BaseMatrix_module.f90.

◆ store_diagonal()

procedure, public BaseMatrix_module::BaseMatrix::store_diagonal ( class(basematrix) this,
integer, intent(in) i,
real(wp), intent(in) coeff )

Set diagonal element.

Authors
A Al-Refaie
Date
2017

Definition at line 78 of file BaseMatrix_module.f90.

◆ update_continuum()

procedure, public BaseMatrix_module::BaseMatrix::update_continuum ( class(basematrix) this,
logical, intent(in) force_update )

?

Authors
A Al-Refaie
Date
2017

Definition at line 74 of file BaseMatrix_module.f90.

◆ update_pure_L2()

procedure, public BaseMatrix_module::BaseMatrix::update_pure_L2

Definition at line 76 of file BaseMatrix_module.f90.

Member Data Documentation

◆ block_size

integer BaseMatrix_module::BaseMatrix::block_size

Definition at line 57 of file BaseMatrix_module.f90.

◆ constructed

logical BaseMatrix_module::BaseMatrix::constructed = .false.

Number of elements in the array of both the integral and coefficients.

Definition at line 54 of file BaseMatrix_module.f90.

◆ diagonal

real(wp), dimension(:), allocatable BaseMatrix_module::BaseMatrix::diagonal

Definition at line 59 of file BaseMatrix_module.f90.

◆ excluded_rowcol

integer BaseMatrix_module::BaseMatrix::excluded_rowcol = 2000000000

Definition at line 52 of file BaseMatrix_module.f90.

◆ initialized

logical BaseMatrix_module::BaseMatrix::initialized = .false.

Definition at line 60 of file BaseMatrix_module.f90.

◆ matrix_dimension

integer BaseMatrix_module::BaseMatrix::matrix_dimension

Definition at line 55 of file BaseMatrix_module.f90.

◆ matrix_indexing

integer BaseMatrix_module::BaseMatrix::matrix_indexing = MATRIX_INDEX_FORTRAN

Definition at line 50 of file BaseMatrix_module.f90.

◆ matrix_mode

integer BaseMatrix_module::BaseMatrix::matrix_mode

Definition at line 51 of file BaseMatrix_module.f90.

◆ matrix_type

integer BaseMatrix_module::BaseMatrix::matrix_type

Definition at line 49 of file BaseMatrix_module.f90.

◆ n

integer BaseMatrix_module::BaseMatrix::n = 0

Definition at line 56 of file BaseMatrix_module.f90.

◆ remove_row_column

logical BaseMatrix_module::BaseMatrix::remove_row_column = .false.

Definition at line 58 of file BaseMatrix_module.f90.

◆ threshold

real(wp) BaseMatrix_module::BaseMatrix::threshold

Definition at line 48 of file BaseMatrix_module.f90.


The documentation for this type was generated from the following file: