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 { 25 PetscFunctionBegin; 26 PetscValidHeader(obj,1); 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 { 49 PetscFunctionBegin; 50 PetscValidHeader(obj,1); 51 PetscValidPointer(classname,2); 52 *classname = obj->class_name; 53 PetscFunctionReturn(0); 54 } 55