Skip to main content
`Ctrl`+`K`

# PetscOptionsBool3

Determines if a particular option is in the database with a true, false, or unknown

## Synopsis

    #include <petscoptions.h>
    PetscErrorCode PetscOptionsBool3(const char opt[], const char text[], const char man[], PetscBool currentvalue, PetscBool3 *flg, PetscBool *set)

Logically Collective on the communicator passed in `PetscOptionsBegin()`

## Input Parameters

- opt - option name

- text - short string that describes the option

- man - manual page with additional information on option

- currentvalue - the current value

## Output Parameters

- flg - `PETSC_BOOL3_TRUE`, `PETSC_BOOL3_FALSE`, or `PETSC_BOOL3_UNKNOWN`

- set - `PETSC_TRUE` if found, else `PETSC_FALSE`

## Notes

TRUE, true, YES, yes, nostring, and 1 all translate to `PETSC_TRUE` FALSE, false, NO, no, and 0 all translate to `PETSC_FALSE`

If the option is given, but no value is provided, then `flg` and `set` are both given the value `PETSC_BOOL3_TRUE`. That is `-requested_bool` is equivalent to `-requested_bool true`

If the user does not supply the option at all `flg` is NOT changed. Thus you should ALWAYS initialize the `flg` variable if you access it without first checking that the `set` flag is `PETSC_TRUE`.

Must be between a `PetscOptionsBegin()` and a `PetscOptionsEnd()`

## See Also

`PetscOptionsGetReal()`, `PetscOptionsHasName()`, `PetscOptionsGetString()`, `PetscOptionsGetInt()`, `PetscOptionsGetIntArray()`, `PetscOptionsGetRealArray()`, `PetscOptionsGetBool()`, `PetscOptionsInt()`, `PetscOptionsString()`, `PetscOptionsReal()`, `PetscOptionsName()`, `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsHeadBegin()`, `PetscOptionsStringArray()`, `PetscOptionsRealArray()`, `PetscOptionsScalar()`, `PetscOptionsBoolGroupBegin()`, `PetscOptionsBoolGroup()`, `PetscOptionsBoolGroupEnd()`, `PetscOptionsFList()`, `PetscOptionsEList()`

## Level

beginner

## Location

include/petscoptions.h

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