PCBDDCSetDivergenceMat#
Sets the discrete divergence operator used by PCBDDC to compute net-flux constraints
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 -
PETSC_FALSEif pressures are in the test space and velocities are in the trial space,PETSC_TRUEfor the transposevl2l - optional index set mapping local velocity indices in
divudotpto local indices in the preconditioning matrix, orNULL
Notes#
The operator represents \(\int_\Omega (\nabla \cdot \mathbf{u}) p\,dx\) and is used to compute quadrature weights representing the net flux across subdomain boundaries. See [ZT17] for their use in mixed formulations of Darcy flow.
Local indices refer to the local matrices inside the MATIS objects. If vl2l is NULL, the local velocity numbering in
divudotp must match that of the preconditioning matrix.
References#
Stefano Zampini and Xuemin Tu. Multilevel BDDC deluxe algorithms with adaptive coarse spaces for flow in porous media. SIAM Journal of Scientific Computing, 39(4):A1389–A1415, 2017.
See Also#
KSP: Linear System Solvers, PCBDDC, PCBDDCSetDiscreteGradient()
Level#
advanced
Location#
Examples#
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