1 #define PETSC_DLL 2 3 #include "petsc.h" /*I "petsc.h" I*/ 4 5 #undef __FUNCT__ 6 #define __FUNCT__ "PetscObjectSetName" 7 /*@C 8 PetscObjectSetName - Sets a string name associated with a PETSc object. 9 10 Not Collective 11 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 17 18 Level: advanced 19 20 Concepts: object name^setting 21 22 .seealso: PetscObjectGetName() 23 @*/ 24 PetscErrorCode PETSC_DLLEXPORT PetscObjectSetName(PetscObject obj,const char name[]) 25 { 26 PetscErrorCode ierr; 27 28 PetscFunctionBegin; 29 if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object"); 30 ierr = PetscStrfree(obj->name);CHKERRQ(ierr); 31 ierr = PetscStrallocpy(name,&obj->name);CHKERRQ(ierr); 32 PetscFunctionReturn(0); 33 } 34 35 #undef __FUNCT__ 36 #define __FUNCT__ "PetscObjectName" 37 /*@C 38 PetscObjectName - Gives an object a name if it does not have one 39 40 Not Collective 41 42 Input Parameters: 43 . obj - the Petsc variable 44 Thus must be cast with a (PetscObject), for example, 45 PetscObjectSetName((PetscObject)mat,name); 46 47 Level: advanced 48 49 Concepts: object name^setting default 50 51 .seealso: PetscObjectGetName(), PetscObjectSetName() 52 @*/ 53 PetscErrorCode PETSC_DLLEXPORT PetscObjectName(PetscObject obj) 54 { 55 PetscErrorCode ierr; 56 char name[64]; 57 static int counter = 0; 58 59 PetscFunctionBegin; 60 if (!obj->name) { 61 sprintf(name,"%s_%d",obj->class_name,counter++); 62 ierr = PetscStrallocpy(name,&obj->name);CHKERRQ(ierr); 63 } 64 PetscFunctionReturn(0); 65 } 66 67 #undef __FUNCT__ 68 #define __FUNCT__ "PetscObjectPublish" 69 /*@C 70 PetscObjectPublish - Publish an object 71 72 Collective on PetscObject 73 74 Input Parameters: 75 . obj - the Petsc variable 76 Thus must be cast with a (PetscObject), for example, 77 PetscObjectSetName((PetscObject)mat,name); 78 79 Level: advanced 80 81 Concepts: publishing object 82 83 Notes: Not currently used 84 85 .seealso: PetscObjectSetName() 86 87 @*/ 88 PetscErrorCode PETSC_DLLEXPORT PetscObjectPublish(PetscObject obj) 89 { 90 PetscErrorCode ierr; 91 92 PetscFunctionBegin; 93 PetscValidHeader(obj,1); 94 if (obj->bops->publish) { 95 ierr = (*obj->bops->publish)(obj);CHKERRQ(ierr); 96 } 97 PetscFunctionReturn(0); 98 } 99 100 #undef __FUNCT__ 101 #define __FUNCT__ "PetscObjectChangeTypeName" 102 PetscErrorCode PETSC_DLLEXPORT PetscObjectChangeTypeName(PetscObject obj,const char type_name[]) 103 { 104 PetscErrorCode ierr; 105 106 PetscFunctionBegin; 107 ierr = PetscObjectTakeAccess(obj);CHKERRQ(ierr); 108 ierr = PetscStrfree(obj->type_name);CHKERRQ(ierr); 109 ierr = PetscStrallocpy(type_name,&obj->type_name);CHKERRQ(ierr); 110 ierr = PetscObjectGrantAccess(obj);CHKERRQ(ierr); 111 PetscFunctionReturn(0); 112 } 113 114