[vtkusers] Polyhedral volume computation

Andrew Parker andy.john.parker at googlemail.com
Tue Jun 12 10:14:05 EDT 2012


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<http://www.vtk.org/doc/nightly/html/classvtkMassProperties.html> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120612/28beaf40/attachment.htm>


More information about the vtkusers mailing list