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