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

Discord

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
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")

# triangle volumes, heights
print(mesh.cell_volumes)
print(mesh.signed_cell_volumes)
print(mesh.cell_heights)

# circumcenters, centroids, incenters
print(mesh.cell_circumcenters)
print(mesh.cell_centroids)
print(mesh.cell_incenters)

# 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.4-cp314-none-any.whl (128.8 kB view details)

Uploaded CPython 3.14

meshplex-0.21.4-cp313-none-any.whl (120.9 kB view details)

Uploaded CPython 3.13

meshplex-0.21.4-cp312-none-any.whl (121.0 kB view details)

Uploaded CPython 3.12

meshplex-0.21.4-cp311-none-any.whl (127.8 kB view details)

Uploaded CPython 3.11

meshplex-0.21.4-cp310-none-any.whl (55.4 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.4-cp314-none-any.whl
  • Upload date:
  • Size: 128.8 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.4-cp314-none-any.whl
Algorithm Hash digest
SHA256 9b9e07db8ac981a70b01252cc98e6c4460b916ccee3d6ce2ef384b77ae39208a
MD5 dbb3b04db9f7e2e54978ae6ae3195223
BLAKE2b-256 2e7b36676453446e5ae729923cf9fe84f8f3da263485847c4dcf1c10505fe639

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.4-cp313-none-any.whl
  • Upload date:
  • Size: 120.9 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.4-cp313-none-any.whl
Algorithm Hash digest
SHA256 8bc6a2cae95af95fc23c1a0ee83669d92d9e0ebc1090807bd3a0d4391e94dfdf
MD5 0d70cbd2ff722bb11300a4623364ce03
BLAKE2b-256 fa1442d2bf541ba92437dd264d2c579877c1d06cbee85fe049cce7c7fe0386c2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.4-cp312-none-any.whl
  • Upload date:
  • Size: 121.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.4-cp312-none-any.whl
Algorithm Hash digest
SHA256 35872aa237e8e773ba55ee7d5f4fb6f7ff77d6a2e8c016a5a99cb52f3e02c7ab
MD5 e0b3756df80c1f781ecf7df7aafef4cb
BLAKE2b-256 ed03e1a3683afd6edcdb0d54bdd8bcc75583a6f262527ba58728ce767dc5ed45

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.4-cp311-none-any.whl
  • Upload date:
  • Size: 127.8 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.4-cp311-none-any.whl
Algorithm Hash digest
SHA256 ba676f3e0e30c4f7633b6cef38f46b9e36d00e8c09f5ba4656964f85efa7d2af
MD5 9b1678f9bb18c8a1511a25b4431fd1f1
BLAKE2b-256 5dcbf0ca561510cafbf374ede09dd69a68d486d6e8f22e56b50656aef8299d56

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.4-cp310-none-any.whl
  • Upload date:
  • Size: 55.4 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.4-cp310-none-any.whl
Algorithm Hash digest
SHA256 db8f0a89ff71bf71e5a2576bfa92628af3b278e7856b68a4a667172a0d6ab58a
MD5 50f41b52f4972264704ade49f9015797
BLAKE2b-256 0af54deac1917ffc181a2cb545b1fc626e06864448770c74ff354f76b57467d6

See more details on using hashes here.

Provenance

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