xref: /petsc/src/sys/objects/pgname.c (revision 34c645fd3b0199e05bec2fcc32d3597bfeb7f4f2)
1 #include <petsc/private/petscimpl.h> /*I    "petscsys.h"   I*/
2 
3 /*@C
4   PetscObjectGetName - Gets a string name associated with a PETSc object.
5 
6   Not Collective unless `obj` has not yet been named
7 
8   Input Parameters:
9 + obj  - the PETSc variable. It must be cast with a (`PetscObject`), for example,
10          `PetscObjectGetName`((`PetscObject`)mat,&name);
11 - name - the name associated with `obj`, do not free
12 
13   Level: intermediate
14 
15   Note:
16   Calls `PetscObjectName()` if a name has not yet been provided to the object.
17 
18 .seealso: `PetscObjectSetName()`, `PetscObjectName()`, `PetscObject`, `PetscObjectGetId()`
19 @*/
20 PetscErrorCode PetscObjectGetName(PetscObject obj, const char *name[])
21 {
22   PetscFunctionBegin;
23   PetscValidHeader(obj, 1);
24   PetscAssertPointer(name, 2);
25   PetscCall(PetscObjectName(obj));
26   *name = obj->name;
27   PetscFunctionReturn(PETSC_SUCCESS);
28 }
29