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 PetscValidIntPointer(classid,2); 28 *classid = obj->classid; 29 PetscFunctionReturn(0); 30 } 31 32 /*@C 33 PetscObjectGetClassName - Gets the class name for any PetscObject 34 35 Not Collective 36 37 Input Parameter: 38 . obj - any PETSc object, for example a Vec, Mat or KSP. 39 Thus must be cast with a (PetscObject), for example, 40 PetscObjectGetClassName((PetscObject)mat,&classname); 41 42 Output Parameter: 43 . classname - the class name 44 45 Level: developer 46 47 @*/ 48 PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 49 { 50 PetscFunctionBegin; 51 PetscValidHeader(obj,1); 52 PetscValidPointer(classname,2); 53 *classname = obj->class_name; 54 PetscFunctionReturn(0); 55 } 56