Thanks, Matthew for the clarification/ suggestion. Thanks, Matteo for the scripts, I'll give this a try and get back with an update
On Thu, 14 Oct 2021 at 19:57, Matthew Knepley <[email protected]> wrote: > 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/> >
