xref: /petsc/src/sys/objects/gtype.c (revision 697336901c45ac77e1fd620fe1fca906cf3f95c8)
1 
2 /*
3      Provides utility routines for manulating any type of PETSc object.
4 */
5 #include <petsc/private/petscimpl.h> /*I   "petscsys.h"    I*/
6 
7 /*@C
8   PetscObjectGetType - Gets the object type of any `PetscObject`.
9 
10   Not Collective
11 
12   Input Parameter:
13 . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
14          Thus must be cast with a (`PetscObject`), for example,
15          `PetscObjectGetType`((`PetscObject`)mat,&type);
16 
17   Output Parameter:
18 . type - the object type, for example, `MATSEQAIJ`
19 
20   Level: advanced
21 
22 .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetClassId()`
23 @*/
24 PetscErrorCode PetscObjectGetType(PetscObject obj, const char *type[])
25 {
26   PetscFunctionBegin;
27   PetscValidHeader(obj, 1);
28   PetscValidPointer(type, 2);
29   *type = obj->type_name;
30   PetscFunctionReturn(PETSC_SUCCESS);
31 }
32