Skip to main content

Fast tools for simplex meshes

Project description

meshplex

Fast tools for simplex meshes.

PyPi Version PyPI pyversions GitHub stars PyPi downloads

Compute all sorts of interesting points, areas, and volumes in simplex (triangle, tetrahedral, n-simplex) meshes of any dimension, with a focus on efficiency. Useful in many contexts, e.g., finite-element and finite-volume computations.

Installation

Install meshplex from PyPI with

pip install meshplex

For full usage of meshplex, you require a license. Licenses for personal and academic use can be purchased here. For more info, see here.

Quickstart

meshplex can compute the following data:

import meshplex

# create a simple Mesh instance
# (could be tetrahedra or even higher dimensional simplices)
points = [[0.0, 0.0], [1.0, 0.0], [0.0, 1.0]]
cells = [[0, 1, 2]]
mesh = meshplex.Mesh(points, cells)
# or read it from a file
# mesh = meshplex.read("pacman.vtk")

# simplex volumes, heights
print(mesh.cell_volumes)
print(mesh.signed_cell_volumes)
print(mesh.cell_heights)
print(mesh.volume)
print(mesh.surface_area)

# centers of any kind
print(mesh.cell_circumcenters)
print(mesh.cell_centroids)
print(mesh.cell_incenters)
print(mesh.cell_monge_points)
print(mesh.cell_nagel_points)
print(mesh.cell_spieker_centers)
print(mesh.cell_lemoine_points)
print(mesh.center_of_gravity)

# circumradius, inradius, cell quality
print(mesh.cell_circumradius)
print(mesh.cell_inradius)
print(mesh.q_radius_ratio)  # d * inradius / circumradius (min 0, max 1)

# control volumes, centroids
print(mesh.control_volumes)
print(mesh.control_volume_centroids)

# covolume/edge length ratios
print(mesh.ce_ratios)

# count Delaunay violations
print(mesh.num_delaunay_violations)

# get all boundary angles in radians
print(mesh.outside_boundary_angles_radians)

# removes some cells
mesh.remove_cells([0])

For triangular meshes (MeshTri), meshplex also has some mesh manipulation routines:

mesh.show()  # show the mesh
mesh.angles  # compute angles
mesh.flip_until_delaunay()  # flips edges until the mesh is Delaunay

For a documentation of all classes and functions, see readthedocs.

(For mesh creation, check out this list).

Plotting

Triangles

import meshplex

mesh = meshplex.read("pacman.vtk")
mesh.show(
    # 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=False,
)

Tetrahedra

import numpy as np
import meshplex

# Generate tetrahedron
points = np.array(
    [
        [1.0, 0.0, -1.0 / np.sqrt(8)],
        [-0.5, +np.sqrt(3.0) / 2.0, -1.0 / np.sqrt(8)],
        [-0.5, -np.sqrt(3.0) / 2.0, -1.0 / np.sqrt(8)],
        [0.0, 0.0, np.sqrt(2.0) - 1.0 / np.sqrt(8)],
    ]
) / np.sqrt(3.0)
cells = [[0, 1, 2, 3]]

# Create mesh object
mesh = meshplex.MeshTetra(points, cells)

# Plot cell 0 with control volume boundaries
mesh.show_cell(
    0,
    # barycenter_rgba=(1, 0, 0, 1.0),
    # circumcenter_rgba=(0.1, 0.1, 0.1, 1.0),
    # circumsphere_rgba=(0, 1, 0, 1.0),
    # incenter_rgba=(1, 0, 1, 1.0),
    # insphere_rgba=(1, 0, 1, 1.0),
    # face_circumcenter_rgba=(0, 0, 1, 1.0),
    control_volume_boundaries_rgba=(1.0, 0.0, 0.0, 1.0),
    line_width=3.0,
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

meshplex-0.21.15-cp314-none-any.whl (139.6 kB view details)

Uploaded CPython 3.14

meshplex-0.21.15-cp313-none-any.whl (131.6 kB view details)

Uploaded CPython 3.13

meshplex-0.21.15-cp312-none-any.whl (131.6 kB view details)

Uploaded CPython 3.12

meshplex-0.21.15-cp311-none-any.whl (136.2 kB view details)

Uploaded CPython 3.11

meshplex-0.21.15-cp310-none-any.whl (58.6 kB view details)

Uploaded CPython 3.10

File details

Details for the file meshplex-0.21.15-cp314-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.15-cp314-none-any.whl
  • Upload date:
  • Size: 139.6 kB
  • Tags: CPython 3.14
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meshplex-0.21.15-cp314-none-any.whl
Algorithm Hash digest
SHA256 a0aaa95dd0048697f2d8c89b4e68c5ba0c07a63dce7b0c341d012479211920ca
MD5 5c3b81c294ea343ef0cfc637308c20b3
BLAKE2b-256 f614dbabaa585d3b821f35517b3e8166aa56877face364af189dc25b3417fa35

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.15-cp314-none-any.whl:

Publisher: release.yml on meshpro/meshplex-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshplex-0.21.15-cp313-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.15-cp313-none-any.whl
  • Upload date:
  • Size: 131.6 kB
  • Tags: CPython 3.13
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meshplex-0.21.15-cp313-none-any.whl
Algorithm Hash digest
SHA256 5e7ff3e3737775d1660e240bc4a416d679d987787b46c7a50272e788320d922b
MD5 7188e268b50dcc8c6fe46ea4f9e19765
BLAKE2b-256 ad363d78cde7b35fdb0307c80c0a9aba12df19073f404479a0f87ab4a1174c4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.15-cp313-none-any.whl:

Publisher: release.yml on meshpro/meshplex-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshplex-0.21.15-cp312-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.15-cp312-none-any.whl
  • Upload date:
  • Size: 131.6 kB
  • Tags: CPython 3.12
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meshplex-0.21.15-cp312-none-any.whl
Algorithm Hash digest
SHA256 6081eb3f696043b99178b99fc930ff988df8da4cb3fc57439d3da84a50759e6a
MD5 5953e3389a69e4b11a0fb8e501794c7f
BLAKE2b-256 78d3a290adb2a51bf8fa8a716c7e98202e6a4818dddab6922f215a722e565fa0

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.15-cp312-none-any.whl:

Publisher: release.yml on meshpro/meshplex-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshplex-0.21.15-cp311-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.15-cp311-none-any.whl
  • Upload date:
  • Size: 136.2 kB
  • Tags: CPython 3.11
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meshplex-0.21.15-cp311-none-any.whl
Algorithm Hash digest
SHA256 d0de216bb68d3cf1a21465475d7bd006ef1a6da4322b2237533483280eda9947
MD5 53e1e6345a5ad97cef611f50f6c9cff4
BLAKE2b-256 aaf63f0a18b8247776346e4fef277e461f63bb4291982fe861a8d5d5249ef759

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.15-cp311-none-any.whl:

Publisher: release.yml on meshpro/meshplex-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshplex-0.21.15-cp310-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.15-cp310-none-any.whl
  • Upload date:
  • Size: 58.6 kB
  • Tags: CPython 3.10
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meshplex-0.21.15-cp310-none-any.whl
Algorithm Hash digest
SHA256 dc54ae3709341832327b1bd32db9efa8d4b750e0b8bf7e3ecba6c6262f8ce1ba
MD5 d4ded9a9d1f8f68b237d4bcbb36bb699
BLAKE2b-256 765c9359d0d04406d4a774ae407beafccd37789e975983a9b2fdc4b435361398

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.15-cp310-none-any.whl:

Publisher: release.yml on meshpro/meshplex-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page