xref: /petsc/src/sys/objects/gtype.c (revision cef0416bfaf3f2eda18a772a528c82211592945c)
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 
6*ffeef943SBarry Smith /*@
7811af0c4SBarry Smith   PetscObjectGetType - Gets the object type of 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         `PetscObjectGetType`((`PetscObject`)mat,&type);
14e5c89e4eSSatish Balay 
15e5c89e4eSSatish Balay   Output Parameter:
16811af0c4SBarry Smith . type - the object type, for example, `MATSEQAIJ`
17e5c89e4eSSatish Balay 
18e5c89e4eSSatish Balay   Level: advanced
19e5c89e4eSSatish Balay 
2021532e8aSBarry Smith .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetClassId()`
21e5c89e4eSSatish Balay @*/
PetscObjectGetType(PetscObject obj,const char * type[])22d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscObjectGetType(PetscObject obj, const char *type[])
23d71ae5a4SJacob Faibussowitsch {
24e5c89e4eSSatish Balay   PetscFunctionBegin;
253cfa8680SLisandro Dalcin   PetscValidHeader(obj, 1);
264f572ea9SToby Isaac   PetscAssertPointer(type, 2);
27e5c89e4eSSatish Balay   *type = obj->type_name;
283ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
29e5c89e4eSSatish Balay }
30