DMDASetBlockFills#
Sets the fill pattern in each block for a multi-component problem of the matrix returned by DMCreateMatrix()
.
Synopsis#
#include "petscdmda.h"
PetscErrorCode DMDASetBlockFills(DM da, const PetscInt *dfill, const PetscInt *ofill)
Logically Collective
Input Parameters#
da - the
DMDA
dfill - the fill pattern in the diagonal block (may be
NULL
, means use dense block)ofill - the fill pattern in the off-diagonal blocks
Notes#
This only makes sense when you are doing multicomponent problems but using the
MATMPIAIJ
matrix format
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
See Also#
DMDA - Creating vectors for structured grids, DM
, DMDA
, DMCreateMatrix()
, DMDASetGetMatrix()
, DMSetMatrixPreallocateOnly()
, DMDASetBlockFillsSparse()
Level#
developer
Location#
Index of all DMDA routines
Table of Contents for all manual pages
Index of all manual pages