petsc_preallocation_procedures Submodule

Contains module procedures associated with the petsc preallocation data class



Module Functions

pure module function isAssembled(this) result(assembled)

Return assembly status of preallocation data

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value logical

pure module function getNumNonzerosDiag(this) result(numNZDiag)

Return number of nonzeros in the diagonal part of each row

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value integer(kind=ik), allocatable, dimension(:)

pure module function getNumNonzerosOffDiag(this) result(numNZODiag)

Return number of nonzeros in the off-diagonal part of each row

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value integer(kind=ik), allocatable, dimension(:)

pure module function getLocalNumDoFs(this) result(locNumDoFs)

Return local number of DoFs in unknown vector

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value integer(kind=ik)

pure module function getTotalNumDoFs(this) result(totalNumDoFs)

Return total number of DoFs in unknown vector

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value integer(kind=ik)

pure module function getLocalDoFOffset(this) result(offset)

Return offset of the start of this processors local vector in the global vector

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(in) :: this

Return Value integer(kind=ik)


Module Subroutines

pure module subroutine initPetscPreallocationData(this, indexingObj, procRank)

Petsc preallocation data object initialization routine

Arguments

Type IntentOptional 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

pure module subroutine addRowDataToPattern(this, rowData)

Add sparse row data structure to total sparsity pattern

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(inout) :: this
type(SparseRowData), intent(in) :: rowData

pure module subroutine assembleData(this)

Assemble preallocation data

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(inout) :: this

module subroutine deallocatePattern(this)

Deallocates the COO matrix pattern

Arguments

Type IntentOptional Attributes Name
class(PETScPreallocationData), intent(inout) :: this