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!!"};
13: PetscInitialize(&argc, &args, (char *)0, help);
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 0;
40: }
42: /*TEST
44: build:
45: requires: hdf5
47: test:
49: TEST*/