:orphan: # 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 src/ksp/pc/impls/bddc/bddc.c ## Implementations PCBDDCSetDiscreteGradient_BDDC in src/ksp/pc/impls/bddc/bddc.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/bddc/bddc.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)