<div dir="ltr"><div>Ok, that's right, now i understand. Thanks!<br></div><div><br></div><div>Kind regards.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El lun., 24 de feb. de 2020 a la(s) 17:48, Jed Brown (<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Emmanuel Ayala <<a href="mailto:juaneah@gmail.com" target="_blank">juaneah@gmail.com</a>> writes:<br>
<br>
> Hi everyone,<br>
><br>
> I think VTK is not the best option to save files, but I just want a quick<br>
> way to visualize a structured grid generated with DMDACreate3d. I visualize<br>
> the vts file with ParaView.<br>
><br>
> The situation is, If I change the number global dimension in each direction<br>
> of the array (*M,N,P *parameters for DMDACreate3d) it is supposed that the<br>
> size of the mesh won't changes, ONLY the number of division in the affected<br>
> direction, but it does NOT happen ( I used DMDASetUniformCoordinates to<br>
> have an uniform grid ). When I save the file, and then check it with<br>
> ParaView, the size changes. (I checked the coordinates with<br>
> DMGetCoordinates everything is OK, size and division), the problem is in<br>
> the visualization using VTK.<br>
><br>
> I use the next set of functions to save the file.<br>
<br>
Normally you view a field defined on your DM (which will be correctly<br>
mapped by your coordinates), not the coordinates (which reside on a<br>
coordinate DM, which does not itself have coordinates).  Try something<br>
like this:<br>
<br>
  DMCreateGlobalVector(dm, &U);<br>
  VecView(U, viewer);<br>
<br>
> ierr =<br>
> PetscViewerVTKOpen(PETSC_COMM_WORLD,"nodes_coord.vts",FILE_MODE_WRITE,&view);<br>
> CHKERRQ(ierr);<br>
> ierr = DMGetCoordinates(da_nodes,&v1); CHKERRQ(ierr); // borrowed reference<br>
> ierr = VecView(coord,view);CHKERRQ(ierr);<br>
><br>
> Then, I realize that if I create a vector with DMCreateGlobalVector and<br>
> then copy in it the coordinate from DMGetCoordinates, the size remains<br>
> unchanged (in the visualization) and just the number of elements along the<br>
> direction change (when I modify M,N,P).<br>
><br>
> ierr =<br>
> PetscViewerVTKOpen(PETSC_COMM_WORLD,"nodes_coord.vts",FILE_MODE_WRITE,&view);<br>
> CHKERRQ(ierr);<br>
> ierr = DMGetCoordinates(da_nodes,&v1); CHKERRQ(ierr); // borrowed reference<br>
> ierr = DMCreateGlobalVector(da_nodes,&coord); CHKERRQ(ierr);<br>
> ierr = VecCopy(v1,coord); CHKERRQ(ierr);<br>
> ierr = VecView(coord,view);CHKERRQ(ierr);<br>
><br>
> *There is something wrong with PetscViewerVTKOpen or it's just the approach<br>
> that I used?*<br>
><br>
> Kind regards.<br>
</blockquote></div>