Actual source code: bddcprivate.h

petsc-3.5.4 2015-05-23
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: PetscErrorCode PCBDDCGraphCreate(PCBDDCGraph*);
 18: PetscErrorCode PCBDDCGraphDestroy(PCBDDCGraph*);
 19: PetscErrorCode PCBDDCGraphInit(PCBDDCGraph,ISLocalToGlobalMapping);
 20: PetscErrorCode PCBDDCGraphReset(PCBDDCGraph);
 21: PetscErrorCode PCBDDCGraphResetCSR(PCBDDCGraph);
 22: PetscErrorCode PCBDDCGraphSetUp(PCBDDCGraph,PetscInt,IS,IS,PetscInt,IS[],IS);
 23: PetscErrorCode PCBDDCGraphComputeConnectedComponents(PCBDDCGraph);
 24: PetscErrorCode PCBDDCGraphComputeConnectedComponentsLocal(PCBDDCGraph);
 25: PetscErrorCode PCBDDCGraphASCIIView(PCBDDCGraph,PetscInt,PetscViewer);
 26: PetscErrorCode PCBDDCGraphGetCandidatesIS(PCBDDCGraph,PetscBool,PetscBool,PetscBool,PetscInt*,IS*[],PetscInt*,IS*[],IS*);

 28: /* application of local Schur complements */
 29: PetscErrorCode PCBDDCApplySchur(PC,Vec,Vec,Vec,Vec,Vec);
 30: PetscErrorCode PCBDDCApplySchurTranspose(PC,Vec,Vec,Vec,Vec,Vec);

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

 38: /* nullspace stuffs */
 39: PetscErrorCode PCBDDCNullSpaceAssembleCorrection(PC,IS);
 40: PetscErrorCode PCBDDCNullSpaceAdaptGlobal(PC);
 41: PetscErrorCode PCBDDCNullSpaceAssembleCoarse(PC,Mat,MatNullSpace*);

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

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

 73: #endif