Houses base coordinate list sparsity pattern
Return true if all elements with indices (row,column) are present in sparsity pattern
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(COOSparsityPattern), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in), | dimension(:) | :: | row |
Row indices |
|
integer(kind=ik), | intent(in), | dimension(:) | :: | column |
Column indices |
Return indices with given values of (row,column)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(COOSparsityPattern), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in), | dimension(:) | :: | row |
Row index |
|
integer(kind=ik), | intent(in), | dimension(:) | :: | column |
Column index |
COO sparsity pattern initialization routine
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(COOSparsityPattern), | intent(inout) | :: | this | |||
integer(kind=ik), | intent(in) | :: | numRows |
Matrix number of rows |
||
integer(kind=ik), | intent(in) | :: | numCols |
Matrix number of columns |
||
integer(kind=ik), | intent(in), | optional | :: | bufferSize |
Preallocated rolling buffer size |
|
integer(kind=ik), | intent(in), | optional | :: | rowOffset |
Row offset for distributed arrays |
Add entry if not already present
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(COOSparsityPattern), | intent(inout) | :: | this | |||
integer(kind=ik), | intent(in) | :: | row |
Row index |
||
integer(kind=ik), | intent(in) | :: | column |
Column Index |
Add entries from existing pattern that are not already present
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(COOSparsityPattern), | intent(inout) | :: | this | |||
type(COOSparsityPattern), | intent(in) | :: | pattern |
Pattern to add to this pattern |
||
integer(kind=ik), | intent(in), | dimension(:) | :: | rowOffset |
Array by which to offset pattern row indices before adding |
|
integer(kind=ik), | intent(in), | dimension(:) | :: | colOffset |
Array by which to offset pattern column indices before adding |
Coordinate list format sparsity pattern
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
integer(kind=ik), | public | :: | numNonZeros |
Total number of non-zero entries |
|||
integer(kind=ik), | public | :: | numRows |
Number of matrix rows |
|||
integer(kind=ik), | public | :: | numCols |
Number of matrix columns |
|||
integer(kind=ik), | public, | allocatable, dimension(:) | :: | rowIndex |
Array of non-zero row indices |
||
integer(kind=ik), | public, | allocatable, dimension(:) | :: | colIndex |
Array of non-zero column indices |
||
integer(kind=ik), | public | :: | bufferSize | ||||
integer(kind=ik), | public | :: | numAddedElements | ||||
logical, | private, | allocatable, dimension(:) | :: | addedRow | |||
logical, | private, | allocatable, dimension(:) | :: | addedCol | |||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | firstInstRow | |||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | firstInstCol | |||
type(IntArray), | private, | allocatable, dimension(:) | :: | rowGlobalIndices |
Element indices of each row |
||
integer(kind=ik), | private | :: | rowOffset |
procedure, public :: isDefined => isDefinedObject | |
procedure, public :: makeDefined => makeDefinedObject | |
procedure, public :: makeUndefined => makeUndefinedObject | |
procedure, public :: hasIndices | |
procedure, public :: findLocationOfIndices | |
procedure, public :: addEntry | |
procedure, public :: addPattern | |
procedure, public :: init => initCooSparsityPattern |