Skip to main content
`Ctrl`+`K`

# PetscBag

PETSc object that manages a collection of user data including parameters. A bag is essentially a C struct with serialization (you can save it and load it from files).

## Synopsis

    typedef struct _n_PetscBag     *PetscBag;

## Sample Usage

          typedef struct {
             PetscInt     height;
             PetscScalar  root;
             PetscReal    byebye;
          } MyParameters;

          PetscBag     bag;
          MyParameters *params;

          PetscCall(PetscBagCreate(PETSC_COMM_WORLD,sizeof(MyParameters),&bag));
          PetscCall(PetscBagGetData(bag,(void **)&params));
          PetscCall(PetscBagSetName(bag,"MyParameters"));
          PetscCall(PetscBagRegisterInt(bag,&params.height,22,"height","Height of the water tower"));

## See Also

`PetscBagSetName()`, `PetscBagGetName()`, `PetscBagView()`, `PetscBagLoad()`, `PetscBagGetData()` `PetscBagRegisterReal()`, `PetscBagRegisterInt()`, `PetscBagRegisterBool()`, `PetscBagRegisterScalar()` `PetscBagSetFromOptions()`, `PetscBagRegisterVec()`, `PetscBagCreate()`, `PetscBagDestroy()`, `PetscBagRegisterEnum()`

## Level

beginner

## Location

include/petscbag.h

## Examples

src/snes/tutorials/ex36.c
src/dm/tutorials/ex7.c
src/ts/tutorials/ex76.c
src/snes/tutorials/ex62.c
src/sys/tutorials/ex5.c
src/snes/tutorials/ex17.c
src/snes/tutorials/ex69.c
src/sys/tutorials/ex5f90.F90
src/snes/tutorials/ex71.c
src/snes/tutorials/ex76.c

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