1e5c89e4eSSatish Balay /* 2e5c89e4eSSatish Balay Provides utility routines for manulating any type of PETSc object. 3e5c89e4eSSatish Balay */ 4af0996ceSBarry Smith #include <petsc/private/petscimpl.h> /*I "petscsys.h" I*/ 5e5c89e4eSSatish Balay 62ec85ea4SAlex Fikl /*@ 7811af0c4SBarry Smith PetscObjectGetClassId - Gets the classid for any `PetscObject` 8e5c89e4eSSatish Balay 9e5c89e4eSSatish Balay Not Collective 10e5c89e4eSSatish Balay 11e5c89e4eSSatish Balay Input Parameter: 12dde44402SBarry Smith . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. It must be cast with a (`PetscObject`), for example, 13811af0c4SBarry Smith `PetscObjectGetClassId`((`PetscObject`)mat,&classid); 14e5c89e4eSSatish Balay 15e5c89e4eSSatish Balay Output Parameter: 160700a824SBarry Smith . classid - the classid 17e5c89e4eSSatish Balay 18e5c89e4eSSatish Balay Level: developer 19e5c89e4eSSatish Balay 20811af0c4SBarry Smith .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()` 21e5c89e4eSSatish Balay @*/ 22d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid) 23d71ae5a4SJacob Faibussowitsch { 24e5c89e4eSSatish Balay PetscFunctionBegin; 253cfa8680SLisandro Dalcin PetscValidHeader(obj, 1); 264f572ea9SToby Isaac PetscAssertPointer(classid, 2); 270700a824SBarry Smith *classid = obj->classid; 283ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 29e5c89e4eSSatish Balay } 30e5c89e4eSSatish Balay 31*cc4c1da9SBarry Smith /*@ 32811af0c4SBarry Smith PetscObjectGetClassName - Gets the class name for any `PetscObject` 33609db0e0SLisandro Dalcin 34609db0e0SLisandro Dalcin Not Collective 35609db0e0SLisandro Dalcin 36609db0e0SLisandro Dalcin Input Parameter: 37dde44402SBarry Smith . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. It must be cast with a (`PetscObject`), for example, 38811af0c4SBarry Smith `PetscObjectGetClassName`((`PetscObject`)mat,&classname); 39609db0e0SLisandro Dalcin 40609db0e0SLisandro Dalcin Output Parameter: 41811af0c4SBarry Smith . classname - the class name, for example "Vec" 42609db0e0SLisandro Dalcin 43609db0e0SLisandro Dalcin Level: developer 44609db0e0SLisandro Dalcin 4521532e8aSBarry Smith .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()` 46609db0e0SLisandro Dalcin @*/ 47d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 48d71ae5a4SJacob Faibussowitsch { 49609db0e0SLisandro Dalcin PetscFunctionBegin; 50609db0e0SLisandro Dalcin PetscValidHeader(obj, 1); 514f572ea9SToby Isaac PetscAssertPointer(classname, 2); 52609db0e0SLisandro Dalcin *classname = obj->class_name; 533ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 54609db0e0SLisandro Dalcin } 55