Skip to main content
`Ctrl`+`K`

# PetscOptionsFList

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

## Synopsis

    #include <petscoptions.h>
    PetscErrorCode PetscOptionsFList(const char opt[], const char ltext[], const char man[], PetscFunctionList list, const char currentvalue[], char value[], size_t len, 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

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

                     PetscOptionsFlist(..., obj->value,value,len,&set);
                     if (set) {

- len - the length of the character array value

## Output Parameters

- value - 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`.

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

See `PetscOptionsEList()` for when the choices are given in a string array

To get a listing of all currently specified options, see `PetscOptionsView()` or `PetscOptionsGetAll()`

## Developer Note

This cannot check for invalid selection because of things like `MATAIJ` that are not included in the list

## See Also

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

## Level

intermediate

## Location

include/petscoptions.h

## Examples

src/snes/tutorials/ex17.c
src/ksp/ksp/tutorials/ex74.c
src/snes/tutorials/ex48.c
src/ksp/ksp/tutorials/ex10.c
src/ksp/ksp/tutorials/ex77.c
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex18.c
src/ts/tutorials/ex9.c
src/snes/tutorials/ex12.c
src/dm/field/tutorials/ex1.c

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