petsc-3.13.6 2020-09-29
Report Typos and Errors

DMMoabSetBlockFills

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

Synopsis

#include "petscdmmoab.h"   
PetscErrorCode  DMMoabSetBlockFills(DM dm, const PetscInt *dfill, const PetscInt *ofill)
Logically Collective on da

Input Parameter

dm - the DMMoab object
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 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).

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

DMCreateMatrix(), DMDASetGetMatrix(), DMSetMatrixPreallocateOnly()

Level

developer

Location

src/dm/impls/moab/dmmbmat.cxx
Index of all DMMOAB routines
Table of Contents for all manual pages
Index of all manual pages