15 #include "../config/config.hpp"
28 #ifndef _MFEM_FUNC_NAME
31 #define _MFEM_FUNC_NAME __PRETTY_FUNCTION__
36 #define _MFEM_FUNC_NAME __FUNCSIG__
40 #define MFEM_LOCATION \
41 "\n ... in function: " << _MFEM_FUNC_NAME << \
42 "\n ... at line " << __LINE__ << " of file: " << __FILE__ << '\n'
45 #define _MFEM_MESSAGE(msg, warn) \
47 std::ostringstream mfemMsgStream; \
48 mfemMsgStream << std::setprecision(16); \
49 mfemMsgStream << std::setiosflags(std::ios_base::scientific); \
50 mfemMsgStream << msg << MFEM_LOCATION; \
52 mfem::mfem_error(mfemMsgStream.str().c_str()); \
54 mfem::mfem_warning(mfemMsgStream.str().c_str()); \
62 #define MFEM_ABORT(msg) _MFEM_MESSAGE("MFEM abort: " << msg, 0)
65 #define MFEM_VERIFY(x, msg) \
68 _MFEM_MESSAGE("Verification failed: (" \
69 << #x << ") is false: " << msg, 0); \
78 #define MFEM_CONTRACT_VAR(x) if (0 && &x == &x){}
83 #define MFEM_ASSERT(x, msg) \
86 _MFEM_MESSAGE("Assertion failed: (" \
87 << #x << ") is false: " << msg, 0); \
93 #define MFEM_ASSERT(x, msg)
98 #define MFEM_WARNING(msg) _MFEM_MESSAGE("MFEM Warning: " << msg, 1)
void mfem_warning(const char *msg)
void mfem_error(const char *msg)