Message Boards Message Boards

0
|
1742 Views
|
1 Reply
|
1 Total Likes
View groups...
Share
Share this post:

Extracting a single Voronoi cell from a Mesh

I saw that in the new version of Mathematica they finally introduced the possibility to compute a Voronoi mesh for a 3D set of points. What I need, however, is just one cell from the Voronoi mesh as a polyhedron object. Is there a function that would explode a 3D mesh into a set of polyhedra or, alternatively, return a polyhedron in the mesh that contains a specific point? I am looking for a simple way to plot a Brillouin zone for an arbitrary lattice, and I was surprised to find no examples and almost no information in the help.

POSTED BY: Dmytro Inosov
Posted 1 year ago

VoronoiMesh produces a MeshRegion, so you use the mesh-related functions. If vor was your voronoi mesh could use MeshCells[vor,3] to get the 3D cells. This will give you the unnormalized polyhedra using indices as in a GraphicsComplex. To get polyhedra that can "stand alone" using actual coordinates, use MeshPrimitives[vm, 3].

So, you could select polyhedra that contain a given point using RegionMember:

Select[MeshPrimitives[vm, 3], RegionMember[#, {0, 0, 0}] &]
POSTED BY: Eric Rimbey
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract