static char help[] = "Test VTK structured grid (.vts) viewer support\n\n"; #include #include /* Write 3D DMDA vector with coordinates in VTK .vts format */ PetscErrorCode test_3d(const char filename[]) { MPI_Comm comm = MPI_COMM_WORLD; const PetscInt M=10,N=15,P=30,dof=1,sw=1; const PetscScalar Lx=1.0,Ly=1.0,Lz=1.0; DM da; Vec v; PetscViewer view; DMDALocalInfo info; PetscScalar ***va; PetscInt i,j,k; PetscErrorCode ierr; ierr = DMDACreate3d(comm,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR, M,N,P,PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,dof,sw,NULL,NULL,NULL,&da);CHKERRQ(ierr); ierr = DMSetFromOptions(da);CHKERRQ(ierr); ierr = DMSetUp(da);CHKERRQ(ierr); ierr = DMDASetUniformCoordinates(da,0.0,Lx,0.0,Ly,0.0,Lz);CHKERRQ(ierr); ierr = DMDAGetLocalInfo(da,&info);CHKERRQ(ierr); ierr = DMCreateGlobalVector(da,&v);CHKERRQ(ierr); ierr = DMDAVecGetArray(da,v,&va);CHKERRQ(ierr); for (k=info.zs; k