Skip to main content
`Ctrl`+`K`

# PetscOptionsEnum

Gets the enum value for a particular option in the database.

## Synopsis

    #include <petscoptions.h>
    PetscErrorCode PetscOptionsEnum(const char opt[], const char text[], const char man[], const char *const *list, PetscEnum currentvalue, PetscEnum *value, 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

- list - array containing the list of choices, followed by the enum name, followed by the enum prefix, followed by a null

- currentvalue - the current value; caller is responsible for setting this value correctly. Normally this is done with either

                     PetscOptionsEnum(..., obj->value,&object->value,...) or
                     value = defaultvalue
                     PetscOptionsEnum(..., value,&value,&set);
                     if (set) {

## Output Parameters

- value - the value to return

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

## Notes

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

`list` is usually something like `PCASMTypes` or some other predefined list of enum names

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

The `currentvalue` passed into this routine does not get transferred to the output `value` variable automatically.

## See Also

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

## Level

beginner

## Location

include/petscoptions.h

## Examples

src/dm/impls/plex/tutorials/ex5.c
src/dm/tutorials/ex22.c
src/snes/tutorials/ex15.c
src/ksp/ksp/tutorials/ex10.c
src/dm/impls/plex/tutorials/ex13.c
src/snes/tutorials/ex4.c
src/ksp/ksp/tutorials/ex74.c
src/snes/tutorials/ex27.c
src/snes/tutorials/ex24.c
src/snes/tutorials/ex11.c

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