Actual source code: gtype.c

      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: }