1 /* 2 Provides utility routines for manulating any type of PETSc object. 3 */ 4 #include <petsc/private/petscimpl.h> /*I "petscsys.h" I*/ 5 6 /*@ 7 PetscObjectGetClassId - Gets the classid for any `PetscObject` 8 9 Not Collective 10 11 Input Parameter: 12 . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. 13 Thus must be cast with a (`PetscObject`), for example, 14 `PetscObjectGetClassId`((`PetscObject`)mat,&classid); 15 16 Output Parameter: 17 . classid - the classid 18 19 Level: developer 20 21 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()` 22 @*/ 23 PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid) 24 { 25 PetscFunctionBegin; 26 PetscValidHeader(obj, 1); 27 PetscAssertPointer(classid, 2); 28 *classid = obj->classid; 29 PetscFunctionReturn(PETSC_SUCCESS); 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, for example "Vec" 44 45 Level: developer 46 47 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()` 48 @*/ 49 PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 50 { 51 PetscFunctionBegin; 52 PetscValidHeader(obj, 1); 53 PetscAssertPointer(classname, 2); 54 *classname = obj->class_name; 55 PetscFunctionReturn(PETSC_SUCCESS); 56 } 57