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; PetscCall(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)); PetscCall(DMSetFromOptions(da)); PetscCall(DMSetUp(da)); PetscCall(DMDASetUniformCoordinates(da,0.0,Lx,0.0,Ly,0.0,Lz)); PetscCall(DMDAGetLocalInfo(da,&info)); PetscCall(DMCreateGlobalVector(da,&v)); PetscCall(DMDAVecGetArray(da,v,&va)); for (k=info.zs; k