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

Uploaded CPython 3.14

meshplex-0.21.10-cp313-none-any.whl (124.6 kB view details)

Uploaded CPython 3.13

meshplex-0.21.10-cp312-none-any.whl (124.8 kB view details)

Uploaded CPython 3.12

meshplex-0.21.10-cp311-none-any.whl (131.5 kB view details)

Uploaded CPython 3.11

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

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.10-cp314-none-any.whl
  • Upload date:
  • Size: 132.7 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.10-cp314-none-any.whl
Algorithm Hash digest
SHA256 e33109bbf231f9409e73f2ee7a29523daca5f88041c0350935f3285c52e0f50c
MD5 9c41925f4fd23ac144f9ab5ec205e858
BLAKE2b-256 196ae0dcaf7c720c619ed8f561fb06bd94a29dd9545f2dbb78e25209ae9b9d3d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.10-cp313-none-any.whl
  • Upload date:
  • Size: 124.6 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.10-cp313-none-any.whl
Algorithm Hash digest
SHA256 79e4c4794d5fd8cc039ebf86e759dc7a45d697907d00f90d754602c8205548ab
MD5 e3cfe5f8b9ae72567bc03ab6fffaf71b
BLAKE2b-256 e7d10772be8559d8cf16158b1f282bc93bc1d732da3aa77e06f0b3997aebd67e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.10-cp312-none-any.whl
  • Upload date:
  • Size: 124.8 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.10-cp312-none-any.whl
Algorithm Hash digest
SHA256 4d43612ed3fa0c0f8bf8b148787996a5ff29b0368b0c78c33b2361c118bd2db8
MD5 1497a6eb7c0415c1dcfa8555e33d03c0
BLAKE2b-256 f1f78249bcfc22f6034a1b413b437af4bd9b29a746d5123d99c4cfc01b97954d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.10-cp311-none-any.whl
  • Upload date:
  • Size: 131.5 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.10-cp311-none-any.whl
Algorithm Hash digest
SHA256 e504ecfd94c669e022e996ce57892fe486ee411b10eaa60ce7b46de70c29cc76
MD5 cff8ff085aefe465a387a1dd888c9d76
BLAKE2b-256 aebef235776bdc3007cdbed0e6db86a01751c02e50b5b3926d21c58cefe2ffb4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.10-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.10-cp310-none-any.whl
Algorithm Hash digest
SHA256 794ecb52887c79759029857ec6f9866f8f29468fba8ac3bbbc771a00b894428a
MD5 b4761aa2b7484e885634877ed05470d0
BLAKE2b-256 6d5f01e86b5a26160f7cd3eafa4c62bde5b94bd710a289065e932bf64b338431

See more details on using hashes here.

Provenance

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