Actual source code: petscbag.h
4: #include petscsys.h
5: PETSC_EXTERN_CXX_BEGIN
7: /*S
8: PetscBag - PETSc object that manages a collection of user data including parameters.
9: A bag is essentially a C struct with serialization (you can save it and load it from files).
11: Level: beginner
13: Sample Usage:
14: $ typedef struct {
15: $ PetscInt height;
16: $ PetscScalar root;
17: $ PetscReal byebye;
18: $ } MyParameters;
19: $
20: $ PetscBag bag;
21: $ MyParameters *params;
22: $
23: $ PetscBagCreate(PETSC_COMM_WORLD,sizeof(MyParameters),&bag);
24: $ PetscBagGetData(bag,(void **)¶ms);
25: $ PetscBagSetName(bag,"MyParameters");
26: $ PetscBagRegisterInt(bag,¶ms.height,22,"height","Height of the water tower");
27: $
29: .seealso: PetscBagSetName(), PetscBagGetName(), PetscBagView(), PetscBagLoad(), PetscBagGetData()
30: PetscBagRegisterReal(), PetscBagRegisterInt(), PetscBagRegisterBool(), PetscBagRegisterScalar()
31: PetscBagSetFromOptions(), PetscBagRegisterVec(), PetscBagCreate(), PetscBagDestroy(), PetscBagRegisterEnum()
32: S*/
33: typedef struct _n_PetscBag* PetscBag;
34: typedef struct _n_PetscBagItem* PetscBagItem;
36: extern PetscErrorCode PetscBagCreate(MPI_Comm,size_t,PetscBag*);
37: extern PetscErrorCode PetscBagDestroy(PetscBag*);
38: extern PetscErrorCode PetscBagGetData(PetscBag,void **);
39: extern PetscErrorCode PetscBagRegisterReal(PetscBag,void*,PetscReal, const char*, const char*);
40: extern PetscErrorCode PetscBagRegisterString(PetscBag,void*,PetscInt,const char*, const char*, const char*);
41: extern PetscErrorCode PetscBagRegisterScalar(PetscBag,void*,PetscScalar,const char*,const char*);
42: extern PetscErrorCode PetscBagRegisterInt(PetscBag,void*,PetscInt,const char*,const char*);
43: extern PetscErrorCode PetscBagRegisterEnum(PetscBag,void*,const char*[],PetscEnum,const char*,const char*);
44: extern PetscErrorCode PetscBagRegisterBool(PetscBag,void*,PetscBool ,const char*,const char*);
46: extern PetscErrorCode PetscBagSetFromOptions(PetscBag);
47: extern PetscErrorCode PetscBagGetName(PetscBag, char **);
48: extern PetscErrorCode PetscBagSetName(PetscBag, const char *, const char *);
49: extern PetscErrorCode PetscBagSetOptionsPrefix(PetscBag, const char *);
51: extern PetscErrorCode PetscBagView(PetscBag,PetscViewer);
52: extern PetscErrorCode PetscBagLoad(PetscViewer,PetscBag*);
54: extern PetscErrorCode PetscBagSetViewer(PetscBag,PetscErrorCode (*)(PetscBag,PetscViewer));
55: extern PetscErrorCode PetscBagSetLoader(PetscBag,PetscErrorCode (*)(PetscBag,PetscViewer));
56: extern PetscErrorCode PetscBagSetDestroy(PetscBag,PetscErrorCode (*)(PetscBag));
58: #define PETSC_BAG_FILE_CLASSID 1211219
60: PETSC_EXTERN_CXX_END
61: #endif