xref: /petsc/src/sys/objects/gcookie.c (revision 609db0e0c17470284e7050179d3d4ba1d42493c1)
17d0a6c19SBarry Smith 
2e5c89e4eSSatish Balay /*
3e5c89e4eSSatish Balay      Provides utility routines for manulating any type of PETSc object.
4e5c89e4eSSatish Balay */
5c6db04a5SJed Brown #include <petscsys.h>  /*I   "petscsys.h"    I*/
6e5c89e4eSSatish Balay 
7e5c89e4eSSatish Balay #undef __FUNCT__
8903b9019SMatthew G Knepley #define __FUNCT__ "PetscObjectGetClassId"
9e5c89e4eSSatish Balay /*@C
10*609db0e0SLisandro Dalcin    PetscObjectGetClassId - Gets the classid for any PetscObject
11e5c89e4eSSatish Balay 
12e5c89e4eSSatish Balay    Not Collective
13e5c89e4eSSatish Balay 
14e5c89e4eSSatish Balay    Input Parameter:
15e5c89e4eSSatish Balay .  obj - any PETSc object, for example a Vec, Mat or KSP.
16e5c89e4eSSatish Balay          Thus must be cast with a (PetscObject), for example,
17903b9019SMatthew G Knepley          PetscObjectGetClassId((PetscObject)mat,&classid);
18e5c89e4eSSatish Balay 
19e5c89e4eSSatish Balay    Output Parameter:
200700a824SBarry Smith .  classid - the classid
21e5c89e4eSSatish Balay 
22e5c89e4eSSatish Balay    Level: developer
23e5c89e4eSSatish Balay 
24e5c89e4eSSatish Balay @*/
257087cfbeSBarry Smith PetscErrorCode  PetscObjectGetClassId(PetscObject obj,PetscClassId *classid)
26e5c89e4eSSatish Balay {
27e5c89e4eSSatish Balay   PetscFunctionBegin;
283cfa8680SLisandro Dalcin   PetscValidHeader(obj,1);
290700a824SBarry Smith   *classid = obj->classid;
30e5c89e4eSSatish Balay   PetscFunctionReturn(0);
31e5c89e4eSSatish Balay }
32e5c89e4eSSatish Balay 
33*609db0e0SLisandro Dalcin #undef __FUNCT__
34*609db0e0SLisandro Dalcin #define __FUNCT__ "PetscObjectGetClassName"
35*609db0e0SLisandro Dalcin /*@C
36*609db0e0SLisandro Dalcin    PetscObjectGetClassName - Gets the class name for any PetscObject
37*609db0e0SLisandro Dalcin 
38*609db0e0SLisandro Dalcin    Not Collective
39*609db0e0SLisandro Dalcin 
40*609db0e0SLisandro Dalcin    Input Parameter:
41*609db0e0SLisandro Dalcin .  obj - any PETSc object, for example a Vec, Mat or KSP.
42*609db0e0SLisandro Dalcin          Thus must be cast with a (PetscObject), for example,
43*609db0e0SLisandro Dalcin          PetscObjectGetClassName((PetscObject)mat,&classname);
44*609db0e0SLisandro Dalcin 
45*609db0e0SLisandro Dalcin    Output Parameter:
46*609db0e0SLisandro Dalcin .  classname - the class name
47*609db0e0SLisandro Dalcin 
48*609db0e0SLisandro Dalcin    Level: developer
49*609db0e0SLisandro Dalcin 
50*609db0e0SLisandro Dalcin @*/
51*609db0e0SLisandro Dalcin PetscErrorCode  PetscObjectGetClassName(PetscObject obj, const char *classname[])
52*609db0e0SLisandro Dalcin {
53*609db0e0SLisandro Dalcin   PetscFunctionBegin;
54*609db0e0SLisandro Dalcin   PetscValidHeader(obj,1);
55*609db0e0SLisandro Dalcin   PetscValidPointer(classname,2);
56*609db0e0SLisandro Dalcin   *classname = obj->class_name;
57*609db0e0SLisandro Dalcin   PetscFunctionReturn(0);
58*609db0e0SLisandro Dalcin }
59