1e5c89e4eSSatish Balay #define PETSC_DLL 2e5c89e4eSSatish Balay /* 3e5c89e4eSSatish Balay Provides utility routines for manulating any type of PETSc object. 4e5c89e4eSSatish Balay */ 5d382aafbSBarry Smith #include "petscsys.h" /*I "petscsys.h" I*/ 6e5c89e4eSSatish Balay 7e5c89e4eSSatish Balay #undef __FUNCT__ 8*0700a824SBarry Smith #define __FUNCT__ "PetscObjectGetClassid" 9e5c89e4eSSatish Balay /*@C 10*0700a824SBarry Smith PetscObjectGetClassid - Gets the classid for any PetscObject, 11e5c89e4eSSatish Balay 12e5c89e4eSSatish Balay Not Collective 13e5c89e4eSSatish Balay 14e5c89e4eSSatish Balay Input Parameter: 15e5c89e4eSSatish Balay . obj - any PETSc object, for example a Vec, Mat or KSP. 16e5c89e4eSSatish Balay Thus must be cast with a (PetscObject), for example, 17*0700a824SBarry Smith PetscObjectGetClassid((PetscObject)mat,&classid); 18e5c89e4eSSatish Balay 19e5c89e4eSSatish Balay Output Parameter: 20*0700a824SBarry Smith . classid - the classid 21e5c89e4eSSatish Balay 22e5c89e4eSSatish Balay Level: developer 23e5c89e4eSSatish Balay 24e5c89e4eSSatish Balay @*/ 25*0700a824SBarry Smith PetscErrorCode PETSC_DLLEXPORT PetscObjectGetClassid(PetscObject obj,PetscClassId *classid) 26e5c89e4eSSatish Balay { 27e5c89e4eSSatish Balay PetscFunctionBegin; 283cfa8680SLisandro Dalcin PetscValidHeader(obj,1); 29*0700a824SBarry Smith *classid = obj->classid; 30e5c89e4eSSatish Balay PetscFunctionReturn(0); 31e5c89e4eSSatish Balay } 32e5c89e4eSSatish Balay 33e5c89e4eSSatish Balay #undef __FUNCT__ 34e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectExists" 35e5c89e4eSSatish Balay /*@ 36e5c89e4eSSatish Balay PetscObjectExists - Determines whether a PETSc object has been destroyed. 37e5c89e4eSSatish Balay 38e5c89e4eSSatish Balay Not Collective 39e5c89e4eSSatish Balay 40e5c89e4eSSatish Balay Input Parameter: 41e5c89e4eSSatish Balay . obj - any PETSc object, for example a Vec, Mat or KSP. 42e5c89e4eSSatish Balay Thus must be cast with a (PetscObject), for example, 43*0700a824SBarry Smith PetscObjectGetClassid((PetscObject)mat,&exists); 44e5c89e4eSSatish Balay 45e5c89e4eSSatish Balay Output Parameter: 46e5c89e4eSSatish Balay . exists - PETSC_FALSE if object does not exist; PETSC_TRUE if object does exist. 47e5c89e4eSSatish Balay 48e5c89e4eSSatish Balay Level: developer 49e5c89e4eSSatish Balay 50e5c89e4eSSatish Balay @*/ 51e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectExists(PetscObject obj,PetscTruth *exists) 52e5c89e4eSSatish Balay { 53e5c89e4eSSatish Balay PetscFunctionBegin; 54e5c89e4eSSatish Balay *exists = PETSC_FALSE; 55e5c89e4eSSatish Balay if (!obj) PetscFunctionReturn(0); 56*0700a824SBarry Smith if (obj->classid >= PETSC_SMALLEST_CLASSID && obj->classid <= PETSC_LARGEST_CLASSID) *exists = PETSC_TRUE; 57e5c89e4eSSatish Balay PetscFunctionReturn(0); 58e5c89e4eSSatish Balay } 59e5c89e4eSSatish Balay 60