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`. It must be cast with a (`PetscObject`), for example, 13 `PetscObjectGetClassId`((`PetscObject`)mat,&classid); 14 15 Output Parameter: 16 . classid - the classid 17 18 Level: developer 19 20 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()` 21 @*/ 22 PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid) 23 { 24 PetscFunctionBegin; 25 PetscValidHeader(obj, 1); 26 PetscAssertPointer(classid, 2); 27 *classid = obj->classid; 28 PetscFunctionReturn(PETSC_SUCCESS); 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`. It must be cast with a (`PetscObject`), for example, 38 `PetscObjectGetClassName`((`PetscObject`)mat,&classname); 39 40 Output Parameter: 41 . classname - the class name, for example "Vec" 42 43 Level: developer 44 45 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()` 46 @*/ 47 PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 48 { 49 PetscFunctionBegin; 50 PetscValidHeader(obj, 1); 51 PetscAssertPointer(classname, 2); 52 *classname = obj->class_name; 53 PetscFunctionReturn(PETSC_SUCCESS); 54 } 55