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:   Vec               u;
  9:   PetscViewer       viewer;
 10:   char             *attrReadVal, attrWriteVal[20]={"Hello World!!"};

 12:   PetscInitialize(&argc,&args,(char*)0,help);

 14:   /* PART 1:  Generate vector, then write it in the given data format */
 15:   VecCreate(PETSC_COMM_WORLD,&u);
 16:   PetscObjectSetName((PetscObject)u, "Test_Vec");
 17:   VecSetSizes(u,PETSC_DECIDE,10);
 18:   VecSetFromOptions(u);
 19:   VecSet(u,0.);

 21:   /* write vector and attribute*/
 22:   PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_WRITE,&viewer);
 23:   VecView(u,viewer);
 24:   PetscPrintf(PETSC_COMM_WORLD,"Attribute value written: '%s'\n\n",attrWriteVal);
 25:   PetscViewerHDF5WriteAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,attrWriteVal);

 27:   PetscViewerDestroy(&viewer);
 28:   VecDestroy(&u);

 30:   /* PART 2:  Read in attribute */
 31:   PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_READ,&viewer);
 32:   PetscViewerHDF5ReadAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,NULL,&attrReadVal);
 33:   PetscPrintf(PETSC_COMM_WORLD,"Attribute value read: '%s'\n\n",attrReadVal);
 34:   PetscFree(attrReadVal);

 36:   PetscViewerDestroy(&viewer);
 37:   PetscFinalize();
 38:   return 0;
 39: }

 41: /*TEST

 43:      build:
 44:        requires: hdf5

 46:      test:

 48: TEST*/