17d0a6c19SBarry Smith 2e5c89e4eSSatish Balay /* 3e5c89e4eSSatish Balay Provides utility routines for manulating any type of PETSc object. 4e5c89e4eSSatish Balay */ 5af0996ceSBarry Smith #include <petsc/private/petscimpl.h> /*I "petscsys.h" I*/ 6e5c89e4eSSatish Balay 72ec85ea4SAlex Fikl /*@ 8811af0c4SBarry Smith PetscObjectGetClassId - Gets the classid for any `PetscObject` 9e5c89e4eSSatish Balay 10e5c89e4eSSatish Balay Not Collective 11e5c89e4eSSatish Balay 12e5c89e4eSSatish Balay Input Parameter: 13811af0c4SBarry Smith . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. 14811af0c4SBarry Smith Thus must be cast with a (`PetscObject`), for example, 15811af0c4SBarry Smith `PetscObjectGetClassId`((`PetscObject`)mat,&classid); 16e5c89e4eSSatish Balay 17e5c89e4eSSatish Balay Output Parameter: 180700a824SBarry Smith . classid - the classid 19e5c89e4eSSatish Balay 20e5c89e4eSSatish Balay Level: developer 21e5c89e4eSSatish Balay 22811af0c4SBarry Smith .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()` 23e5c89e4eSSatish Balay @*/ 24d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid) 25d71ae5a4SJacob Faibussowitsch { 26e5c89e4eSSatish Balay PetscFunctionBegin; 273cfa8680SLisandro Dalcin PetscValidHeader(obj, 1); 285f80ce2aSJacob Faibussowitsch PetscValidIntPointer(classid, 2); 290700a824SBarry Smith *classid = obj->classid; 303ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 31e5c89e4eSSatish Balay } 32e5c89e4eSSatish Balay 33609db0e0SLisandro Dalcin /*@C 34811af0c4SBarry Smith PetscObjectGetClassName - Gets the class name for any `PetscObject` 35609db0e0SLisandro Dalcin 36609db0e0SLisandro Dalcin Not Collective 37609db0e0SLisandro Dalcin 38609db0e0SLisandro Dalcin Input Parameter: 39811af0c4SBarry Smith . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. 40811af0c4SBarry Smith Thus must be cast with a (`PetscObject`), for example, 41811af0c4SBarry Smith `PetscObjectGetClassName`((`PetscObject`)mat,&classname); 42609db0e0SLisandro Dalcin 43609db0e0SLisandro Dalcin Output Parameter: 44811af0c4SBarry Smith . classname - the class name, for example "Vec" 45609db0e0SLisandro Dalcin 46609db0e0SLisandro Dalcin Level: developer 47609db0e0SLisandro Dalcin 48*21532e8aSBarry Smith .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()` 49609db0e0SLisandro Dalcin @*/ 50d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 51d71ae5a4SJacob Faibussowitsch { 52609db0e0SLisandro Dalcin PetscFunctionBegin; 53609db0e0SLisandro Dalcin PetscValidHeader(obj, 1); 54609db0e0SLisandro Dalcin PetscValidPointer(classname, 2); 55609db0e0SLisandro Dalcin *classname = obj->class_name; 563ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 57609db0e0SLisandro Dalcin } 58