Actual source code: bddcprivate.h
petsc-3.7.1 2016-05-15
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