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.12-cp314-none-any.whl (139.6 kB view details)

Uploaded CPython 3.14

meshplex-0.21.12-cp313-none-any.whl (131.7 kB view details)

Uploaded CPython 3.13

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

Uploaded CPython 3.12

meshplex-0.21.12-cp311-none-any.whl (136.3 kB view details)

Uploaded CPython 3.11

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

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.12-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.12-cp314-none-any.whl
Algorithm Hash digest
SHA256 b398ddedb3f98f9373340ab75f582682d2263327d11971f5e3f3ab0dba879c39
MD5 4b68d3a9d24e6fcc90ca6b3c8dfeb0eb
BLAKE2b-256 4dd060735e5eb35ee2a87c9b9ffabde253106288bfc07e1a462e6af3db441fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.12-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.12-cp313-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.12-cp313-none-any.whl
  • Upload date:
  • Size: 131.7 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.12-cp313-none-any.whl
Algorithm Hash digest
SHA256 4c9095bf76a8e694b17f3544dced07b9ffdaf48505c993177440f68c9f143fb2
MD5 dd24a6f137fb4b1bd9fb44f7b6c030c1
BLAKE2b-256 4b39d1c6c2725ce8ab89937d7704ab2a6df74147032422b83e323b92abcde80d

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.12-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.12-cp312-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.12-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.12-cp312-none-any.whl
Algorithm Hash digest
SHA256 46d6385b696f3683d23d95a895af8427e39bd5d3a18ad091bf8381bb370b0e01
MD5 4bb5552f03b5a8ef81248db808ad0cb4
BLAKE2b-256 d13aa76781a706e8059ab6f727faf8975bcb321e76f0a70c3a446804e82806e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.12-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.12-cp311-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.12-cp311-none-any.whl
  • Upload date:
  • Size: 136.3 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.12-cp311-none-any.whl
Algorithm Hash digest
SHA256 9a36b68ef461e488528ccb73752dacea94305f870e416f02cce183d749089cfb
MD5 b0301f032621f0e054b3d4f4e759cd38
BLAKE2b-256 17b4d08ecc778af410953e33589b77a0194b6a9c36013a53b94f43b3f73c70fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.12-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.12-cp310-none-any.whl.

File metadata

  • Download URL: meshplex-0.21.12-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.12-cp310-none-any.whl
Algorithm Hash digest
SHA256 bf776897aad47d00ffafa4e8fc6b69f276fa689e9fd9b5fe249f0e0e4e6183ba
MD5 89dea3fd3a588cae4c86ef110d4d83ad
BLAKE2b-256 c93cf64ae6f8fbe4631c6012a6c977dc6bed21618a73f58a90cf0e701f1904b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshplex-0.21.12-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