Actual source code: bddcprivate.h
petsc-3.5.4 2015-05-23
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