1 #ifndef PETSC4PY_COMPAT_HPDDM_H 2 #define PETSC4PY_COMPAT_HPDDM_H 3 4 #if !defined(PETSC_HAVE_HPDDM) || !defined(PETSC_HAVE_DYNAMIC_LIBRARIES) || !defined(PETSC_USE_SHARED_LIBRARIES) 5 6 #define PetscPCHPDDMError do { \ 7 PetscFunctionBegin; \ 8 SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SUP,"%s() requires HPDDM",PETSC_FUNCTION_NAME); \ 9 PetscFunctionReturn(PETSC_ERR_SUP);} while (0) 10 11 PetscErrorCode PCHPDDMSetAuxiliaryMat(PETSC_UNUSED PC pc,PETSC_UNUSED IS is,PETSC_UNUSED Mat aux,PETSC_UNUSED PetscErrorCode (*setup)(Mat,PetscReal,Vec,Vec,PetscReal,IS,void*),PETSC_UNUSED void* ctx){PetscPCHPDDMError;} 12 PetscErrorCode PCHPDDMSetRHSMat(PETSC_UNUSED PC pc,PETSC_UNUSED Mat B){PetscPCHPDDMError;} 13 PetscErrorCode PCHPDDMHasNeumannMat(PETSC_UNUSED PC pc,PETSC_UNUSED PetscBool has){PetscPCHPDDMError;} 14 PetscErrorCode PCHPDDMSetCoarseCorrectionType(PETSC_UNUSED PC pc,PETSC_UNUSED PCHPDDMCoarseCorrectionType type){PetscPCHPDDMError;} 15 PetscErrorCode PCHPDDMGetCoarseCorrectionType(PETSC_UNUSED PC pc,PETSC_UNUSED PCHPDDMCoarseCorrectionType *type){PetscPCHPDDMError;} 16 PetscErrorCode PCHPDDMGetSTShareSubKSP(PETSC_UNUSED PC pc,PETSC_UNUSED PetscBool *share){PetscPCHPDDMError;} 17 PetscErrorCode PCHPDDMSetDeflationMat(PETSC_UNUSED PC pc,PETSC_UNUSED IS is,PETSC_UNUSED Mat U){PetscPCHPDDMError;} 18 19 #undef PetscPCHPDDMError 20 21 #endif 22 23 #endif/*PETSC4PY_COMPAT_HPDDM_H*/ 24