#include "petscdmda.h" PetscErrorCode DMDASetBlockFills(DM da,const PetscInt *dfill,const PetscInt *ofill)Logically Collective on DMDA
da | - the distributed array | |
dfill | - the fill pattern in the diagonal block (may be NULL, means use dense block) | |
ofill | - the fill pattern in the off-diagonal blocks |
The format for dfill and ofill is a 2 dimensional dof by dof matrix with 1 entries representing coupling and 0 entries for missing coupling. For example
dfill[9] = {1, 0, 0,
1, 1, 0,
0, 1, 1}means that row 0 is coupled with only itself in the diagonal block, row 1 is coupled with itself and row 0 (in the diagonal block) and row 2 is coupled with itself and row 1 (in the diagonal block).
DMDASetGetMatrix() allows you to provide general code for those more complicated nonzero patterns then can be represented in the dfill, ofill format
Contributed by Glenn Hammond