[petsc-users] VecView DMDA and HDF5 - Unable to write out files properly

Matthew Knepley knepley at gmail.com
Thu Oct 14 07:37:35 CDT 2021


On Wed, Oct 13, 2021 at 6:30 PM Abhishek G.S. <gsabhishek1ags at gmail.com>
wrote:

> Hi,
> I need some help with getting the file output working right.
>
> I am using a DMDACreate3D to initialize my DM. This is my write function
>
> void write(){
> PetscViewer viewer;
>
> PetscViewerHDF5Open(PETSC_COMM_WORLD,filename.c_str(),FILE_MODE_WRITE,&viewer);
> DMDAVecRestoreArray(dm,global_vector,global_array)
> VecView(global_vec, viewer);
> DMDAVecGetArray(dm,global_vector,global_array);
> PetscViewerDestroy(&viewer);
> }
>
> 1) I have 2 PDE's to solve. Still, I went ahead creating a single DM with
> dof=1 and creating two vectors using the DMCreateGlobalVector(). I want to
> write the file out periodically.  Should I perform DMDAVecRestoreArray and
> DMDAVecGetArray every time is write out the global_vector? (I know that it
> is just indexing the pointers and there is no copying of values. But I am
> not sure)
>

I don't think you need the Get/RestoreArray() calls here.


> 2) I am writing out to HDF5 format. I see that the vecview is supposed to
> reorder the global_vector based on the DM. However, when I read the H5
> files, I get an error on ViSIT and my output image becomes a 1D image
> rather than a 2D/3D. What might be the reason for this ?.
> Error Msg : "In domain 0, your zonal variable "avtGhostZones" has 25600
> values, but it should have 160.  Some values were removed to ensure VisIt
> runs smoothly"
> I was using a 160x160x1 DM
>

I do not believe we support HDF5 <--> Visit/Paraview for DMDA. The
VecView() is just writing out the vector as a linear array without mesh
details. For
interfacing with the visualization, I think we use .vtu files. You should
be able to get this effect using

  VecViewFromOptions(global_vec, NULL, "-vec_view");

in your code, and then

  -vec_view vtk:sol.vtu

on the command line.


> 3) I tried using the "petsc_gen_xdmf.py" to generate the xdmf files for
> use in Paraview. Here the key ["viz/geometry"] is missing. The keys present
> in the output H5 file are just the two vectors I am writing and has no info
> about mesh. Isn't this supposed to come automatically since the vector is
> attached to the DM? How do I sort this out?
>

This support is for unstructured grids, DMPlex and DMForest.


> 4) Can I have multiple vectors attached to the DM by
> DMCreateGlobalVector() even though I created the DMDA using dof=1.
>

Yes.

  Thanks,

     Matt


> thanks,
> Abhishek
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211014/bc99d273/attachment-0001.html>


More information about the petsc-users mailing list