[vtkusers] Polyhedral volume computation
Andrew Parker
andy.john.parker at googlemail.com
Wed Jun 13 04:38:49 EDT 2012
Ok,
So Jeff to be clear, when you say "the face-based approach", you are
referring to what Bill just said below?
Cheers,
Andy
On 12 June 2012 20:20, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> I would try geometry filter followed by triangle filter followed by
> massproperties.
>
>
> On Tue, Jun 12, 2012 at 12:56 PM, Jeff Lee <jlee1549 at gmail.com> wrote:
> > that assumes that the polyhedron can be tetrahedralized - the face-based
> > approach is more robust. in practice it is better to assume that
> arbitrary
> > polyhedra cannot be triangulated, and that the tets you get back will not
> > actually represent the original polyhedron, especially ones with
> nonconvex
> > faces. I guess it all depends on how accurate you need the volumes to
> be.
> > Jeff
> >
> >
> > On Tue, Jun 12, 2012 at 10:14 AM, Andrew Parker
> > <andy.john.parker at googlemail.com> wrote:
> >>
> >> I knew I'd done this before, but that's because I was working inside
> >> paraview directly. Frustrating this is not available in pure vtk:
> >>
> >>
> >>
> http://www.paraview.org/ParaView3/Doc/Nightly/html/classvtkCellIntegrator.html
> >>
> >> Andy
> >>
> >>
> >> On 12 June 2012 14:43, Jeff Lee <jlee1549 at gmail.com> wrote:
> >>>
> >>> its kind of the cost of doing business with arbitrary polyhedra, either
> >>> you triangulate or it is done internally. your workflow is dealing
> with
> >>> data in vtk format, i.e. cells which may be more tedious/inefficient to
> >>> process than with data stored in a face-based datastructure. even
> >>> commercial codes need to make assumptions about the face shape -
> either by
> >>> ear-cut triangulation or spoking to the face centroid. it is an
> expensive
> >>> operation either way. it sounds like you are on the right track
> though, and
> >>> perhaps you could contribute whatever you come up with.
> >>> Best,
> >>>
> >>> Jeff
> >>>
> >>> On Tue, Jun 12, 2012 at 9:29 AM, Andrew Parker
> >>> <andy.john.parker at googlemail.com> wrote:
> >>>>
> >>>> Yes this is for an entire mesh. The faces are non-triangular. The
> >>>> point I was making/asking was for a method to do this within vtk,
> without
> >>>> having to pre-process my mesh. If there is polyhedral support it
> would be
> >>>> nice if that support extended to basic metrics of a polyhedral.
> >>>>
> >>>> So to be clear my work flow needs to be the following. Read in very
> >>>> large unstructured arbitrary shaped polyhedral mesh; loop over mesh;
> extract
> >>>> each cell; triangular each face of the cell; pass this to
> vtkmassproperties;
> >>>> get the cell volume; repeat.
> >>>>
> >>>> I would hate to think how many people are having to reproduce code
> like
> >>>> this for basic metrics of a polyhedral mesh that is said to be
> >>>> supported.....
> >>>>
> >>>> Cheers,
> >>>> Andy
> >>>>
> >>>>
> >>>> On 12 June 2012 14:20, Jeff Lee <jlee1549 at gmail.com> wrote:
> >>>>>
> >>>>> You usually have to triangulate the polyhedron faces anyways because
> >>>>> the they will likely be nonplanar, nonconvex, etc. You could either
> steal
> >>>>> the code in vtkMassProperties which computes the volume on the
> triangle set,
> >>>>> or convert to triangles and use an internal instance of
> vtkMassProperties -
> >>>>> I would probably opt for the former, but it depends on whether you
> are doing
> >>>>> a one-off or trying to compute volumes for an entire mesh.
> >>>>>
> >>>>>
> >>>>> On Tue, Jun 12, 2012 at 9:05 AM, Andrew Parker
> >>>>> <andy.john.parker at googlemail.com> wrote:
> >>>>>>
> >>>>>> I would have used it except this put me off in the docs:
> >>>>>>
> >>>>>> " vtkMassProperties estimates the volume, the surface area, and the
> >>>>>> normalized shape index of a triangle mesh. "
> >>>>>>
> >>>>>>
> >>>>>> On 12 June 2012 13:56, Jeff Lee <jlee1549 at gmail.com> wrote:
> >>>>>>>
> >>>>>>> did you look at vtkMassProperties? it uses divergence theorem to
> >>>>>>> compute volume which is face based and works on arbitrary
> polyhedra.
> >>>>>>> Jeff
> >>>>>>>
> >>>>>>>
> >>>>>>> On Tue, Jun 12, 2012 at 8:48 AM, Andrew Parker
> >>>>>>> <andy.john.parker at googlemail.com> wrote:
> >>>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> Many thanks, yes, linear only but an arbitrary number of faces. I
> >>>>>>>> would have bet there was another way of doing this, and that I've
> used it, I
> >>>>>>>> just can't remember how I did it.
> >>>>>>>>
> >>>>>>>> Do you not think it's rather odd there is a lack of support for
> >>>>>>>> simple metrics like this given an arbitrary polyhedra? One needs
> only the
> >>>>>>>> faces and nodes. Under the assumption each face is planer then
> this sort of
> >>>>>>>> thing is quite easy, and would at least make the vtk support for
> this for
> >>>>>>>> type of metric with planer faces much more applicable to a
> significantly
> >>>>>>>> larger number of users. See the following as a good example
> which is used
> >>>>>>>> in CFD and has been for many years:
> >>>>>>>>
> >>>>>>>> http://www.public.iastate.edu/~zjw/papers/1999-AIAAJ.pdf
> >>>>>>>>
> >>>>>>>> I appreciate in the non-planer case something else needs to be
> done,
> >>>>>>>> but all of this could be hidden behind a wrapper class that
> provides metrics
> >>>>>>>> regardless of cell type. If this is indeed in vtk and anybody
> can point me
> >>>>>>>> to it then that would be really helpful.
> >>>>>>>>
> >>>>>>>> Cheers,
> >>>>>>>> Andy
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 12 June 2012 12:59, Jochen K. <jochen.kling at email.de> wrote:
> >>>>>>>>>
> >>>>>>>>> Hi Andy,
> >>>>>>>>>
> >>>>>>>>> do you address only linear elements with arbitrary polyhedrons?
> >>>>>>>>> Or should support be given to quadratic, biquadratic,
> triquadratic
> >>>>>>>>> and even
> >>>>>>>>> convexPointSets elements too?
> >>>>>>>>>
> >>>>>>>>> In any case all cells must be traversed, right?
> >>>>>>>>>
> >>>>>>>>> While traversing all cells I would check the celltype and store
> the
> >>>>>>>>> cellid
> >>>>>>>>> (for cell assignment of the calculated volume later on).
> >>>>>>>>>
> >>>>>>>>> If the current cell is a primitve type like tetrahedron etc.
> >>>>>>>>> calculate the
> >>>>>>>>> volume and traverse next cell.
> >>>>>>>>>
> >>>>>>>>> In case it's a more complicated element I would tetrahedralize
> it,
> >>>>>>>>> and sum
> >>>>>>>>> up the volume of each given tetrahedron.
> >>>>>>>>>
> >>>>>>>>> That's it.
> >>>>>>>>>
> >>>>>>>>> If the grid consists of a lot of nonlinear elements the result
> will
> >>>>>>>>> probably
> >>>>>>>>> deviate a bit from the correct value. The questionis how exactly
> >>>>>>>>> you want
> >>>>>>>>> the result to be.
> >>>>>>>>>
> >>>>>>>>> For a cross-check I would apply a surfacefilter to the whole
> grid,
> >>>>>>>>> tetrahedralize it, and sum up the tetrahedron volumes.
> >>>>>>>>> Then compare the volume of both approaches. They should be more
> or
> >>>>>>>>> less
> >>>>>>>>> identical.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> with best regards
> >>>>>>>>> Jochen
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> View this message in context:
> >>>>>>>>>
> http://vtk.1045678.n5.nabble.com/Polyhedral-volume-computation-tp5713778p5713792.html
> >>>>>>>>> Sent from the VTK - Users mailing list archive at Nabble.com.
> >>>>>>>>> _______________________________________________
> >>>>>>>>> Powered by www.kitware.com
> >>>>>>>>>
> >>>>>>>>> Visit other Kitware open-source projects at
> >>>>>>>>> http://www.kitware.com/opensource/opensource.html
> >>>>>>>>>
> >>>>>>>>> Please keep messages on-topic and check the VTK FAQ at:
> >>>>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
> >>>>>>>>>
> >>>>>>>>> Follow this link to subscribe/unsubscribe:
> >>>>>>>>> http://www.vtk.org/mailman/listinfo/vtkusers
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>>
> >>>>>>>> __________________________________
> >>>>>>>>
> >>>>>>>> Dr Andrew Parker
> >>>>>>>>
> >>>>>>>> Em at il: andrew.parker at cantab.net
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> Powered by www.kitware.com
> >>>>>>>>
> >>>>>>>> Visit other Kitware open-source projects at
> >>>>>>>> http://www.kitware.com/opensource/opensource.html
> >>>>>>>>
> >>>>>>>> Please keep messages on-topic and check the VTK FAQ at:
> >>>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
> >>>>>>>>
> >>>>>>>> Follow this link to subscribe/unsubscribe:
> >>>>>>>> http://www.vtk.org/mailman/listinfo/vtkusers
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>>
> >>>>>> __________________________________
> >>>>>>
> >>>>>> Dr Andrew Parker
> >>>>>>
> >>>>>> Em at il: andrew.parker at cantab.net
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>>
> >>>> __________________________________
> >>>>
> >>>> Dr Andrew Parker
> >>>>
> >>>> Em at il: andrew.parker at cantab.net
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >>
> >> __________________________________
> >>
> >> Dr Andrew Parker
> >>
> >> Em at il: andrew.parker at cantab.net
> >>
> >>
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the VTK FAQ at:
> > http://www.vtk.org/Wiki/VTK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>
--
__________________________________
Dr Andrew Parker
Em at il: andrew.parker at cantab.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120613/203e3123/attachment.htm>
More information about the vtkusers
mailing list