Actual source code: ex55.c
  1: static char help[] = "Tests I/O of vector and string attribute for HDF5 format\n\n";
  3: #include <petscvec.h>
  4: #include <petscviewerhdf5.h>
  6: int main(int argc,char **args)
  7: {
  8:   PetscErrorCode    ierr;
  9:   Vec               u;
 10:   PetscViewer       viewer;
 11:   char             *attrReadVal, attrWriteVal[20]={"Hello World!!"};
 13:   PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr;
 15:   /* PART 1:  Generate vector, then write it in the given data format */
 16:   VecCreate(PETSC_COMM_WORLD,&u);
 17:   PetscObjectSetName((PetscObject)u, "Test_Vec");
 18:   VecSetSizes(u,PETSC_DECIDE,10);
 19:   VecSetFromOptions(u);
 20:   VecSet(u,0.);
 22:   /* write vector and attribute*/
 23:   PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_WRITE,&viewer);
 24:   VecView(u,viewer);
 25:   PetscPrintf(PETSC_COMM_WORLD,"Attribute value written: '%s'\n\n",attrWriteVal);
 26:   PetscViewerHDF5WriteAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,attrWriteVal);
 28:   PetscViewerDestroy(&viewer);
 29:   VecDestroy(&u);
 31:   /* PART 2:  Read in attribute */
 32:   PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_READ,&viewer);
 33:   PetscViewerHDF5PushGroup(viewer, "/");
 34:   PetscViewerHDF5ReadAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,&attrReadVal);
 35:   PetscPrintf(PETSC_COMM_WORLD,"Attribute value read: '%s'\n\n",attrReadVal);
 36:   PetscFree(attrReadVal);
 38:   PetscViewerDestroy(&viewer);
 39:   PetscFinalize();
 40:   return ierr;
 41: }
 43: /*TEST
 45:      build:
 46:        requires: hdf5
 48:      test:
 51: TEST*/