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: PetscViewerHDF5ReadAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,NULL,&attrReadVal);
34: PetscPrintf(PETSC_COMM_WORLD,"Attribute value read: '%s'\n\n",attrReadVal);
35: PetscFree(attrReadVal);
37: PetscViewerDestroy(&viewer);
38: PetscFinalize();
39: return ierr;
40: }
42: /*TEST
44: build:
45: requires: hdf5
47: test:
49: TEST*/