
Contains module procedures associated with the petsc controller class
Return true if PETSc objects have been created
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(in) | :: | this |
Getter for lastConvergedReason
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(in) | :: | this |
Getter for lastNumIterations
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(in) | :: | this |
PETSc controller initialization routine
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this | |||
| type(Indexing), | intent(in) | :: | indexingObj |
Indexing object used to initialize preallocation data |
||
| type(MPIController), | intent(in) | :: | mpiCont |
Reference MPI controller |
||
| type(SolverOptions), | intent(in) | :: | solOptions |
KSP solver options |
||
| integer(kind=ik), | intent(in), | optional | :: | numObjs |
Number of PETSc object groups |
Add sparse row data structure to total preallocation sparsity pattern
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this | |||
| type(SparseRowData), | intent(in) | :: | rowData |
Add row data to matrix, optionally multiplied by a real constant
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this | |||
| type(SparseRowData), | intent(in) | :: | rowData | |||
| real(kind=rk), | intent(in), | optional | :: | multConst | ||
| integer(kind=ik), | intent(in), | optional | :: | objGroup |
Assemble the preallocation object, create PETSc objects, and deallocate the preallocation object
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this |
Solve the equation petscMat * unknownVec = knownVec where the vectors are local to each processor - assembles and zeros out the matrix before/after the solve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | dimension(:) | :: | knownVec | ||
| real(kind=rk), | intent(out), | dimension(:) | :: | unknownVec | ||
| integer(kind=ik), | intent(in), | optional | :: | objGroup |
Finalizes PETSc and destroys all PETSc objects
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PETScController), | intent(inout) | :: | this |