xref: /petsc/src/sys/objects/gcookie.c (revision 58d68138c660dfb4e9f5b03334792cd4f2ffd7cc)
1 
2 /*
3      Provides utility routines for manulating any type of PETSc object.
4 */
5 #include <petsc/private/petscimpl.h> /*I   "petscsys.h"    I*/
6 
7 /*@
8    PetscObjectGetClassId - Gets the classid for any PetscObject
9 
10    Not Collective
11 
12    Input Parameter:
13 .  obj - any PETSc object, for example a Vec, Mat or KSP.
14          Thus must be cast with a (PetscObject), for example,
15          PetscObjectGetClassId((PetscObject)mat,&classid);
16 
17    Output Parameter:
18 .  classid - the classid
19 
20    Level: developer
21 
22 @*/
23 PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid) {
24   PetscFunctionBegin;
25   PetscValidHeader(obj, 1);
26   PetscValidIntPointer(classid, 2);
27   *classid = obj->classid;
28   PetscFunctionReturn(0);
29 }
30 
31 /*@C
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.
38          Thus must be cast with a (PetscObject), for example,
39          PetscObjectGetClassName((PetscObject)mat,&classname);
40 
41    Output Parameter:
42 .  classname - the class name
43 
44    Level: developer
45 
46 @*/
47 PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) {
48   PetscFunctionBegin;
49   PetscValidHeader(obj, 1);
50   PetscValidPointer(classname, 2);
51   *classname = obj->class_name;
52   PetscFunctionReturn(0);
53 }
54