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 7*2ec85ea4SAlex Fikl /*@ 8609db0e0SLisandro Dalcin PetscObjectGetClassId - Gets the classid for any PetscObject 9e5c89e4eSSatish Balay 10e5c89e4eSSatish Balay Not Collective 11e5c89e4eSSatish Balay 12e5c89e4eSSatish Balay Input Parameter: 13e5c89e4eSSatish Balay . obj - any PETSc object, for example a Vec, Mat or KSP. 14e5c89e4eSSatish Balay Thus must be cast with a (PetscObject), for example, 15903b9019SMatthew G Knepley PetscObjectGetClassId((PetscObject)mat,&classid); 16e5c89e4eSSatish Balay 17e5c89e4eSSatish Balay Output Parameter: 180700a824SBarry Smith . classid - the classid 19e5c89e4eSSatish Balay 20e5c89e4eSSatish Balay Level: developer 21e5c89e4eSSatish Balay 22e5c89e4eSSatish Balay @*/ 237087cfbeSBarry Smith PetscErrorCode PetscObjectGetClassId(PetscObject obj,PetscClassId *classid) 24e5c89e4eSSatish Balay { 25e5c89e4eSSatish Balay PetscFunctionBegin; 263cfa8680SLisandro Dalcin PetscValidHeader(obj,1); 270700a824SBarry Smith *classid = obj->classid; 28e5c89e4eSSatish Balay PetscFunctionReturn(0); 29e5c89e4eSSatish Balay } 30e5c89e4eSSatish Balay 31609db0e0SLisandro Dalcin /*@C 32609db0e0SLisandro Dalcin PetscObjectGetClassName - Gets the class name for any PetscObject 33609db0e0SLisandro Dalcin 34609db0e0SLisandro Dalcin Not Collective 35609db0e0SLisandro Dalcin 36609db0e0SLisandro Dalcin Input Parameter: 37609db0e0SLisandro Dalcin . obj - any PETSc object, for example a Vec, Mat or KSP. 38609db0e0SLisandro Dalcin Thus must be cast with a (PetscObject), for example, 39609db0e0SLisandro Dalcin PetscObjectGetClassName((PetscObject)mat,&classname); 40609db0e0SLisandro Dalcin 41609db0e0SLisandro Dalcin Output Parameter: 42609db0e0SLisandro Dalcin . classname - the class name 43609db0e0SLisandro Dalcin 44609db0e0SLisandro Dalcin Level: developer 45609db0e0SLisandro Dalcin 46609db0e0SLisandro Dalcin @*/ 47609db0e0SLisandro Dalcin PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[]) 48609db0e0SLisandro Dalcin { 49609db0e0SLisandro Dalcin PetscFunctionBegin; 50609db0e0SLisandro Dalcin PetscValidHeader(obj,1); 51609db0e0SLisandro Dalcin PetscValidPointer(classname,2); 52609db0e0SLisandro Dalcin *classname = obj->class_name; 53609db0e0SLisandro Dalcin PetscFunctionReturn(0); 54609db0e0SLisandro Dalcin } 55