:orphan: # PetscOptionsEList Puts a list of option values that a single one may be selected from ## Synopsis ``` #include "petscsys.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 ```none PetscOptionsEList(..., obj->value,&value,&flg); ``` ## Output Parameters - ***value -*** the index of the value to return - ***set -*** `PETSC_TRUE` if found, else `PETSC_FALSE` ## Notes Must be 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 if 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 src/sys/objects/aoptions.c ## Examples src/ksp/ksp/tutorials/ex29.c
src/ksp/ksp/tutorials/ex32.c
src/ksp/ksp/tutorials/ex35.cxx
src/ksp/ksp/tutorials/ex36.cxx
src/ksp/ksp/tutorials/ex71.c
src/ksp/ksp/tutorials/ex73.c
src/snes/tutorials/ex12.c
src/snes/tutorials/ex17.c
src/snes/tutorials/ex36.c
src/snes/tutorials/ex62.c
src/snes/tutorials/ex63.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/objects/aoptions.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)