1c4762a1bSJed Brown static char help[] = "Tests I/O of vector and string attribute for HDF5 format\n\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscvec.h> 4c4762a1bSJed Brown #include <petscviewerhdf5.h> 5c4762a1bSJed Brown 6c4762a1bSJed Brown int main(int argc,char **args) 7c4762a1bSJed Brown { 8c4762a1bSJed Brown Vec u; 9c4762a1bSJed Brown PetscViewer viewer; 10c4762a1bSJed Brown char *attrReadVal, attrWriteVal[20]={"Hello World!!"}; 11c4762a1bSJed Brown 12*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscInitialize(&argc,&args,(char*)0,help)); 13c4762a1bSJed Brown 14c4762a1bSJed Brown /* PART 1: Generate vector, then write it in the given data format */ 155f80ce2aSJacob Faibussowitsch CHKERRQ(VecCreate(PETSC_COMM_WORLD,&u)); 165f80ce2aSJacob Faibussowitsch CHKERRQ(PetscObjectSetName((PetscObject)u, "Test_Vec")); 175f80ce2aSJacob Faibussowitsch CHKERRQ(VecSetSizes(u,PETSC_DECIDE,10)); 185f80ce2aSJacob Faibussowitsch CHKERRQ(VecSetFromOptions(u)); 195f80ce2aSJacob Faibussowitsch CHKERRQ(VecSet(u,0.)); 20c4762a1bSJed Brown 21c4762a1bSJed Brown /* write vector and attribute*/ 225f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_WRITE,&viewer)); 235f80ce2aSJacob Faibussowitsch CHKERRQ(VecView(u,viewer)); 245f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Attribute value written: '%s'\n\n",attrWriteVal)); 255f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerHDF5WriteAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,attrWriteVal)); 26c4762a1bSJed Brown 275f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerDestroy(&viewer)); 285f80ce2aSJacob Faibussowitsch CHKERRQ(VecDestroy(&u)); 29c4762a1bSJed Brown 30c4762a1bSJed Brown /* PART 2: Read in attribute */ 315f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerHDF5Open(PETSC_COMM_WORLD,"vector.dat",FILE_MODE_READ,&viewer)); 325f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerHDF5ReadAttribute(viewer,"Test_Vec","Test_Attr",PETSC_STRING,NULL,&attrReadVal)); 335f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Attribute value read: '%s'\n\n",attrReadVal)); 345f80ce2aSJacob Faibussowitsch CHKERRQ(PetscFree(attrReadVal)); 35c4762a1bSJed Brown 365f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerDestroy(&viewer)); 37*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscFinalize()); 38*b122ec5aSJacob Faibussowitsch return 0; 39c4762a1bSJed Brown } 40c4762a1bSJed Brown 41c4762a1bSJed Brown /*TEST 42c4762a1bSJed Brown 43c4762a1bSJed Brown build: 44c4762a1bSJed Brown requires: hdf5 45c4762a1bSJed Brown 46c4762a1bSJed Brown test: 47c4762a1bSJed Brown 48c4762a1bSJed Brown TEST*/ 49