meshplex — Simplex meshes for Python¶
meshplex computes all sorts of interesting points, areas, and volumes in triangular and tetrahedral meshes, with a focus on efficiency. Useful in many contexts, e.g., finite-element and finite-volume computations.
For a quickstart, checkout meshplex’s GitHubPage.
Overview of classes and functions¶
-
class
meshplex.
MeshLine
(points, cells)¶ Class for handling line segment “meshes”.
-
class
meshplex.
MeshTetra
(points, cells, sort_cells=False)¶ Class for handling tetrahedral meshes.
-
plot_edge
(edge_id)¶ Displays edge with ce_ratio.
- Parameters
edge_id (int) – Edge ID for which to show the ce_ratio.
-
property
q_min_sin_dihedral_angles
¶ Get the smallest of the sines of the 6 angles between the faces of each tetrahedron, times a scaling factor that makes sure the value is 1 for the equilateral tetrahedron.
-
property
q_vol_rms_edgelength3
¶ For each cell, return the ratio of the volume and the cube of the root-mean-square edge length. (This is cell quality measure used by Stellar <https://people.eecs.berkeley.edu/~jrs/stellar>.)
-
-
class
meshplex.
MeshTri
(points, cells, sort_cells=False)¶ Class for handling triangular meshes.
-
property
angles
¶ All angles in the triangle.
-
compute_ncurl
(vector_field)¶ Computes the n.dot.curl of a vector field over the mesh. While the vector field is point-based, the curl will be cell-based. The approximation is based on
\[n\cdot curl(F) = \lim_{A\to 0} |A|^{-1} \rangle\int_{dGamma}, F\rangle dr;\]see https://en.wikipedia.org/wiki/Curl_(mathematics). Actually, to approximate the integral, one would only need the projection of the vector field onto the edges at the midpoint of the edges.
-
flip_until_delaunay
(tol=0.0, max_steps=100)¶ Flip edges until the mesh is fully Delaunay (up to tol).
-
plot
(show_coedges=True, control_volume_centroid_color=None, mesh_color='k', nondelaunay_edge_color=None, boundary_edge_color=None, comesh_color=(0.8, 0.8, 0.8), show_axes=True, cell_quality_coloring=None, show_point_numbers=False, show_edge_numbers=False, show_cell_numbers=False, cell_mask=None, mark_points=None, mark_edges=None, mark_cells=None)¶ Show the mesh using matplotlib.
-
plot_vertex
(point_id, show_ce_ratio=True)¶ Plot the vicinity of a point and its covolume/edgelength ratio.
- Parameters
point_id (int) – Node ID of the point to be shown.
show_ce_ratio (bool, optional) – If true, shows the ce_ratio of the point, too.
-
save
(filename, *args, **kwargs)¶ Save the mesh to a file.
-
show
(*args, fullscreen=False, **kwargs)¶ Show the mesh (see plot()).
-
show_vertex
(*args, **kwargs)¶ Show the mesh around a vertex (see plot_vertex()).
-
property
-
meshplex.
from_meshio
(mesh)¶ Transform from meshio to meshplex format.
- Parameters
mesh (meshio.Mesh) – The meshio mesh object.
- Returns mesh{2,3}d
The mesh data.
-
meshplex.
get_signed_simplex_volumes
(cells, pts)¶ Signed volume of a simplex in nD. Note that signing only makes sense for n-simplices in R^n.
-
meshplex.
read
(filename)¶ Reads an unstructured mesh into meshplex format.
- Parameters
filenames (str) – The files to read from.
- Returns mesh{2,3}d
The mesh data.