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

 29:   if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
 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;

 60:   if (!obj->name) {
 61:     sprintf(name,"%s_%d",obj->class_name,counter++);
 62:     PetscStrallocpy(name,&obj->name);
 63:   }
 64:   return(0);
 65: }

 69: /*@C 
 70:    PetscObjectPublish - Publish an object

 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

 83:    Notes: Not currently used

 85: .seealso: PetscObjectSetName()

 87: @*/
 88: PetscErrorCode  PetscObjectPublish(PetscObject obj)
 89: {

 94:   if (obj->bops->publish) {
 95:     (*obj->bops->publish)(obj);
 96:   }
 97:   return(0);
 98: }

102: PetscErrorCode  PetscObjectChangeTypeName(PetscObject obj,const char type_name[])
103: {

107:   PetscObjectTakeAccess(obj);
108:   PetscStrfree(obj->type_name);
109:   PetscStrallocpy(type_name,&obj->type_name);
110:   PetscObjectGrantAccess(obj);
111:   return(0);
112: }