Actual source code: gcookie.c
1: /*
2: Provides utility routines for manulating any type of PETSc object.
3: */
4: #include <petsc/private/petscimpl.h>
6: /*@
7: PetscObjectGetClassId - Gets the classid for any `PetscObject`
9: Not Collective
11: Input Parameter:
12: . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
13: Thus must be cast with a (`PetscObject`), for example,
14: `PetscObjectGetClassId`((`PetscObject`)mat,&classid);
16: Output Parameter:
17: . classid - the classid
19: Level: developer
21: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
22: @*/
23: PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
24: {
25: PetscFunctionBegin;
27: PetscAssertPointer(classid, 2);
28: *classid = obj->classid;
29: PetscFunctionReturn(PETSC_SUCCESS);
30: }
32: /*@C
33: PetscObjectGetClassName - Gets the class name for any `PetscObject`
35: Not Collective
37: Input Parameter:
38: . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
39: Thus must be cast with a (`PetscObject`), for example,
40: `PetscObjectGetClassName`((`PetscObject`)mat,&classname);
42: Output Parameter:
43: . classname - the class name, for example "Vec"
45: Level: developer
47: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()`
48: @*/
49: PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
50: {
51: PetscFunctionBegin;
53: PetscAssertPointer(classname, 2);
54: *classname = obj->class_name;
55: PetscFunctionReturn(PETSC_SUCCESS);
56: }