I'm not sure why you are skeptical. FiPy does not use VTK internally, so the fact that the FiPy mesh is defined appropriately for its own use has nothing to do with whether we export it correctly as VTK. It would appear that we do not output VTK_CONVEX_POINT_SETs correctly.
________________________________________ From: A A <[email protected]> Sent: Thursday, January 23, 2020 6:10 AM To: Guyer, Jonathan E. Dr. (Fed); FIPY Subject: Re: Some questions on the viewer Hi Jon, It looks like pyvista does support VTK_CONVEX_POINT_SET. Please take a look at the discussion I started on https://github.com/pyvista/pyvista-support/issues/108 They are claiming that fipy's mesh might be ill-formed which I am a bit skeptical about. For instance I think Grid2D works fine, but for some reason I still get a blank plot with pyvista. A contribution from the fipy team on the above discussion would be most useful. If there is a resolution I'd be happy to take a look at submitting a pull request for a pyvista-enabled Viewer class, though I may need some guidance in order not to break things. Regards, Amine On Wed, Jan 22, 2020 at 6:19 PM Guyer, Jonathan E. Dr. (Fed) via fipy <[email protected]<mailto:[email protected]>> wrote: FiPy can have completely general polyhedral cells, whereas VTK is more restrictive. In principle, VTK_CONVEX_POINT_SET allows the same generality, but as you've seen, this cell type is not implemented by many tools using VTK. General 2D meshes know to export VTK_POLYGONs, which are widely understood. 2D grids bypass this specialization for historical reasons and so just get the default VTK_CONVEX_POINT_SET. We've never had any call to render 2D grids with VTK tools, so we've not noticed this before. Grid meshes should be exported as VTK_PIXEL or VTK_VOXEL. Fixing in this in FiPy is likely to happen sooner than getting any of those other packages to support VTK_CONVEX_POINT_SET. I have a (stalled) development that does a better job with mesh io, but higher priority tasks have gotten in the way. > On Jan 22, 2020, at 10:11 AM, A A > <[email protected]<mailto:[email protected]>> wrote: > > > This is somewhat related to my last comment about visualizing meshes. I'm > noticing that both CylindricalGrid2D and Grid2D default to a cell type of 41 > which according to VTK is a VTK_CONVEX_POINT_SET (see > https://vtk.org/doc/nightly/html/vtkCellType_8h_source.html<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fvtk.org%2Fdoc%2Fnightly%2Fhtml%2FvtkCellType_8h_source.html&data=02%7C01%7Cjonathan.guyer%40nist.gov%7C5610ae87d73b44e97ca208d79ff4dec5%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C1%7C637153746369115046&sdata=%2BAIrNqP67P9zTUr7UfO%2BKj6Avo6gHUQ4q0GfizRHb50%3D&reserved=0>). > Interestingly, the mesh generated in fipy's circle diffusion example using > gmesh capability results in a mesh of cell type 7 which is a VTK_POLYGON. I'm > suspecting that the third party libraries I'm using to plot these meshes > might be limited to cell types with numbers ranging from 0 to 35 thus not > including fipy's choice of cell type 41. > > Is the choice of the cell type intentional or important here? If so it might > be worth convincing those libraries to add cell type 41 plotting and i/o > capabilities. > ---------- Forwarded message --------- > From: A A <[email protected]<mailto:[email protected]>> > Date: Wed, Jan 22, 2020 at 12:22 PM > Subject: Re: Some questions on the viewer > To: Guyer, Jonathan E. Dr. (Fed) > <[email protected]<mailto:[email protected]>>, > <[email protected]<mailto:[email protected]>> > > > Hi Jonathan, > > The lines do remain dashed on successive calls. I guess the viewer keeps > pointing to the right objects even if their properties are retroactively > modified. > > Here's what I mean about the diffusion term: > > <Untitled.png> > > On another note, I've posted some stuff on github which may be of interest > regarding the circle diffusion example. I had a hard time visualizing the > mesh so I went with some third-party packages (pyvista, pygmsh) and the > result looks quite nice. https://github.com/usnistgov/fipy/issues/693 > > I'm now experimenting with cylindrical coordinates as I would like to try to > solve the heat equation in radial terms. I tried repeating the above > procedure to visualize CylindricalGrid1D and CylindricalGrid2D objects but > without much luck. Here's what I'm doing: > > from fipy import Variable, FaceVariable, CellVariable, Grid1D, > CylindricalGrid1D, CylindricalGrid2D, ExplicitDiffusionTerm, TransientTerm, > DiffusionTerm, Viewer > from fipy.tools import numerix > import numpy as np > import pyvista > > mesh = CylindricalGrid2D(dr=0.1, dz=0.25, nr=3, nz=0.1) > ugrid= pyvista.UnstructuredGrid(mesh.VTKCellDataSet._vtk_obj) > plotter = pyvista.Plotter() > plotter.set_background('white') > plotter.add_mesh(ugrid, style='wireframe', color='black') > plotter.add_bounding_box(color='red') > plotter.show_grid(color="red") > plotter.view_xy() > plotter.show() > > I only get the red bounding box/grid but no cylindrical mesh. Is there > something I'm missing regarding the nature of CylindricalGrid objects? It > seems that fipy is working with/using VTK under the hood so it would be nice > to be able to recover it and take a look at what I'm working with... > > Regards, > > Amine > > On Tue, Jan 21, 2020 at 3:55 PM Guyer, Jonathan E. Dr. (Fed) via fipy > <[email protected]<mailto:[email protected]>> wrote: > I'm curious. Do the lines remain dashed on successive calls to plot()? > > As to the third question, where are you seeing exponent n and subscript i? > I'm not suggesting we don't use them, just that I don't know where. > > Is the discussion at > https://www.ctcms.nist.gov/fipy/documentation/numerical/discret.html#higher-order-diffusion > helpful? > > > On Jan 21, 2020, at 1:25 AM, A A > > <[email protected]<mailto:[email protected]>> wrote: > > > > Hi Martin, > > > > Thanks for your response. That's strange that such a "dummy" command would > > be necessary. > > > > I was able to answer the second question myself. It is possible to > > retroactively change line and axis properties. For the mesh1D example I did > > the following: > > > > viewer = Viewer(vars=(phi, phi_analytical), datamin=-6.0, datamax=6.0) > > ax = viewer.axes > > ax.lines[-1].set_dashes((3.5,3.5,3.5,3.5)) > > ax.grid() > > viewer.plot() > > > > Which seemed to work quite well. > > > > With regards to the third question, I think the terms in the general > > conservation equation are explained reasonably well in the fipy docs, > > except for the diffusion term. It is unclear what the exponent n and > > subscript i represent and how they are related to one another. Is the > > exponent an arithmetic exponent? Is i part of a sum? I had trouble > > expanding the diffusion term to n>=4. > > > > Regards, > > > > Amine > > > > On Mon, Jan 20, 2020 at 5:23 PM Martinus WERTS > > <[email protected]<mailto:[email protected]>> wrote: > > Dear Amine, > > > > Concerning your second question, I think that this a normal (but in this > > case, annoying) feature of the Jupyter notebook. > > > > You might trying adding an extra (dummy) command to the cell, after the > > line in which the Viewer() is instantiated. For example: ``print('Ready')``. > > > > Best, > > Martin > > > > On 20/01/2020 17:01, A A wrote: > >> Dear All, > >> > >> I'm just getting back into using fipy after a few months hiatus. I'm > >> getting more familiar with how it works, but I have a couple of questions > >> about the viewer: > >> • Is it possible to control linestyle (specifically dashes) of the > >> cellVariable objects tied to each specific viewer? I'd like to avoid the > >> possibility of superimposing very similar plots and thinking they are the > >> same > >> • I am primarily using jupyter notebook to practice some basic > >> concepts. What I've found is that simply instantiating the viewer in > >> interactive mode will generate a plot. This renders a viewer.plot() call > >> redundant. When I run the whole notebook in non-interactive mode I get the > >> expected behavior, namely one plot with a .plot() call. Am I missing > >> something here? Why does viewer instantiation generate a plot in jupyter > >> notebook? > >> Thanks for your help and look forward to your reply. > >> > >> Regards, > >> > >> Amine Aboufirass > >> > >> > >> _______________________________________________ > >> fipy mailing list > >> > >> [email protected]<mailto:[email protected]> > >> http://www.ctcms.nist.gov/fipy > >> > >> [ NIST internal ONLY: > >> https://email.nist.gov/mailman/listinfo/fipy > >> ] > >> > > > > > > _______________________________________________ > > fipy mailing list > > [email protected]<mailto:[email protected]> > > http://www.ctcms.nist.gov/fipy > > [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] > > _______________________________________________ > > fipy mailing list > > [email protected]<mailto:[email protected]> > > http://www.ctcms.nist.gov/fipy > > [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] > > > _______________________________________________ > fipy mailing list > [email protected]<mailto:[email protected]> > http://www.ctcms.nist.gov/fipy > [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] > _______________________________________________ > fipy mailing list > [email protected]<mailto:[email protected]> > http://www.ctcms.nist.gov/fipy > [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] _______________________________________________ fipy mailing list [email protected]<mailto:[email protected]> http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ] _______________________________________________ fipy mailing list [email protected] http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
