Actual source code: gcookie.c

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

  6: /*@
  7:   PetscObjectGetClassId - Gets the classid for any `PetscObject`

  9:   Not Collective

 11:   Input Parameter:
 12: . obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`. It must be cast with a (`PetscObject`), for example,
 13:         `PetscObjectGetClassId`((`PetscObject`)mat,&classid);

 15:   Output Parameter:
 16: . classid - the classid

 18:   Level: developer

 20: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
 21: @*/
 22: PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
 23: {
 24:   PetscFunctionBegin;
 26:   PetscAssertPointer(classid, 2);
 27:   *classid = obj->classid;
 28:   PetscFunctionReturn(PETSC_SUCCESS);
 29: }

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

 34:   Not Collective

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

 40:   Output Parameter:
 41: . classname - the class name, for example "Vec"

 43:   Level: developer

 45: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()`
 46: @*/
 47: PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
 48: {
 49:   PetscFunctionBegin;
 51:   PetscAssertPointer(classname, 2);
 52:   *classname = obj->class_name;
 53:   PetscFunctionReturn(PETSC_SUCCESS);
 54: }