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

Uploaded CPython 3.14

meshplex-0.21.17-cp313-none-any.whl (131.2 kB view details)

Uploaded CPython 3.13

meshplex-0.21.17-cp312-none-any.whl (131.3 kB view details)

Uploaded CPython 3.12

meshplex-0.21.17-cp311-none-any.whl (135.9 kB view details)

Uploaded CPython 3.11

meshplex-0.21.17-cp310-none-any.whl (58.5 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.17-cp314-none-any.whl
  • Upload date:
  • Size: 139.1 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.17-cp314-none-any.whl
Algorithm Hash digest
SHA256 2645e17d7d996bdfe692156e7529afdf0d06cafd964c23d93cd5a0ca5cabdea7
MD5 cadca368790e6cb10bca0612cac91ab5
BLAKE2b-256 8431da14d1fedcd761d71c56e1d967ae3e91c81efd28a55a60b29c7213b8642c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.17-cp313-none-any.whl
  • Upload date:
  • Size: 131.2 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.17-cp313-none-any.whl
Algorithm Hash digest
SHA256 8bfbdd4256e9ac079b23cb48b93080e8c12557522a669451a70d91a203675648
MD5 0f8011b9f66d42bd289b3511ecff99d8
BLAKE2b-256 32e78face9f89c4e7ef9473d5baed8e275d6c63e27488da5e61d05ec7431719c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.17-cp312-none-any.whl
  • Upload date:
  • Size: 131.3 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.17-cp312-none-any.whl
Algorithm Hash digest
SHA256 bc05923d977d52cbf87398cb6017ab1d857eac19dd73f8010a9723c6c97683f4
MD5 3c9ec618e6103f736519ed071b40b86f
BLAKE2b-256 c2d68727ddcc4131bb44bc62d4d20ad5f29c3590906d0cb21088df5bc0c8681c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.17-cp311-none-any.whl
  • Upload date:
  • Size: 135.9 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.17-cp311-none-any.whl
Algorithm Hash digest
SHA256 604ad8cd43ffeb0da573ca8e84a3ee906634a95eba4146bdf0e39b8e26e4ae16
MD5 658a0576fc1cf8f4c2bc2b0a5689d28c
BLAKE2b-256 f123a9077519624584282c80949c786502ab28ba32dc7fee4360f4cc8fba977c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.17-cp310-none-any.whl
  • Upload date:
  • Size: 58.5 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.17-cp310-none-any.whl
Algorithm Hash digest
SHA256 661744c2752bc6c62915b0f730503e93427e252162baba6b074594f6da44e0f7
MD5 7daad64acbb9ad57edcbb23f37f4152f
BLAKE2b-256 30e4d9999bcb3023a5ac17253d8c14437be76e74f43b4c138d9b5d187c16b943

See more details on using hashes here.

Provenance

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