Actual source code: bddcprivate.h

petsc-3.7.3 2016-08-01
Report Typos and Errors
  1: /* prototypes of all BDDC private functions */

  5: #include <../src/ksp/pc/impls/bddc/bddcstructs.h>

  7: /* main functions */
  8: PetscErrorCode PCBDDCAnalyzeInterface(PC);
  9: PetscErrorCode PCBDDCConstraintsSetUp(PC);

 11: /* reset functions */
 12: PetscErrorCode PCBDDCResetTopography(PC);
 13: PetscErrorCode PCBDDCResetSolvers(PC);
 14: PetscErrorCode PCBDDCResetCustomization(PC);

 16: /* graph */
 17: PETSC_EXTERN PetscErrorCode PCBDDCGraphCreate(PCBDDCGraph*);
 18: PETSC_EXTERN PetscErrorCode PCBDDCGraphDestroy(PCBDDCGraph*);
 19: PETSC_EXTERN PetscErrorCode PCBDDCGraphInit(PCBDDCGraph,ISLocalToGlobalMapping,PetscInt);
 20: PETSC_EXTERN PetscErrorCode PCBDDCGraphReset(PCBDDCGraph);
 21: PETSC_EXTERN PetscErrorCode PCBDDCGraphResetCSR(PCBDDCGraph);
 22: PETSC_EXTERN PetscErrorCode PCBDDCGraphSetUp(PCBDDCGraph,PetscInt,IS,IS,PetscInt,IS[],IS);
 23: PETSC_EXTERN PetscErrorCode PCBDDCGraphComputeConnectedComponents(PCBDDCGraph);
 24: PETSC_EXTERN PetscErrorCode PCBDDCGraphComputeConnectedComponentsLocal(PCBDDCGraph);
 25: PETSC_EXTERN PetscErrorCode PCBDDCGraphASCIIView(PCBDDCGraph,PetscInt,PetscViewer);
 26: PETSC_EXTERN PetscErrorCode PCBDDCGraphGetCandidatesIS(PCBDDCGraph,PetscInt*,IS*[],PetscInt*,IS*[],IS*);
 27: PETSC_EXTERN PetscErrorCode PCBDDCGraphGetDirichletDofs(PCBDDCGraph,IS*);
 28: PETSC_EXTERN PetscErrorCode PCBDDCGraphGetDirichletDofsB(PCBDDCGraph,IS*);

 30: /* interface for scaling operator */
 31: PetscErrorCode PCBDDCScalingSetUp(PC);
 32: PetscErrorCode PCBDDCScalingDestroy(PC);
 33: PetscErrorCode PCBDDCScalingRestriction(PC,Vec,Vec);
 34: PetscErrorCode PCBDDCScalingExtension(PC,Vec,Vec);

 36: /* nullspace stuffs */
 37: PetscErrorCode PCBDDCNullSpaceAssembleCorrection(PC,PetscBool,IS);
 38: PetscErrorCode PCBDDCNullSpaceAdaptGlobal(PC);
 39: PetscErrorCode PCBDDCNullSpaceAssembleCoarse(PC,Mat,MatNullSpace*);

 41: /* utils */
 42: PetscErrorCode PCBDDCComputeLocalMatrix(PC,Mat);
 43: PetscErrorCode PCBDDCSetUpLocalWorkVectors(PC);
 44: PetscErrorCode PCBDDCSetUpSolvers(PC);
 45: PetscErrorCode PCBDDCSetUpLocalScatters(PC);
 46: PetscErrorCode PCBDDCSetUpLocalSolvers(PC,PetscBool,PetscBool);
 47: PetscErrorCode PCBDDCSetUpCorrection(PC,PetscScalar**);
 48: PetscErrorCode PCBDDCSetUpCoarseSolver(PC,PetscScalar*);
 49: PetscErrorCode PCBDDCSubsetNumbering(IS,IS,PetscInt*,IS*);
 50: PetscErrorCode PCBDDCComputePrimalNumbering(PC,PetscInt*,PetscInt**);
 51: PetscErrorCode PCBDDCScatterCoarseDataBegin(PC,InsertMode,ScatterMode);
 52: PetscErrorCode PCBDDCScatterCoarseDataEnd(PC,InsertMode,ScatterMode);
 53: PetscErrorCode PCBDDCApplyInterfacePreconditioner(PC,PetscBool);
 54: PetscErrorCode PCBDDCOrthonormalizeVecs(PetscInt,Vec[]);
 55: PetscErrorCode PCBDDCSetUseExactDirichlet(PC,PetscBool);
 56: PetscErrorCode PCBDDCSetLevel(PC,PetscInt);
 57: PetscErrorCode PCBDDCGlobalToLocal(VecScatter,Vec,Vec,IS,IS*);
 58: PetscErrorCode PCBDDCAdaptiveSelection(PC);
 59: PetscErrorCode MatGetSubMatrixUnsorted(Mat,IS,IS,Mat*);

 61: /* feti-dp */
 62: PetscErrorCode PCBDDCCreateFETIDPMatContext(PC,FETIDPMat_ctx*);
 63: PetscErrorCode PCBDDCSetupFETIDPMatContext(FETIDPMat_ctx);
 64: PetscErrorCode PCBDDCCreateFETIDPPCContext(PC,FETIDPPC_ctx*);
 65: PetscErrorCode PCBDDCSetupFETIDPPCContext(Mat,FETIDPPC_ctx);
 66: PetscErrorCode FETIDPPCApply(PC,Vec,Vec);
 67: PetscErrorCode PCBDDCDestroyFETIDPPC(PC);
 68: PetscErrorCode FETIDPMatMult(Mat,Vec,Vec);
 69: PetscErrorCode PCBDDCDestroyFETIDPMat(Mat);

 71: /* interface to SubSchurs */
 72: PetscErrorCode PCBDDCInitSubSchurs(PC);
 73: PetscErrorCode PCBDDCSetUpSubSchurs(PC);

 75: /* sub schurs */
 76: PetscErrorCode PCBDDCSubSchursCreate(PCBDDCSubSchurs*);
 77: PetscErrorCode PCBDDCSubSchursInit(PCBDDCSubSchurs,IS,IS,PCBDDCGraph,ISLocalToGlobalMapping);
 78: PetscErrorCode PCBDDCSubSchursDestroy(PCBDDCSubSchurs*);
 79: PetscErrorCode PCBDDCSubSchursReset(PCBDDCSubSchurs);
 80: PetscErrorCode PCBDDCSubSchursSetUp(PCBDDCSubSchurs,Mat,Mat,PetscInt[],PetscInt[],PetscInt,PetscBool,PetscBool,PetscBool);

 82: #endif