Skip to main content
`Ctrl`+`K`

# PetscFinalize

Checks for options to be called at the conclusion of a PETSc program and frees any remaining PETSc objects and data structures. of the program. Automatically calls `MPI_Finalize()` if the user had not called `MPI_Init()` before calling `PetscInitialize()`.

## Synopsis

    #include "petscsys.h"
    PetscErrorCode PetscFinalize(void)

Collective on `PETSC_COMM_WORLD`

## Options Database Keys

- -options_view - Calls `PetscOptionsView()` to display all options in the database

- -options_left - Prints unused options that remain in the database (default value is `true`)

- -objects_dump [all] - Prints list of objects allocated by the user that have not been freed, the option all cause all outstanding objects to be listed

- -mpidump - Calls PetscMPIDump()

- -malloc_dump [filename] - Calls `PetscMallocDump()`, displays all memory allocated that has not been freed

- -memory_view - Prints total memory usage

- -malloc_view [filename] - Prints list of all memory allocated and in what functions

## Note

See `PetscInitialize()` for other runtime options.

You can call `PetscInitialize()` after `PetscFinalize()` but only with MPI-Uni or if you called `MPI_Init()` before ever calling `PetscInitialize()`.

## See Also

`PetscInitialize()`, `PetscOptionsView()`, `PetscMallocDump()`, `PetscMPIDump()`, `PetscEnd()`

## Level

beginner

## Location

src/sys/objects/pinit.c

## Examples

src/dm/impls/plex/tutorials/ex5.c
src/dm/impls/plex/tutorials/ex13.c
src/dm/impls/plex/tutorials/ex11.c
src/dm/impls/plex/tutorials/ex14.c
src/dm/impls/forest/tutorials/ex1.c
src/dm/dt/dualspace/impls/lagrange/tutorials/ex1.c
src/dm/impls/plex/tutorials/ex17.c
src/dm/impls/plex/tutorials/ex1.c
src/dm/dt/dualspace/impls/lagrange/tutorials/ex2.c
src/dm/field/tutorials/ex1.c

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