On Thu, Oct 14, 2021 at 9:21 AM Matteo Semplice < [email protected]> wrote:
> > Il 14/10/21 14:37, Matthew Knepley ha scritto: > > On Wed, Oct 13, 2021 at 6:30 PM Abhishek G.S. <[email protected]> > 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. > > Hi. > > If you want to stick with HDF5, you can also write a XDMF file with the > grid information and open that in Paraview. > > I am attaching some routines that I have written to do that in a solver > that deals with a time dependent PDE system with 2 variables; with them I > end up with a single XDMF file that Paraview can load and which contains > references to all timesteps in my simulations, with each timestep being > contained in an HDF5 file on its own. The idea is to call writeDomain at > the beginning of the simulation, writeHDF5 for each timestep that I want to > save and writeSimulationXDMF at the end. (Warning: 3D is in use, while 2D > ia almost untested...) > > It's not the optimal solution since (1) all timesteps could be in the same > HDF5 and (2) in each HDF5 i write the vectors separately and it would be > better to dump the entire data in one go and interpret them as a > Nx*Ny*Nz*Nvariables data from the XDMF. Nevertheless they might be a > starting point for you if you wan to try this approach. > > You can have HDF5 put the vectors in a single array with a time dimension now. Then you just alter the xdmf to point into that array. I do this with the unstructured code. Thanks, Matt > Matteo > > > >> 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/ > <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cf27a34f639784d0231c708d98f0f7279%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637698118789688898%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Xb8nyv7BIl6zSBbbLFkQzluIF8s%2BOLwUQeVfjtr3q4k%3D&reserved=0> > > -- > --- > Professore Associato in Analisi Numerica > Dipartimento di Scienza e Alta Tecnologia > Università degli Studi dell'Insubria > Via Valleggio, 11 - Como > > -- 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/>
