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.22.5a2-cp314-none-any.whl (163.3 kB view details)

Uploaded CPython 3.14

meshplex-0.22.5a2-cp313-none-any.whl (153.9 kB view details)

Uploaded CPython 3.13

meshplex-0.22.5a2-cp312-none-any.whl (153.7 kB view details)

Uploaded CPython 3.12

meshplex-0.22.5a2-cp311-none-any.whl (158.0 kB view details)

Uploaded CPython 3.11

meshplex-0.22.5a2-cp310-none-any.whl (70.9 kB view details)

Uploaded CPython 3.10

File details

Details for the file meshplex-0.22.5a2-cp314-none-any.whl.

File metadata

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

File hashes

Hashes for meshplex-0.22.5a2-cp314-none-any.whl
Algorithm Hash digest
SHA256 2cd4618d613d0c253b11ed876ba619bfc1e97f2710abbb0dd28a9cbfd211dbe1
MD5 f9c94ff9c24541e7c0f4ca84c64e219d
BLAKE2b-256 9481ed484336e037fe3a502ecf8d6b018171c2c54c8f8ef37325095000389c82

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for meshplex-0.22.5a2-cp313-none-any.whl
Algorithm Hash digest
SHA256 5bc6c220ff6a499b4c80c2dddea9230a1fc80c5e82c0ed4882cfa75a849e97c7
MD5 d83a661fe12b041259417663a29cc829
BLAKE2b-256 421f198a045c58bca2983756b52de90ea99e7bd7e086cb750d7eaf94cdab5339

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for meshplex-0.22.5a2-cp312-none-any.whl
Algorithm Hash digest
SHA256 1a5225cb08ed98110e4c98b975b10f41b0f51510750ab44b3173035b037ba723
MD5 2cbe7fbf784d63f77838192c12d40d6e
BLAKE2b-256 84193405e6e3b375fc7c66282f3b68017d33ee20a2e30889f7f2e0315c905aed

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for meshplex-0.22.5a2-cp311-none-any.whl
Algorithm Hash digest
SHA256 78061e9a3eba6c3cb2d36bff3d7c289c31096cab5c3d027e30b03ce63b761563
MD5 e2f8ddb4cf575a141b59db33c035c5b4
BLAKE2b-256 4c62947a31b741c720d4cff8f30af78d7dcd677ae73752c02a54d03ccec092da

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for meshplex-0.22.5a2-cp310-none-any.whl
Algorithm Hash digest
SHA256 560a021bf668e2c7511b03f1cac4293ef2db21ceaa7d61d8561f4d9185e655b1
MD5 889c9937c528e72ba1013b3392e4d1d0
BLAKE2b-256 b91578a87a414d0ee88ef69a47d758286e208c4a7638f08f437d46e98adbd45e

See more details on using hashes here.

Provenance

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