Construct closed surface from points cloud with OVITO

I would like to seek your advice regarding a question I have encountered in my molecular dynamics simulations using periodic boundary conditions.

In my simulation box, I have defined a closed region enclosed by an irregular surface using the “construct surface mesh” method in OVITO. Due to the periodic boundary conditions, this closed region may extend into the corners of the box.


I have been able to export a point cloud from OVITO representing the discrete points on this closed surface. Now, I would like to deform the surface by applying small affine transformations to the coordinates of each point.

However, I have noticed that due to the periodic boundary conditions, some points cross the boundaries and end up on the opposite side of the box. My objective is to determine whether another point within the box lies inside the deformed closed surface, taking into account the periodicity.

My question is: How can I reconstruct the closed surface using the deformed point cloud while preserving the original topology and considering the influence of periodic boundary conditions with OVITO?

I would greatly appreciate any insights or suggestions you may have regarding this matter. Additionally, if OVITO can assist in this process, I would be interested to know if it provides any functionalities to address this particular issue.

Thank you for your attention.

I’m not sure I understand what the actual goal is, please clarify.

Here are some tips which might help you:

Periodic boundary conditions

  • Along periodic directions, the surface mesh always gets wrapped back into the cell during rendering.

  • If you want the atoms in your screenshot to also be mapped back into the simulation box, you can use the Wrap at periodic boundaries modifier.

  • If you turn off the periodic boundary conditions in the Data Source → Simulation Cell settings, the surface mesh in your screenshot won’t be wrapped around the simulation box.

  • Also have a look at this subchapter in the Construct surface mesh modifier documentation: Periodic system and cap polygons.

Identification of volumetric regions

In OVITO Pro, the Construct surface mesh modifier provides the options Identify volumetric regions and Map particles to regions, which lets you determine for each input particle which spatial region it is located in.

Thank you for your response.

I apologize for any confusion. What I would like to discuss is the tracking of a flowing volume element within a shearing flow. Initially, at t=0, I have employed the “construct surface mesh” method to determine the volume element and obtain the discrete coordinates of its surface.

However, at t>0, due to the presence of the shearing flow, the position and shape of the volume element will undergo changes compared to the t=0 state. To address this issue, I have performed an affine transformation on the discrete coordinates (point cloud) from t=0, allowing me to obtain the discrete coordinates of the volume element’s surface at t>0.

My objective is to reconstruct a closed surface using these discrete coordinates, which would serve as the representative surface of the volume element at a given time t>0. By analyzing this surface, I can determine which particles are contained within the updated volume element.

It is worth noting that during the process of transforming the point cloud, I need to consider the influence of periodic boundary conditions.

In case you don’t already know this, you can apply an affine transformation to the surface mesh directly in OVITO, when you choose Operate on → Surfaces in the Affine Transformation Modifier settings and deactivate all other objects.

That way, you could use the SurfaceMesh.locate_point() method to determine which particles are inside the updated region and have OVITO automatically take care of the periodic boundary conditions.