:orphan: # DMDASetBlockFillsSparse Sets the fill pattern in each block for a multi-component problem of the matrix returned by `DMCreateMatrix()`, using sparse representations of fill patterns. ## Synopsis ``` #include "petscdmda.h" PetscErrorCode DMDASetBlockFillsSparse(DM da, const PetscInt *dfillsparse, const PetscInt *ofillsparse) ``` Logically Collective ## Input Parameters - ***da -*** the distributed array - ***dfill -*** the sparse fill pattern in the diagonal block (may be `NULL`, means use dense block) - ***ofill -*** the sparse 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 sparse representation of a dof-by-dof matrix with 1 entries representing coupling and 0 entries for missing coupling. The sparse representation is a 1 dimensional array of length nz + dof + 1, where nz is the number of non-zeros in the matrix. The first dof entries in the array give the starting array indices of each row's items in the rest of the array, the dof+1st item contains the value nz + dof + 1 (i.e. the entire length of the array) and the remaining nz items give the column indices of each of the 1s within the logical 2D matrix. Each row's items within the array are the column indices of the 1s within that row of the 2D matrix. PETSc developers may recognize that this is the same format as that computed by the `DMDASetBlockFills_Private()` function from a dense 2D matrix representation. `DMDASetGetMatrix()` allows you to provide general code for those more complicated nonzero patterns then can be represented in the `dfill`, `ofill` format Contributed by Philip C. Roth ## See Also `DM`, `DMDA`, `DMDASetBlockFills()`, `DMCreateMatrix()`, `DMDASetGetMatrix()`, `DMSetMatrixPreallocateOnly()` ## Level developer ## Location src/dm/impls/da/fdda.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/da/fdda.c) [Index of all DMDA routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)