Actual source code: gcookie.c


  2: /*
  3:      Provides utility routines for manulating any type of PETSc object.
  4: */
  5: #include <petsc/private/petscimpl.h>

  7: /*@
  8:    PetscObjectGetClassId - Gets the classid for 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:          `PetscObjectGetClassId`((`PetscObject`)mat,&classid);

 17:    Output Parameter:
 18: .  classid - the classid

 20:    Level: developer

 22: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
 23: @*/
 24: PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
 25: {
 28:   *classid = obj->classid;
 29:   return 0;
 30: }

 32: /*@C
 33:    PetscObjectGetClassName - Gets the class name for any `PetscObject`

 35:    Not Collective

 37:    Input Parameter:
 38: .  obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
 39:          Thus must be cast with a (`PetscObject`), for example,
 40:          `PetscObjectGetClassName`((`PetscObject`)mat,&classname);

 42:    Output Parameter:
 43: .  classname - the class name, for example "Vec"

 45:    Level: developer

 47: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`
 48: @*/
 49: PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
 50: {
 53:   *classname = obj->class_name;
 54:   return 0;
 55: }