Actual source code: pname.c
1: #define PETSC_DLL
3: #include petsc.h
7: /*@C
8: PetscObjectSetName - Sets a string name associated with a PETSc object.
10: Not Collective
12: Input Parameters:
13: + obj - the Petsc variable
14: Thus must be cast with a (PetscObject), for example,
15: PetscObjectSetName((PetscObject)mat,name);
16: - name - the name to give obj
18: Level: advanced
20: Concepts: object name^setting
22: .seealso: PetscObjectGetName()
23: @*/
24: PetscErrorCode PetscObjectSetName(PetscObject obj,const char name[])
25: {
30: PetscStrfree(obj->name);
31: PetscStrallocpy(name,&obj->name);
32: return(0);
33: }
37: /*@C
38: PetscObjectName - Gives an object a name if it does not have one
40: Not Collective
42: Input Parameters:
43: . obj - the Petsc variable
44: Thus must be cast with a (PetscObject), for example,
45: PetscObjectSetName((PetscObject)mat,name);
47: Level: advanced
49: Concepts: object name^setting default
51: .seealso: PetscObjectGetName(), PetscObjectSetName()
52: @*/
53: PetscErrorCode PetscObjectName(PetscObject obj)
54: {
56: char name[64];
57: static int counter = 0;
61: if (!obj->name) {
62: sprintf(name,"%s_%d",obj->class_name,counter++);
63: PetscStrallocpy(name,&obj->name);
64: }
65: return(0);
66: }
70: /*@C
71: PetscObjectPublish - Publish an object
73: Collective on PetscObject
75: Input Parameters:
76: . obj - the Petsc variable
77: Thus must be cast with a (PetscObject), for example,
78: PetscObjectSetName((PetscObject)mat,name);
80: Level: advanced
82: Concepts: publishing object
84: Notes: Not currently used
86: .seealso: PetscObjectSetName()
88: @*/
89: PetscErrorCode PetscObjectPublish(PetscObject obj)
90: {
95: if (obj->bops->publish) {
96: (*obj->bops->publish)(obj);
97: }
98: return(0);
99: }
103: PetscErrorCode PetscObjectChangeTypeName(PetscObject obj,const char type_name[])
104: {
109: PetscObjectTakeAccess(obj);
110: PetscStrfree(obj->type_name);
111: PetscStrallocpy(type_name,&obj->type_name);
112: PetscObjectGrantAccess(obj);
113: return(0);
114: }