wackywendell / tess

Python bindings to the voro++ library.
Other
36 stars 10 forks source link

Dropped points #5

Closed ingoogni closed 5 years ago

ingoogni commented 5 years ago

When, for some reason, voro drops points/cells from the container, this does not seem to be reflected in Tess, trying to access non existing cells:

Traceback (most recent call last): File "[....]\POV-Ray\Voronoi_forrest\vorotess.py", line 4, in c = Container(vorodata, limits=limits, periodic=False) File "[....]\Python\Python37\lib\site-packages\tess__init.py", line 172, in init__ cells = self._container.get_cells() File "tess_voro.pyx", line 238, in tess._voro.Container.get_cells AssertionError: Cell id 299 larger than total 296

wackywendell commented 5 years ago

Hi! Thanks for the report! Could you provide a minimal working example, so I can try and reproduce?

ingoogni commented 5 years ago
limits=[(6.03961,-2.5,3.8377),(9.63211,8.66222,8.68142)]
vorodata=[
[9.63211,0.1,6.21613],
[6.86854,0.1,5.03901],
[8.64132,0.1,3.8377],
[6.03961,0.1,4.95501],
[7.17098,0.1,8.68142],
[9.63211,3.26588,6.21613],
[6.86854,-0.57493,5.03901],
[8.64132,4.43874,3.8377],
[6.03961,5.5544,4.95501],
[7.17098,6.71017,8.68142],
[9.63211,6.72764,6.21613],
[6.86854,2.83045,5.03901],
[8.64132,8.30812,3.8377],
[6.03961,8.39531,4.95501],
[7.17098,8.66222,8.68142]
]

from tess import Container

c = Container(vorodata, limits=limits, periodic=False)
wackywendell commented 5 years ago

This is addressed with a test in the most recent master, and version 0.3.0 that was uploaded to pypi.

Note that this will still fail, but it will error earlier with a more informative message.