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