15 #include "../config/config.hpp"
28 #ifndef _MFEM_FUNC_NAME
31 #define _MFEM_FUNC_NAME __PRETTY_FUNCTION__
36 #define _MFEM_FUNC_NAME __FUNCSIG__
41 #define _MFEM_MESSAGE(msg, warn) \
43 std::ostringstream mfemMsgStream; \
44 mfemMsgStream << std::setprecision(16); \
45 mfemMsgStream << std::setiosflags(std::ios_base::scientific); \
46 mfemMsgStream << msg << '\n'; \
47 mfemMsgStream << " ... at line " << __LINE__; \
48 mfemMsgStream << " in " << _MFEM_FUNC_NAME << " of file "; \
49 mfemMsgStream << __FILE__ << "."; \
50 mfemMsgStream << std::ends; \
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)