cellcomplex.property_topomesh.optimization.property_topomesh_edge_split_optimization

cellcomplex.property_topomesh.optimization.property_topomesh_edge_split_optimization(topomesh, maximal_length=None, split_adjacent_faces=True, iterations=1, verbose=False, debug=False, loglevel=0)[source]

Perform a topological optimization of a PropertyTopomesh using edge splits.

The edges of the topomesh are iteratively splitted in order to become all lesser than a target maximal length, while keeping the structure valid topologically and geometrically. The edges are splitted in the descending order of their lengths, until no edge is longer than maximal_length or the maximal number of iterations is reached.

Parameters
  • topomesh (cellcomplex.property_topomesh.PropertyTopomesh) – The structure on which to perform the optimization

  • maximal_length (float) – The edge length above which the edges will be splitted

  • split_adjacent_faces (bool) – Whether to divide the faces adjacent to the splitted edges

  • iterations (int) – Number of optimization passes to perform

Returns

n_splits – Number of edges splitted in the last iteration

Return type

int

Note

The PropertyTopomesh passed as argument is updated.

Warning

If the PropertyTopomesh must is a triangular topomesh the split_adjacent_faces argument should be True