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

Uploaded CPython 3.14

meshplex-0.21.11-cp313-none-any.whl (124.8 kB view details)

Uploaded CPython 3.13

meshplex-0.21.11-cp312-none-any.whl (125.0 kB view details)

Uploaded CPython 3.12

meshplex-0.21.11-cp311-none-any.whl (131.6 kB view details)

Uploaded CPython 3.11

meshplex-0.21.11-cp310-none-any.whl (57.2 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.11-cp314-none-any.whl
  • Upload date:
  • Size: 132.9 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.11-cp314-none-any.whl
Algorithm Hash digest
SHA256 71b23e34db0fcfa4b5bee499e1d20093b8ba854b541c4b913864db4b05d4c606
MD5 b240435f5b3fd327b0bd9c57166e6cb9
BLAKE2b-256 aaa8d864abc1d2e86e1d4db379f9ff4f3884662e1d03fe1c77e0836047aefdf7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.11-cp313-none-any.whl
  • Upload date:
  • Size: 124.8 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.11-cp313-none-any.whl
Algorithm Hash digest
SHA256 d07771f34078fdaf3b6ac74fd1a40c34614e2b82461ed0773dd5919d3d85a582
MD5 99b290d7c36c4a3bcc597201bac64618
BLAKE2b-256 067088681040f66b4a89be37fa7e4f4780c658a252027b563bd577c8434cbc87

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.11-cp312-none-any.whl
  • Upload date:
  • Size: 125.0 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.11-cp312-none-any.whl
Algorithm Hash digest
SHA256 668280fcc4b947b2771f63b29a9a1fb79cb717ae7b8dacdcc3b558fc9b3d2ebf
MD5 796c3697ad8b984e5a1d1b7aa35a61d1
BLAKE2b-256 2af6cb7b819eee7f14a229cb583a19defe3f1ca3116afa5c9311145fdb7b7d40

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.11-cp311-none-any.whl
  • Upload date:
  • Size: 131.6 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.11-cp311-none-any.whl
Algorithm Hash digest
SHA256 b0282f7e8aacf1c64596074e700af63cae5a3598e7b5a138953f4b7cb69f2b81
MD5 28ef9b0541859a973dc0422496dfde2a
BLAKE2b-256 4140c85086c7d883a82d73c5badb569c0b52c6a3d6c26b0e18d05fcec87f740a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.11-cp310-none-any.whl
  • Upload date:
  • Size: 57.2 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.11-cp310-none-any.whl
Algorithm Hash digest
SHA256 f835041a26254aa30f4a85afd891664b094ca60d6a9566b84d2ba2a1896359e7
MD5 cdb0bf315a044472d0d5dc4c512e43e7
BLAKE2b-256 0407828164dfa1fae0f54e45067d6405e3de0336ea335b5aa4f9ff992e4d27f4

See more details on using hashes here.

Provenance

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