# DASetBlockFills

Sets the fill pattern in each block for a multi-component problem of the matrix returned by DAGetMatrix().

### Synopsis

    #include "petscda.h"
    #include "petscmat.h"
    PetscErrorCode PETSCDM_DLLEXPORT DASetBlockFills(DA da,PetscInt *dfill,PetscInt *ofill)

Collective on DA

### Input Parameter

| da | - the distributed array
| dfill | - the fill pattern in the diagonal block (may be PETSC_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 MPIAIJ 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).

DASetGetMatrix() 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

DAGetMatrix(), DASetGetMatrix(), DASetMatPreallocateOnly()

Level:developer
Location:src/dm/da/utils/fdda.c
Index of all DA routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/snes/examples/tutorials/ex29.c.html