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