xref: /petsc/src/sys/ams/pams.c (revision f3fe499b4cc4d64bf04aa4f5e4963dcc4eb56541)
1 
2 #include "petscsys.h"        /*I    "petscsys.h"   I*/
3 
4 /*
5      If true then every PETSc object will be published with the AMS
6 */
7 PetscTruth PetscAMSPublishAll;
8 
9 /*
10     Publishes the common header part of any PETSc object to the AMS
11 */
12 #undef __FUNCT__
13 #define __FUNCT__ "PetscObjectPublishBaseBegin"
14 int PetscObjectPublishBaseBegin(PetscObject obj)
15 {
16   AMS_Memory     amem;
17   AMS_Comm       acomm;
18   PetscErrorCode ierr;
19 
20   PetscFunctionBegin;
21   ierr = PetscObjectName(obj);CHKERRQ(ierr);
22 
23   ierr      = PetscViewerAMSGetAMSComm(PETSC_VIEWER_AMS_(obj->comm),&acomm);CHKERRQ(ierr);
24   ierr      = AMS_Memory_create(acomm,obj->name,&amem);CHKERRQ(ierr);
25   obj->amem = (int)amem;
26 
27   ierr = AMS_Memory_take_access(amem);CHKERRQ(ierr);
28   ierr = AMS_Memory_add_field(amem,"Class",&obj->class_name,1,AMS_STRING,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);CHKERRQ(ierr);
29   ierr = AMS_Memory_add_field(amem,"Type",&obj->type_name,1,AMS_STRING,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);CHKERRQ(ierr);
30   ierr = AMS_Memory_add_field(amem,"Id",&obj->id,1,AMS_INT,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);CHKERRQ(ierr);
31   ierr = AMS_Memory_add_field(amem,"ParentId",&obj->parentid,1,AMS_INT,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);CHKERRQ(ierr);
32   ierr = AMS_Memory_add_field(amem,"Name",&obj->name,1,AMS_STRING,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);CHKERRQ(ierr);
33   PetscFunctionReturn(0);
34 }
35 
36 #undef __FUNCT__
37 #define __FUNCT__ "PetscObjectPublishBaseEnd"
38 int PetscObjectPublishBaseEnd(PetscObject obj)
39 {
40   AMS_Memory     amem = (AMS_Memory) obj->amem;
41   PetscErrorCode ierr;
42 
43   PetscFunctionBegin;
44 
45   if (amem < 0) SETERRQ(obj->comm,PETSC_ERR_ARG_WRONGSTATE,"Called without a call to PetscObjectPublishBaseBegin()");
46   ierr = AMS_Memory_publish(amem);CHKERRQ(ierr);
47   ierr = AMS_Memory_grant_access(amem);CHKERRQ(ierr);
48   PetscFunctionReturn(0);
49 }
50 
51