hi On 16/10/15 16:54, Matthew Knepley wrote:
No, that should work. This is how we do it in PyLith. There must be some setup problem. When you look at the HDF5 file. Doesit have a dimension for timestep?
No, it doesn't.Is there any extra setup I might need to do to get it to work? I've attached a minimal example code, mesh and output.
Cheers, Adrian -- Dr Adrian Croucher Senior Research Fellow Department of Engineering Science University of Auckland, New Zealand email: [email protected] tel: +64 (0)9 923 84611
program testview
implicit none
#include <petsc/finclude/petsc.h90>
MPI_Comm :: comm
PetscViewer :: viewer
PetscInt :: i, dim
PetscInt, parameter :: dof = 1
PetscInt, parameter :: nt = 3
PetscErrorCode :: ierr
character(40), parameter :: filename = "column.exo"
DM :: dm
Vec :: X
PetscFV :: fvm
PetscDS :: ds
call PetscInitialize(PETSC_NULL_CHARACTER, ierr); CHKERRQ(ierr)
comm = PETSC_COMM_WORLD
call DMPlexCreateExodusFromFile(comm, filename, PETSC_TRUE, dm, &
ierr); CHKERRQ(ierr)
call DMPlexSetAdjacencyUseCone(dm, PETSC_TRUE, ierr)
CHKERRQ(ierr)
call DMPlexSetAdjacencyUseClosure(dm, PETSC_FALSE, ierr)
CHKERRQ(ierr)
call PetscFVCreate(comm, fvm, ierr); CHKERRQ(ierr)
call PetscFVSetNumComponents(fvm, dof, ierr); CHKERRQ(ierr)
call DMGetDimension(dm, dim, ierr); CHKERRQ(ierr)
call PetscFVSetSpatialDimension(fvm, dim, ierr); CHKERRQ(ierr)
call DMGetDS(dm, ds, ierr); CHKERRQ(ierr)
call PetscDSAddDiscretization(ds, fvm, ierr); CHKERRQ(ierr)
call DMCreateGlobalVector(dm, X, ierr); CHKERRQ(ierr)
call PetscObjectSetName(X, "vec", ierr); CHKERRQ(ierr)
call PetscViewerHDF5Open(comm, "view.h5", FILE_MODE_WRITE, viewer, ierr)
CHKERRQ(ierr)
call PetscViewerHDF5PushGroup(viewer, "/", ierr); CHKERRQ(ierr)
do i = 0, nt - 1
call VecSet(X, dble(i), ierr); CHKERRQ(ierr)
call PetscViewerHDF5SetTimestep(viewer, i, ierr); CHKERRQ(ierr)
call VecView(X, viewer, ierr); CHKERRQ(ierr)
end do
call PetscViewerHDF5PopGroup(viewer, ierr); CHKERRQ(ierr)
call PetscViewerDestroy(viewer, ierr); CHKERRQ(ierr)
call VecDestroy(X, ierr); CHKERRQ(ierr)
call DMDestroy(dm, ierr); CHKERRQ(ierr)
call PetscFinalize(ierr); CHKERRQ(ierr)
end program testview
column.exo
Description: Binary data
view.h5
Description: HDF file
