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