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: /*@C
6: PetscObjectSetName - Sets a string name associated with a PETSc object.
8: Not Collective
10: Input Parameters:
11: + obj - the Petsc variable
12: Thus must be cast with a (PetscObject), for example,
13: PetscObjectSetName((PetscObject)mat,name);
14: - name - the name to give obj
16: Level: advanced
18: Concepts: object name^setting
20: .seealso: PetscObjectGetName()
21: @*/
22: int PetscObjectSetName(PetscObject obj,const char name[])
23: {
27: if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
28: PetscStrfree(obj->name);
29: PetscStrallocpy(name,&obj->name);
30: return(0);
31: }
33: /*@C
34: PetscObjectName - Gives an object a name if it does not have one
36: Not Collective
38: Input Parameters:
39: . obj - the Petsc variable
40: Thus must be cast with a (PetscObject), for example,
41: PetscObjectSetName((PetscObject)mat,name);
43: Level: advanced
45: Concepts: object name^setting default
47: .seealso: PetscObjectGetName(), PetscObjectSetName()
48: @*/
49: int PetscObjectName(PetscObject obj)
50: {
51: int ierr;
52: char name[64];
53: static int counter = 0;
56: if (!obj->name) {
57: sprintf(name,"%s_%d",obj->class_name,counter++);
58: PetscStrallocpy(name,&obj->name);
59: }
60: return(0);
61: }
63: /*@C
64: PetscObjectPublish - Publishs an object for the ALICE Memory Snooper
66: Collective on PetscObject
68: Input Parameters:
69: . obj - the Petsc variable
70: Thus must be cast with a (PetscObject), for example,
71: PetscObjectSetName((PetscObject)mat,name);
73: Level: advanced
75: Concepts: publishing object
76: Concepts: AMS
77: Concepts: ALICE Memory Snooper
78: Concepts: Asynchronous Memory Snooper
80: .seealso: PetscObjectSetName(), PetscViewerAMSOpen()
82: @*/
83: int PetscObjectPublish(PetscObject obj)
84: {
89: if (obj->bops->publish) {
90: (*obj->bops->publish)(obj);
91: }
92: return(0);
93: }
95: int PetscObjectChangeTypeName(PetscObject obj,char *type_name)
96: {
100: PetscObjectTakeAccess(obj);
101: PetscStrfree(obj->type_name);
102: PetscStrallocpy(type_name,&obj->type_name);
103: PetscObjectGrantAccess(obj);
104: return(0);
105: }
107: /*@C
108: PetscObjectChangeSerializeName - Changes the serializer name.
110: Not Collective
112: Input Parameters:
113: + obj - The PETSc object, for example a Vec, Mat or KSP.
114: - serialize_name - The string containing a serializer name
116: Note:
117: This works for any PETSc object, and thus must be cast with a (PetscObject).
119: Level: intermediate
121: .keywords: changing serializers
122: .seealso: PetscObjectChangeTypeName()
123: @*/
124: int PetscObjectChangeSerializeName(PetscObject obj, char *serialize_name)
125: {
129: PetscObjectTakeAccess(obj);
130: PetscStrfree(obj->serialize_name);
131: PetscStrallocpy(serialize_name, &obj->serialize_name);
132: PetscObjectGrantAccess(obj);
133: return(0);
134: }