:orphan: # PetscOptionsGetViewer Gets a viewer appropriate for the type indicated by the user ## Synopsis ``` #include "petscviewer.h" PetscErrorCode PetscOptionsGetViewer(MPI_Comm comm, PetscOptions options, const char pre[], const char name[], PetscViewer *viewer, PetscViewerFormat *format, PetscBool *set) ``` Collective ## Input Parameters - ***comm -*** the communicator to own the viewer - ***options -*** options database, use `NULL` for default global database - ***pre -*** the string to prepend to the name or `NULL` - ***name -*** the option one is seeking ## Output Parameters - ***viewer -*** the viewer, pass `NULL` if not needed - ***format -*** the `PetscViewerFormat` requested by the user, pass `NULL` if not needed - ***set -*** `PETSC_TRUE` if found, else `PETSC_FALSE` ## Notes If no value is provided ascii:stdout is used - ***ascii[:[filename][:[format][:append]]] -*** defaults to stdout - format can be one of ascii_info, ascii_info_detail, or ascii_matlab, for example ascii::ascii_info prints just the information about the object not all details unless :append is given filename opens in write mode, overwriting what was already there - ***binary[:[filename][:[format][:append]]] -*** defaults to the file binaryoutput - ***draw[:drawtype[:filename]] -*** for example, draw:tikz, draw:tikz:figure.tex or draw:x - ***socket[:port] -*** defaults to the standard output port - ***saws[:communicatorname] -*** publishes object to the Scientific Application Webserver (SAWs) Use `PetscViewerDestroy()` after using the viewer, otherwise a memory leak will occur You can control whether calls to this function create a viewer (or return early with *set of `PETSC_FALSE`) with `PetscOptionsPushGetViewerOff()`. This is useful if calling many small subsolves, in which case XXXViewFromOptions can take an appreciable fraction of the runtime. If PETSc is configured with `--with-viewfromoptions=0` this function always returns with *set of `PETSC_FALSE` ## See Also [](sec_viewers), `PetscOptionsGetReal()`, `PetscOptionsHasName()`, `PetscOptionsGetString()`, `PetscOptionsGetIntArray()`, `PetscOptionsGetRealArray()`, `PetscOptionsBool()` `PetscOptionsInt()`, `PetscOptionsString()`, `PetscOptionsReal()`, `PetscOptionsBool()`, `PetscOptionsName()`, `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsHeadBegin()`, `PetscOptionsStringArray()`, `PetscOptionsRealArray()`, `PetscOptionsScalar()`, `PetscOptionsBoolGroupBegin()`, `PetscOptionsBoolGroup()`, `PetscOptionsBoolGroupEnd()`, `PetscOptionsFList()`, `PetscOptionsEList()`, `PetscOptionsPushGetViewerOff()`, `PetscOptionsPopGetViewerOff()`, `PetscOptionsGetViewerOff()` ## Level intermediate ## Location src/sys/classes/viewer/interface/viewreg.c ## Examples src/snes/tutorials/ex17.c
src/snes/tutorials/ex36.c
src/snes/tutorials/ex56.c
src/snes/tutorials/ex62.c
src/sys/classes/viewer/tutorials/ex2.c
src/ts/tutorials/ex53.c
src/vec/vec/utils/tagger/tutorials/ex1.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/classes/viewer/interface/viewreg.c) [Index of all Viewer routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)