2#if PETSC_VERSION_GE(3, 8, 0) 
    3#include <petsc/private/petscimpl.h> 
    7                                          const char *
fun, 
const char *file,
 
    8                                          PetscErrorCode 
n, PetscErrorType p,
 
    9                                          const char *mess, 
void *ctx) {
 
   17  if (comm != PETSC_COMM_SELF)
 
   18    MPI_Comm_rank(comm, &rank);
 
   22    if (p == PETSC_ERROR_INITIAL) {
 
   24      char petsc_version[255];
 
   25      PetscGetVersion(petsc_version, 255);
 
   29                  "--------------------- MoFEM Error Message " 
   30                  "---------------------------------------------------");
 
   32      MOFEM_LOG_C(
"SELF", MoFEM::Sev::error, 
"MoFEM version %d.%d.%d (%s %s)",
 
   33                  MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD,
 
   34                  MOAB_VERSION_STRING, petsc_version);
 
   36      MOFEM_LOG_C(
"SELF", MoFEM::Sev::error, 
"MoFEM git commit id %s",
 
   40                  "See https://mofem.eng.gla.ac.uk/ " 
   41                  "guidelines_bug_reporting.html for bug reporting.");
 
   44          "SELF", MoFEM::Sev::error, 
"%s",
 
   45          "Write to https://groups.google.com/forum/#!forum/mofem-group to " 
   51      if (p == PETSC_ERROR_INITIAL) {
 
   55      MOFEM_LOG_C(
"SELF", MoFEM::Sev::error, 
"#%d %s() line %d in %s", cnt++,
 
   59      PetscTraceBackErrorHandler(PETSC_COMM_SELF, line, 
fun, file, 
n, p, mess,
 
   63    PetscBool ismain, isunknown;
 
   64    PetscStrncmp(
fun, 
"main", 4, &ismain);
 
   65    PetscStrncmp(
fun, 
"unknown", 7, &isunknown);
 
   66    if (ismain || isunknown) {
 
   69#if PETSC_VERSION_GE(3, 7, 0) 
   70        PetscOptionsView(NULL, PETSC_VIEWER_STDERR_SELF);
 
   72        PetscOptionsView(PETSC_VIEWER_STDERR_SELF);
 
   78                  "-- MoFEM End of Error Message -- send entire error " 
   79                  "message to mofem-group@googlegroups.com --");
 
 
static PetscErrorCode mofem_error_handler(MPI_Comm comm, int line, const char *fun, const char *file, PetscErrorCode n, PetscErrorType p, const char *mess, void *ctx)
PetscErrorCode PetscVFPrintfDefault(FILE *fd, const char *format, va_list Argp)
#define MOFEM_LOG_C(channel, severity, format,...)
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
auto fun
Function to approximate.
#define MOFEM_LOG_CHANNEL(channel)
Set and reset channel.
const double n
refractive index of diffusive medium
static FILE * dummy_mofem_fd
Dummy file pointer (DO NOT USE)