Skip to main content
`Ctrl`+`K`

# PCBDDCSetDivergenceMat

Sets the linear operator representing \int_\Omega \div {\bf u} \cdot p dx for the `PCBDDC` preconditioner

## Synopsis

    #include "petscpc.h"
    PetscErrorCode PCBDDCSetDivergenceMat(PC pc, Mat divudotp, PetscBool trans, IS vl2l)

Collective

## Input Parameters

- pc - the preconditioning context

- divudotp - the matrix (must be of type `MATIS`)

- trans - if `PETSC_FALSE` (resp. `PETSC_TRUE`), then pressures are in the test (trial) space and velocities are in the trial (test) space.

- vl2l - optional index set describing the local (wrt the local matrix in `divudotp`) to local (wrt the local matrix in the matrix used to construct the preconditioner) map for the velocities

## Notes

This auxiliary matrix is used to compute quadrature weights representing the net-flux across subdomain boundaries

If `vl2l` is `NULL`, the local ordering for velocities in `divudotp` should match that of the matrix used to construct the preconditioner

## See Also

KSP: Linear System Solvers, `PCBDDC`, `PCBDDCSetDiscreteGradient()`

## Level

advanced

## Location

src/ksp/pc/impls/bddc/bddc.c

## Examples

src/ksp/ksp/tutorials/ex43.c

## Implementations

PCBDDCSetDivergenceMat_BDDC() in src/ksp/pc/impls/bddc/bddc.c

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages