Actual source code: gtype.c
petsc-3.14.6 2021-03-30
2: /*
3: Provides utility routines for manulating any type of PETSc object.
4: */
5: #include <petsc/private/petscimpl.h>
7: /*@C
8: PetscObjectGetType - Gets the object type of any PetscObject.
10: Not Collective
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);
17: Output Parameter:
18: . type - the object type
20: Level: advanced
22: @*/
23: PetscErrorCode PetscObjectGetType(PetscObject obj, const char *type[])
24: {
28: *type = obj->type_name;
29: return(0);
30: }
32: /*@C
33: PetscObjectSetType - Sets the object type of any PetscObject.
35: Not Collective
37: Input Parameters:
38: + obj - any PETSc object, for example a Vec, Mat or KSP.
39: Thus must be cast with a (PetscObject), for example,
40: PetscObjectGetType((PetscObject)mat,&type);
41: - type - the object type
43: Note: This does not currently work since we need to dispatch by type.
45: Level: advanced
47: @*/
48: PetscErrorCode PetscObjectSetType(PetscObject obj, const char type[])
49: {
53: SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SUP, "Cannot set the type of a generic PetscObject");
54: }