1*a4963045SJacob Faibussowitsch #pragma once 25f80ce2aSJacob Faibussowitsch 35f80ce2aSJacob Faibussowitsch #include <petsc/private/dmpleximpl.h> 45f80ce2aSJacob Faibussowitsch 5b3377c29SStefano Zampini #define PetscCallMMG_Private(ret, name, ...) \ 69371c9d4SSatish Balay do { \ 7b3377c29SStefano Zampini PetscCall(PetscFPTrapPush(PETSC_FP_TRAP_OFF)); \ 8b3377c29SStefano Zampini PetscStackPushExternal(PetscStringize(name)); \ 9b3377c29SStefano Zampini int PETSC_UNUSED mmg_ierr_ = name(__VA_ARGS__); \ 105f80ce2aSJacob Faibussowitsch PetscStackPop; \ 11b3377c29SStefano Zampini PetscCall(PetscFPTrapPop()); \ 125f80ce2aSJacob Faibussowitsch /* PetscCheck(mmg_ierr_ == (ret),PETSC_COMM_SELF,PETSC_ERR_LIB,"Error calling %s: error code %d",PetscStringize(__VA_ARGS__),mmg_ierr_); */ \ 135f80ce2aSJacob Faibussowitsch } while (0) 145f80ce2aSJacob Faibussowitsch 155f80ce2aSJacob Faibussowitsch // MMG sometimes returns 1, sometimes 0 when an error has occurred 16b3377c29SStefano Zampini #define PetscCallMMG(name, ...) PetscCallMMG_Private(MMG5_SUCCESS, name, __VA_ARGS__) 17b3377c29SStefano Zampini #define PetscCallMMG_NONSTANDARD(name, ...) PetscCallMMG_Private(1, name, __VA_ARGS__) 18