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: }