Actual source code: pname.c
1: /*$Id: pname.c,v 1.42 2001/04/10 19:34:33 bsmith Exp $*/
3: #include petsc.h
5: #undef __FUNCT__
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: int PetscObjectSetName(PetscObject obj,const char name[])
25: {
29: if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
30: PetscStrfree(obj->name);
31: PetscStrallocpy(name,&obj->name);
32: return(0);
33: }
35: #undef __FUNCT__
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: int PetscObjectName(PetscObject obj)
54: {
55: int ierr;
56: char name[64];
57: static int counter = 0;
60: if (!obj->name) {
61: sprintf(name,"%s_%d",obj->class_name,counter++);
62: PetscStrallocpy(name,&obj->name);
63: }
64: return(0);
65: }
67: #undef __FUNCT__
69: /*@C
70: PetscObjectPublish - Publishs an object for the ALICE Memory Snooper
72: Collective on PetscObject
74: Input Parameters:
75: . obj - the Petsc variable
76: Thus must be cast with a (PetscObject), for example,
77: PetscObjectSetName((PetscObject)mat,name);
79: Level: advanced
81: Concepts: publishing object
82: Concepts: AMS
83: Concepts: ALICE Memory Snooper
84: Concepts: Asynchronous Memory Snooper
86: .seealso: PetscObjectSetName(), PetscViewerAMSOpen()
88: @*/
89: int PetscObjectPublish(PetscObject obj)
90: {
95: if (obj->bops->publish) {
96: (*obj->bops->publish)(obj);
97: }
98: return(0);
99: }
101: #undef __FUNCT__
103: int PetscObjectChangeTypeName(PetscObject obj,char *type_name)
104: {
108: PetscObjectTakeAccess(obj);
109: PetscStrfree(obj->type_name);
110: PetscStrallocpy(type_name,&obj->type_name);
111: PetscObjectGrantAccess(obj);
112: return(0);
113: }
115: #undef __FUNCT__
117: /*@C
118: PetscObjectChangeSerializeName - Changes the serializer name.
120: Not Collective
122: Input Parameters:
123: + obj - The PETSc object, for example a Vec, Mat or KSP.
124: - serialize_name - The string containing a serializer name
126: Note:
127: This works for any PETSc object, and thus must be cast with a (PetscObject).
129: Level: intermediate
131: .keywords: changing serializers
132: .seealso: PetscObjectChangeTypeName()
133: @*/
134: int PetscObjectChangeSerializeName(PetscObject obj, char *serialize_name)
135: {
139: PetscObjectTakeAccess(obj);
140: PetscStrfree(obj->serialize_name);
141: PetscStrallocpy(serialize_name, &obj->serialize_name);
142: PetscObjectGrantAccess(obj);
143: return(0);
144: }