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
MATAIJformat)order - the order of the Nedelec space (1 for the lowest order, 0 for variable order)
field - the field index of the Nedelec degrees of freedom, or
PETSC_DECIDEto infer the fieldglobal -
PETSC_TRUEif the rows ofGuse the global numbering of all degrees of freedom,PETSC_FALSEfor the Nedelec field onlyconforming -
PETSC_TRUEif the mesh is conforming
Notes#
The discrete gradient matrix G is used to analyze the subdomain edges and should not contain explicitly stored zero entries.
If PCBDDCSetPrimalVerticesIS() or PCBDDCSetPrimalVerticesLocalIS() specifies a Nedelec degree of freedom as primal,
all degrees of freedom on the same mesh edge are made primal before the analysis. These degrees of freedom retain
their original coordinates in the generated change of basis.
If global is PETSC_FALSE, the numbering of the Nedelec field must preserve the relative order of its degrees of freedom
in the global numbering of all fields. That is, gid[i] < gid[j] if and only if geid[i] < geid[j], where gid is the global
numbering of all degrees of freedom and geid is the global numbering of the Nedelec field.
The field index is not used if no field splitting has been specified.
If field is PETSC_DECIDE, global must be PETSC_TRUE; the Nedelec field is inferred from the rows of G with more than one nonzero.
See Also#
KSP: Linear System Solvers, PCBDDC, PCBDDCSetDofsSplitting(), PCBDDCSetDofsSplittingLocal(), MATAIJ, PCBDDCSetDivergenceMat(), PCBDDCSetPrimalVerticesIS(), PCBDDCSetPrimalVerticesLocalIS()
Level#
advanced
Location#
Examples#
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