Re: Some questions on the viewer

2020-01-23 Thread Daniel Wheeler
On Thu, Jan 23, 2020 at 11:37 AM Guyer, Jonathan E. Dr. (Fed) via fipy
 wrote:
>
> 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.

FiPy doesn't order the cell to face indices, face to vertex indices or
cell to vertex indices in any particular way. It doesn't matter for
the FV method. It only matters for the direction of the normals and
that's accounted for. I remember that those orderings are wrong for
VTK as that does require a specific ordering (right (or left) hand
rule or something like that).

-- 
Daniel Wheeler

___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


Re: Some questions on the viewer

2020-01-23 Thread Guyer, Jonathan E. Dr. (Fed) via fipy
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 
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 
mailto: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 
> mailto: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 mailto: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) 
> mailto:jonathan.gu...@nist.gov>>, 
> mailto: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:
>
> 
>
> 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 
> 

Re: Some questions on the viewer

2020-01-23 Thread A A
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  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 
> > Date: Wed, Jan 22, 2020 at 12:22 PM
> > Subject: Re: Some questions on the viewer
> > To: Guyer, Jonathan E. Dr. (Fed) , <
> 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:
> >
> > 
> >
> > 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  wrote:
> > >
> > > Hi Martin,
> > >
> > >