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]> 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). 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]>
> Date: Wed, Jan 22, 2020 at 12:22 PM
> Subject: Re: Some questions on the viewer
> To: Guyer, Jonathan E. Dr. (Fed) <[email protected]>, <[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]> 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]> 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]> 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]
> >> 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 ]
> > _______________________________________________
> > fipy mailing list
> > [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 ]
> _______________________________________________
> fipy mailing list
> [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 ]

Reply via email to