This SOFA plugin allows to dynamically subdivide tetrahedra elements inside a mesh during the simulation. Different subdivision schemes are possible depending on which edges of the tetrahedron are divided.
Based on the study done in the paper “Data-driven Tetrahedral Mesh Subdivision (L. Rodríguez and I. Navazo and Á. Vinacua)”, 11 different scenarios have been implemented (See Figure 1). Then, depending on the input of the subdivision, concerned tetrahedra are identified and classified to one of the configurations and their adjacent tetrahedra are also updated to ensure the mesh topology coherence. The input subdivision can be either a full cut plan, an incision, a local or a global area to subdivide.
- Low level API (c++ methods) is available to manually subdivide a tetrahedron into one of the eleven configurations.
- High level API through SOFA components:
- Possibility to refine a zone of the mesh from a set of indices or a bounding box, keeping the mesh topology coherence.
- Possibility to refine the full mesh in one shot.
- Local refinement can be coupled with collision detection to automatically refine the target area.
- Refinement can be coupled with cutting, i.e subdivided tetrahedra are split along the cutting plan.
- The cutting plan is defined by a direction, a width and a depth. This allows to simulate incision as well.