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`. It must be cast with a (`PetscObject`), for example,
13: `PetscObjectGetClassId`((`PetscObject`)mat,&classid);
15: Output Parameter:
16: . classid - the classid
18: Level: developer
20: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
21: @*/
22: PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
23: {
24: PetscFunctionBegin;
26: PetscAssertPointer(classid, 2);
27: *classid = obj->classid;
28: PetscFunctionReturn(PETSC_SUCCESS);
29: }
31: /*@C
32: PetscObjectGetClassName - Gets the class name for any `PetscObject`
34: Not Collective
36: Input Parameter:
37: . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. It must be cast with a (`PetscObject`), for example,
38: `PetscObjectGetClassName`((`PetscObject`)mat,&classname);
40: Output Parameter:
41: . classname - the class name, for example "Vec"
43: Level: developer
45: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()`
46: @*/
47: PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
48: {
49: PetscFunctionBegin;
51: PetscAssertPointer(classname, 2);
52: *classname = obj->class_name;
53: PetscFunctionReturn(PETSC_SUCCESS);
54: }