PCBDDCSetDiscreteGradient#
Sets the discrete gradient to be used by the PCBDDC
preconditioner
Synopsis#
#include "petscpc.h"
PetscErrorCode PCBDDCSetDiscreteGradient(PC pc, Mat G, PetscInt order, PetscInt field, PetscBool global, PetscBool conforming)
Collective
Input Parameters#
pc - the preconditioning context
G - the discrete gradient matrix (in
MATAIJ
format)order - the order of the Nedelec space (1 for the lowest order)
field - the field id of the Nedelec dofs (not used if the fields have not been specified)
global - the type of global ordering for the rows of
G
conforming - whether the mesh is conforming or not
Note#
The discrete gradient matrix G
is used to analyze the subdomain edges, and it should not contain any zero entry.
For variable order spaces, the order should be set to zero.
If global
is PETSC_TRUE
, the rows of G
should be given in global ordering for the whole dofs;
if PETSC_FALSE
, the ordering should be global for the Nedelec field.
In the latter case, it should hold gid[i] < gid[j] iff geid[i] < geid[j], with gid the global orderding for all the dofs
and geid the one for the Nedelec field.
See Also#
PCBDDC
, PCBDDCSetDofsSplitting()
, PCBDDCSetDofsSplittingLocal()
, MATAIJ
, PCBDDCSetDivergenceMat()
Level#
advanced
Location#
Implementations#
PCBDDCSetDiscreteGradient_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