Object used to properly preallocate PETSc matrices
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
type(COOSparsityPattern), | private, | allocatable | :: | totalCOOPattern |
Total (across matrix terms) sparsity pattern |
||
integer(kind=ik), | private | :: | localDoFOffset |
Local process offset of degrees of freedom |
|||
integer(kind=ik), | private | :: | localNumDoFs |
Local number of degrees of freedom |
|||
integer(kind=ik), | private | :: | totalNumDoFs |
Total number of degrees of freedom |
|||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | rowNumNonzeros |
Number of nonzeros in each matrix row |
||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | rowNumNonzerosDiag |
Number of nonzeros in each row belonging to the local diagonal block |
||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | rowNumNonzerosOffDiag |
Number of nonzeros in each row not in the local diagonal block |
||
logical, | private | :: | assembled |
True if preallocation data is assembled and ready for processing by PETScController routines |
Getter for userDefined
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(in) | :: | this |
Set userDefined to .true.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Add sparse row data structure to total sparsity pattern
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(inout) | :: | this | |||
type(SparseRowData), | intent(in) | :: | rowData |
Assemble preallocation data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(inout) | :: | this |
Return assembly status of preallocation data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Return number of nonzeros in the diagonal part of each row
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Return number of nonzeros in the off-diagonal part of each row
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Return local number of DoFs in unknown vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Return total number of DoFs in unknown vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Return offset of the start of this processors local vector in the global vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(in) | :: | this |
Deallocates the COO matrix pattern
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(inout) | :: | this |
Petsc preallocation data object initialization routine
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PETScPreallocationData), | intent(inout) | :: | this | |||
type(Indexing), | intent(in) | :: | indexingObj |
Indexing object to retrieve DoF data from |
||
integer(kind=ik), | intent(in) | :: | procRank |
Current process rank |