:orphan:
# PetscOptionsGetEnum
Gets the enum value for a particular option in the database.
## Synopsis
```
#include "petscsys.h"
PetscErrorCode PetscOptionsGetEnum(PetscOptions options, const char pre[], const char opt[], const char *const *list, PetscEnum *value, PetscBool *set)
```
Not Collective
## Input Parameters
- ***options -*** options database, use `NULL` for default global database
- ***pre -*** option prefix or `NULL`
- ***opt -*** option name
- ***list -*** array containing the list of choices, followed by the enum name, followed by the enum prefix, followed by a null
## Output Parameters
- ***value -*** the value to return
- ***set -*** `PETSC_TRUE` if found, else `PETSC_FALSE`
## Notes
If the user does not supply the option value is NOT changed. Thus
you should ALWAYS initialize the ivalue if you access it without first checking if the set flag is true.
List is usually something like `PCASMTypes` or some other predefined list of enum names
## See Also
`PetscOptionsGetReal()`, `PetscOptionsHasName()`, `PetscOptionsGetString()`, `PetscOptionsGetInt()`,
`PetscOptionsGetIntArray()`, `PetscOptionsGetRealArray()`, `PetscOptionsBool()`
`PetscOptionsInt()`, `PetscOptionsString()`, `PetscOptionsReal()`, `PetscOptionsBool()`,
`PetscOptionsName()`, `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsHeadBegin()`,
`PetscOptionsStringArray()`, `PetscOptionsRealArray()`, `PetscOptionsScalar()`,
`PetscOptionsBoolGroupBegin()`, `PetscOptionsBoolGroup()`, `PetscOptionsBoolGroupEnd()`,
`PetscOptionsFList()`, `PetscOptionsEList()`, `PetscOptionsGetEList()`, `PetscOptionsEnum()`
## Level
beginner
## Location
src/sys/objects/options.c
## Examples
src/mat/tutorials/ex10.c
src/sys/tutorials/ex8f90.F90
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/objects/options.c)
[Index of all Sys routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)