# PCModifySubMatrices

Calls an optional user-defined routine within certain preconditioners if one has been set with PCSetModifySubMarices().

### Synopsis

    #include "petscksp.h"
    PetscErrorCode PETSCKSP_DLLEXPORT PCModifySubMatrices(PC pc,PetscInt nsub,const IS row[],const IS col[],Mat submat[],void *ctx)

Collective on PC

### Input Parameters

| pc | - the preconditioner context
| nsub | - the number of local submatrices
| row | - an array of index sets that contain the global row numbers that comprise each local submatrix
| col | - an array of index sets that contain the global column numbers that comprise each local submatrix
| submat | - array of local submatrices
| ctx | - optional user-defined context for private data for the user-defined routine (may be null)

### Output Parameter

submat -array of local submatrices (the entries of which may have been modified)

### Notes

The user should NOT generally call this routine, as it will automatically be called within certain preconditioners (currently block Jacobi, additive Schwarz) if set.

The basic submatrices are extracted from the preconditioner matrix as usual; the user can then alter these (for example, to set different boundary conditions for each submatrix) before they are used for the local solves.

### Keywords

PC, modify, submatrices

### See Also

PCSetModifySubMatrices()

Level:developer
Location:src/ksp/pc/interface/precon.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages