Skip to main content
`Ctrl`+`K`

# PetscCheck

Checks that a particular condition is true; if not true, then returns the provided error code

## Synopsis

    #include <petscerror.h>
    void PetscCheck(bool cond, MPI_Comm comm, PetscErrorCode ierr, const char *message, ...)

Collective; No Fortran Support

## Input Parameters

- cond - The boolean condition

- comm - The communicator on which the check can be collective on

- ierr - A nonzero error code, see include/petscerror.h for the complete list

- message - Error message in the `printf()` format

## Notes

Enabled in both optimized and debug builds.

As a general rule, `PetscCheck()` is used to check “usage error” (for example, passing an incorrect value as a function argument), `PetscAssert()` is used to “check for bugs in PETSc” (for example, is a value in a PETSc data structure nonsensical). However, for functions that are called in a “hot spot”, for example, thousands of times in a loop, `PetscAssert()` should be used instead of `PetscCheck()` since the former is compiled out in PETSc’s optimization code.

Calls `SETERRQ()` if the assertion fails, so can only be called from functions returning a `PetscErrorCode` (or equivalent type after conversion).

## See Also

`PetscAssert()`, `PetscCheckReturnMPI()`, `SETERRQ()`, `PetscError()`, `PetscCall()`, `PetscCheckAbort()`, `PetscErrorCode`

## Level

beginner

## Location

include/petscerror.h

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages