1 /*
2 Provides utility routines for manulating any type of PETSc object.
3 */
4 #include <petsc/private/petscimpl.h> /*I "petscsys.h" I*/
5
6 /*@
7 PetscObjectGetClassId - Gets the classid for any `PetscObject`
8
9 Not Collective
10
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);
14
15 Output Parameter:
16 . classid - the classid
17
18 Level: developer
19
20 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
21 @*/
PetscObjectGetClassId(PetscObject obj,PetscClassId * classid)22 PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
23 {
24 PetscFunctionBegin;
25 PetscValidHeader(obj, 1);
26 PetscAssertPointer(classid, 2);
27 *classid = obj->classid;
28 PetscFunctionReturn(PETSC_SUCCESS);
29 }
30
31 /*@
32 PetscObjectGetClassName - Gets the class name for any `PetscObject`
33
34 Not Collective
35
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);
39
40 Output Parameter:
41 . classname - the class name, for example "Vec"
42
43 Level: developer
44
45 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()`
46 @*/
PetscObjectGetClassName(PetscObject obj,const char * classname[])47 PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
48 {
49 PetscFunctionBegin;
50 PetscValidHeader(obj, 1);
51 PetscAssertPointer(classname, 2);
52 *classname = obj->class_name;
53 PetscFunctionReturn(PETSC_SUCCESS);
54 }
55