xref: /petsc/src/dm/impls/plex/adaptors/mmgcommon.h (revision 5f80ce2ab25dff0f4601e710601cbbcecf323266)
1*5f80ce2aSJacob Faibussowitsch #ifndef PETSC_DM_PLEX_MMGCOMMON_H
2*5f80ce2aSJacob Faibussowitsch #define PETSC_DM_PLEX_MMGCOMMON_H
3*5f80ce2aSJacob Faibussowitsch 
4*5f80ce2aSJacob Faibussowitsch #include <petsc/private/dmpleximpl.h>
5*5f80ce2aSJacob Faibussowitsch 
6*5f80ce2aSJacob Faibussowitsch #define CHKERRMMG_Private(ret,...) do {                                                        \
7*5f80ce2aSJacob Faibussowitsch     PetscStackPush(PetscStringize(__VA_ARGS__));                                               \
8*5f80ce2aSJacob Faibussowitsch     PetscErrorCode PETSC_UNUSED mmg_ierr_ = __VA_ARGS__;                                       \
9*5f80ce2aSJacob Faibussowitsch     PetscStackPop;                                                                             \
10*5f80ce2aSJacob Faibussowitsch     /* PetscCheck(mmg_ierr_ == (ret),PETSC_COMM_SELF,PETSC_ERR_LIB,"Error calling %s: error code %d",PetscStringize(__VA_ARGS__),mmg_ierr_); */ \
11*5f80ce2aSJacob Faibussowitsch   } while (0)
12*5f80ce2aSJacob Faibussowitsch 
13*5f80ce2aSJacob Faibussowitsch // MMG sometimes returns 1, sometimes 0 when an error has occurred
14*5f80ce2aSJacob Faibussowitsch #define CHKERRMMG(...)             CHKERRMMG_Private(MMG5_SUCCESS,__VA_ARGS__)
15*5f80ce2aSJacob Faibussowitsch #define CHKERRMMG_NONSTANDARD(...) CHKERRMMG_Private(1,__VA_ARGS__)
16*5f80ce2aSJacob Faibussowitsch #endif // PETSC_DM_PLEX_MMGCOMMON_H
17