Skip to main content
`Ctrl`+`K`

# PetscOptionsEList

Puts a list of option values that a single one may be selected from

## Synopsis

    #include <petscoptions.h>
    PetscErrorCode PetscOptionsEList(const char opt[], const char ltext[], const char man[], const char *const *list, PetscInt ntext, const char currentvalue[], PetscInt *value, PetscBool *set)

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

## Input Parameters

- opt - option name

- ltext - short string that describes the option

- man - manual page with additional information on option

- list - the possible choices (one of these must be selected, anything else is invalid)

- ntext - number of choices

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

                     PetscOptionsEList(..., obj->value,&value,&set);

## Output Parameters

- value - the index of the value to return

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

## Notes

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

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 the `set` flag is `PETSC_TRUE`.

See `PetscOptionsFList()` for when the choices are given in a `PetscFunctionList()`

## See Also

`PetscOptionsGetInt()`, `PetscOptionsGetReal()`, `PetscOptionsHasName()`, `PetscOptionsGetIntArray()`, `PetscOptionsGetRealArray()`, `PetscOptionsBool()`, `PetscOptionsName()`, `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsHeadBegin()`, `PetscOptionsStringArray()`, `PetscOptionsRealArray()`, `PetscOptionsScalar()`, `PetscOptionsBoolGroupBegin()`, `PetscOptionsBoolGroup()`, `PetscOptionsBoolGroupEnd()`, `PetscOptionsFList()`, `PetscOptionsEnum()`

## Level

intermediate

## Location

include/petscoptions.h

## Examples

src/ksp/ksp/tutorials/ex36.cxx
src/ksp/ksp/tutorials/ex29.c
src/snes/tutorials/ex63.c
src/ksp/ksp/tutorials/ex73.c
src/ksp/ksp/tutorials/ex71.c
src/snes/tutorials/ex12.c
src/ksp/ksp/tutorials/ex35.cxx
src/ksp/ksp/tutorials/ex32.c
src/snes/tutorials/ex77.c
src/snes/tutorials/ex76.c

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