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

Uploaded CPython 3.14

meshplex-0.21.9-cp313-none-any.whl (124.4 kB view details)

Uploaded CPython 3.13

meshplex-0.21.9-cp312-none-any.whl (124.5 kB view details)

Uploaded CPython 3.12

meshplex-0.21.9-cp311-none-any.whl (131.2 kB view details)

Uploaded CPython 3.11

meshplex-0.21.9-cp310-none-any.whl (57.0 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.9-cp314-none-any.whl
  • Upload date:
  • Size: 132.5 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.9-cp314-none-any.whl
Algorithm Hash digest
SHA256 4aec9fffd47e78cdacccb164e511307176c8840329962eaea5a993c2242a9752
MD5 463984ad5245c14ee1295967f13311ea
BLAKE2b-256 9dbd015b22c8da413dca5921bf76d471e699fe54af0b1420949981b716a5b52b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.9-cp313-none-any.whl
  • Upload date:
  • Size: 124.4 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.9-cp313-none-any.whl
Algorithm Hash digest
SHA256 d46d479954e64b4ecb73be86ffb2b2997e7d2fcdf5b432c788bbd0b300815db9
MD5 b07b13d1990bed7569260aa840821c45
BLAKE2b-256 5035fad214f006040ce9dbac07603ae4e24b357747c90fb2b24e60f468833abd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.9-cp312-none-any.whl
  • Upload date:
  • Size: 124.5 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.9-cp312-none-any.whl
Algorithm Hash digest
SHA256 0f9fcda04b6ce0a5645c37472d46362e2c45bfecd00c6a3b081509dd7c221f1d
MD5 0d1003a30332dd61d9d2144e3e7b9478
BLAKE2b-256 57ec957dcc92b2872de50c7487eaa8ae1af3bce6e2550da90b408c10e5e8e4f0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.9-cp311-none-any.whl
  • Upload date:
  • Size: 131.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.9-cp311-none-any.whl
Algorithm Hash digest
SHA256 ae78f84d8a9d8921b4ec12a61b5d0345e99c53a4274a5f9bbf005d431152a52c
MD5 a4e1d085248fa3aa4d843c148c1aca78
BLAKE2b-256 644edebb71c7a2df3a9dc89a95332a17ad960d1f4bbe132e13809e31728d1733

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.9-cp310-none-any.whl
  • Upload date:
  • Size: 57.0 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.9-cp310-none-any.whl
Algorithm Hash digest
SHA256 e7e4ec8ef48237091c5cc2f972c1fd7f6e2e5584c6a059c9d499c061905027ee
MD5 c766a55ca567a85a72b57ac599f9e29a
BLAKE2b-256 abafbffb8bbb69b19bb52bfbaed0dec70e3ed10c2cd7df251e03c2ae441666b7

See more details on using hashes here.

Provenance

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