Chaste Commit::8b5d759ac2eb95e67ae57699734101efccb0a0a9
PetscTools.hpp File Reference
#include <string>
#include <vector>
#include <cstdlib>
#include <petsc.h>
#include <petscvec.h>
#include <petscmat.h>
#include <petscsys.h>
+ Include dependency graph for PetscTools.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PetscTools
 

Macros

#define EXIT_IF_PARALLEL   if(PetscTools::IsParallel()){TS_TRACE("This test does not pass in parallel yet.");return;}
 
#define EXIT_IF_SEQUENTIAL   if(PetscTools::IsSequential()){TS_TRACE("This test is not meant to be executed in sequential.");return;}
 
#define PETSC_DESTROY_PARAM(x)   x
 
#define TRY_IF_MASTER(method)
 

Typedefs

typedef PetscTruth PetscBool
 

Detailed Description

Contains the PetscTools class.

Definition in file PetscTools.hpp.

Macro Definition Documentation

◆ EXIT_IF_PARALLEL

#define EXIT_IF_PARALLEL   if(PetscTools::IsParallel()){TS_TRACE("This test does not pass in parallel yet.");return;}

For use in tests that do not work when run in parallel.

Definition at line 54 of file PetscTools.hpp.

◆ EXIT_IF_SEQUENTIAL

#define EXIT_IF_SEQUENTIAL   if(PetscTools::IsSequential()){TS_TRACE("This test is not meant to be executed in sequential.");return;}

For use in tests that should ONLY be run in parallel.

Definition at line 56 of file PetscTools.hpp.

◆ PETSC_DESTROY_PARAM

#define PETSC_DESTROY_PARAM (   x)    x

This macro is for converting a pre-PETSc3.2 "Destroy" function call (which involves an object, such as PetscViewerDestroy(VecView view) ) to a PETSc3.2 destroy via pointer call. Note that we only use this macro for calls which appear rarely in the code. Please destroy Vec and Mat objects via the overloaded PetscTools::Destroy methods.

Parameters
xThe object to destroy

Definition at line 70 of file PetscTools.hpp.

◆ TRY_IF_MASTER

#define TRY_IF_MASTER (   method)
Value:
{ \
{ try { \
method; \
} catch (Exception& e) { \
PetscTools::ReplicateException(true);\
throw(e); \
} } \
PetscTools::ReplicateException(false); \
}
static bool AmMaster()

A macro to allow code to be attempted by just the master process, but to replicate any exceptions that occur to other processes. Useful for file access.

Note
MUST be called collectively, as it contains a barrier.
Parameters
methoda command or block of code to run if master process

Definition at line 91 of file PetscTools.hpp.

Typedef Documentation

◆ PetscBool

typedef PetscTruth PetscBool

Older versions of PETSc used PetscTruth in place of PetscBool, so we define an alias for those installations.

Definition at line 62 of file PetscTools.hpp.