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