xref: /petsc/src/sys/objects/pname.c (revision 3cfa868005f9094c013e5a0923a816520f5fe8a6)
1e5c89e4eSSatish Balay #define PETSC_DLL
2e5c89e4eSSatish Balay 
3e5c89e4eSSatish Balay #include "petsc.h"        /*I    "petsc.h"   I*/
4e5c89e4eSSatish Balay 
5e5c89e4eSSatish Balay #undef __FUNCT__
6e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectSetName"
7e5c89e4eSSatish Balay /*@C
8e5c89e4eSSatish Balay    PetscObjectSetName - Sets a string name associated with a PETSc object.
9e5c89e4eSSatish Balay 
10e5c89e4eSSatish Balay    Not Collective
11e5c89e4eSSatish Balay 
12e5c89e4eSSatish Balay    Input Parameters:
13e5c89e4eSSatish Balay +  obj - the Petsc variable
14e5c89e4eSSatish Balay          Thus must be cast with a (PetscObject), for example,
15e5c89e4eSSatish Balay          PetscObjectSetName((PetscObject)mat,name);
16e5c89e4eSSatish Balay -  name - the name to give obj
17e5c89e4eSSatish Balay 
18e5c89e4eSSatish Balay    Level: advanced
19e5c89e4eSSatish Balay 
20e5c89e4eSSatish Balay    Concepts: object name^setting
21e5c89e4eSSatish Balay 
22e5c89e4eSSatish Balay .seealso: PetscObjectGetName()
23e5c89e4eSSatish Balay @*/
24e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectSetName(PetscObject obj,const char name[])
25e5c89e4eSSatish Balay {
26e5c89e4eSSatish Balay   PetscErrorCode ierr;
27e5c89e4eSSatish Balay 
28e5c89e4eSSatish Balay   PetscFunctionBegin;
29*3cfa8680SLisandro Dalcin   PetscValidHeader(obj,1);
30e5c89e4eSSatish Balay   ierr = PetscStrfree(obj->name);CHKERRQ(ierr);
31e5c89e4eSSatish Balay   ierr = PetscStrallocpy(name,&obj->name);CHKERRQ(ierr);
32e5c89e4eSSatish Balay   PetscFunctionReturn(0);
33e5c89e4eSSatish Balay }
34e5c89e4eSSatish Balay 
35e5c89e4eSSatish Balay #undef __FUNCT__
36e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectName"
37e5c89e4eSSatish Balay /*@C
38e5c89e4eSSatish Balay    PetscObjectName - Gives an object a name if it does not have one
39e5c89e4eSSatish Balay 
40e5c89e4eSSatish Balay    Not Collective
41e5c89e4eSSatish Balay 
42e5c89e4eSSatish Balay    Input Parameters:
43e5c89e4eSSatish Balay .  obj - the Petsc variable
44e5c89e4eSSatish Balay          Thus must be cast with a (PetscObject), for example,
45e5c89e4eSSatish Balay          PetscObjectSetName((PetscObject)mat,name);
46e5c89e4eSSatish Balay 
47e5c89e4eSSatish Balay    Level: advanced
48e5c89e4eSSatish Balay 
49e5c89e4eSSatish Balay    Concepts: object name^setting default
50e5c89e4eSSatish Balay 
51e5c89e4eSSatish Balay .seealso: PetscObjectGetName(), PetscObjectSetName()
52e5c89e4eSSatish Balay @*/
53e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectName(PetscObject obj)
54e5c89e4eSSatish Balay {
55e5c89e4eSSatish Balay   PetscErrorCode ierr;
56e5c89e4eSSatish Balay   char       name[64];
57e5c89e4eSSatish Balay   static int counter = 0;
58e5c89e4eSSatish Balay 
59e5c89e4eSSatish Balay   PetscFunctionBegin;
60*3cfa8680SLisandro Dalcin   PetscValidHeader(obj,1);
61e5c89e4eSSatish Balay   if (!obj->name) {
62e5c89e4eSSatish Balay     sprintf(name,"%s_%d",obj->class_name,counter++);
63e5c89e4eSSatish Balay     ierr = PetscStrallocpy(name,&obj->name);CHKERRQ(ierr);
64e5c89e4eSSatish Balay   }
65e5c89e4eSSatish Balay   PetscFunctionReturn(0);
66e5c89e4eSSatish Balay }
67e5c89e4eSSatish Balay 
68e5c89e4eSSatish Balay #undef __FUNCT__
69e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectPublish"
70e5c89e4eSSatish Balay /*@C
71e5c89e4eSSatish Balay    PetscObjectPublish - Publish an object
72e5c89e4eSSatish Balay 
73e5c89e4eSSatish Balay    Collective on PetscObject
74e5c89e4eSSatish Balay 
75e5c89e4eSSatish Balay    Input Parameters:
76e5c89e4eSSatish Balay .  obj - the Petsc variable
77e5c89e4eSSatish Balay          Thus must be cast with a (PetscObject), for example,
78e5c89e4eSSatish Balay          PetscObjectSetName((PetscObject)mat,name);
79e5c89e4eSSatish Balay 
80e5c89e4eSSatish Balay    Level: advanced
81e5c89e4eSSatish Balay 
82e5c89e4eSSatish Balay    Concepts: publishing object
83e5c89e4eSSatish Balay 
84e5c89e4eSSatish Balay    Notes: Not currently used
85e5c89e4eSSatish Balay 
86e5c89e4eSSatish Balay .seealso: PetscObjectSetName()
87e5c89e4eSSatish Balay 
88e5c89e4eSSatish Balay @*/
89e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectPublish(PetscObject obj)
90e5c89e4eSSatish Balay {
91e5c89e4eSSatish Balay   PetscErrorCode ierr;
92e5c89e4eSSatish Balay 
93e5c89e4eSSatish Balay   PetscFunctionBegin;
94e5c89e4eSSatish Balay   PetscValidHeader(obj,1);
95e5c89e4eSSatish Balay   if (obj->bops->publish) {
96e5c89e4eSSatish Balay     ierr = (*obj->bops->publish)(obj);CHKERRQ(ierr);
97e5c89e4eSSatish Balay   }
98e5c89e4eSSatish Balay   PetscFunctionReturn(0);
99e5c89e4eSSatish Balay }
100e5c89e4eSSatish Balay 
101e5c89e4eSSatish Balay #undef __FUNCT__
102e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectChangeTypeName"
103e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectChangeTypeName(PetscObject obj,const char type_name[])
104e5c89e4eSSatish Balay {
105e5c89e4eSSatish Balay   PetscErrorCode ierr;
106e5c89e4eSSatish Balay 
107e5c89e4eSSatish Balay   PetscFunctionBegin;
108*3cfa8680SLisandro Dalcin   PetscValidHeader(obj,1);
109e5c89e4eSSatish Balay   ierr = PetscObjectTakeAccess(obj);CHKERRQ(ierr);
110e5c89e4eSSatish Balay   ierr = PetscStrfree(obj->type_name);CHKERRQ(ierr);
111e5c89e4eSSatish Balay   ierr = PetscStrallocpy(type_name,&obj->type_name);CHKERRQ(ierr);
112e5c89e4eSSatish Balay   ierr = PetscObjectGrantAccess(obj);CHKERRQ(ierr);
113e5c89e4eSSatish Balay   PetscFunctionReturn(0);
114e5c89e4eSSatish Balay }
115e5c89e4eSSatish Balay 
116