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 <
fipy@nist.gov> 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 <amine.aboufir...@gmail.com> 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 <amine.aboufir...@gmail.com>
> > Date: Wed, Jan 22, 2020 at 12:22 PM
> > Subject: Re: Some questions on the viewer
> > To: Guyer, Jonathan E. Dr. (Fed) <jonathan.gu...@nist.gov>, <
> fipy@nist.gov>
> >
> >
> > 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 <
> fipy@nist.gov> 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 <amine.aboufir...@gmail.com> 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 <
> martinus.we...@ens-rennes.fr> 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
> > >>
> > >> fipy@nist.gov
> > >> http://www.ctcms.nist.gov/fipy
> > >>
> > >>   [ NIST internal ONLY:
> > >> https://email.nist.gov/mailman/listinfo/fipy
> > >>  ]
> > >>
> > >
> > >
> > > _______________________________________________
> > > fipy mailing list
> > > fipy@nist.gov
> > > http://www.ctcms.nist.gov/fipy
> > >   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> > > _______________________________________________
> > > fipy mailing list
> > > fipy@nist.gov
> > > http://www.ctcms.nist.gov/fipy
> > >  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> >
> >
> > _______________________________________________
> > fipy mailing list
> > fipy@nist.gov
> > http://www.ctcms.nist.gov/fipy
> >   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> > _______________________________________________
> > fipy mailing list
> > fipy@nist.gov
> > http://www.ctcms.nist.gov/fipy
> >  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
>
> _______________________________________________
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
_______________________________________________
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to