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

Uploaded CPython 3.14

meshplex-0.21.2-cp313-none-any.whl (120.5 kB view details)

Uploaded CPython 3.13

meshplex-0.21.2-cp312-none-any.whl (120.6 kB view details)

Uploaded CPython 3.12

meshplex-0.21.2-cp311-none-any.whl (127.2 kB view details)

Uploaded CPython 3.11

meshplex-0.21.2-cp310-none-any.whl (55.2 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.2-cp314-none-any.whl
  • Upload date:
  • Size: 128.3 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.2-cp314-none-any.whl
Algorithm Hash digest
SHA256 fdb22d3fe90ce693289927e383fd340b5c19da915299a747591c1103a9a61e06
MD5 fe8c9f1192c8e9178395635a13369d63
BLAKE2b-256 653b93bb2366f28e1aff6d2601959ece50d91280a50857a35670c0e285a8b25d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.2-cp313-none-any.whl
  • Upload date:
  • Size: 120.5 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.2-cp313-none-any.whl
Algorithm Hash digest
SHA256 fdd58d1167cea83a5d699a202ad88e5d5ae5959727d851d45222a881d0d60af1
MD5 99fcf2c4f806e8d5fa26037d33d97562
BLAKE2b-256 18d106c42dc493226e4c2fc349f78d33410f17a7f33659458de47f5e4ad6ab50

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.2-cp312-none-any.whl
  • Upload date:
  • Size: 120.6 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.2-cp312-none-any.whl
Algorithm Hash digest
SHA256 90d4f08a1e0ebeea77d0846b8f5c9e0ac92ddaf438429e9022e7785e12392d44
MD5 b3abc1ccb7754988e9f212056cb43b3f
BLAKE2b-256 c005e557c0dca11b62179dfa46e9aa1392387be1ab595194e2584a25556bda21

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.2-cp311-none-any.whl
  • Upload date:
  • Size: 127.2 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.2-cp311-none-any.whl
Algorithm Hash digest
SHA256 137dfdcd19c5934ca1bc81e512702ae68385d507cdb6748135d11d240385108f
MD5 5aeb8266d5a5afda32361e1ae8779faa
BLAKE2b-256 331189f528c0a686b89a3aede4e29b1b5c89cbbd737b6e6986536a4349183275

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.2-cp310-none-any.whl
  • Upload date:
  • Size: 55.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.2-cp310-none-any.whl
Algorithm Hash digest
SHA256 5c5c68f750778dadfbbc21b854271e4ab498c30f9ccaafe5a6631ff44bde281f
MD5 c39c5129378acc38a5eb0ea898eee64f
BLAKE2b-256 ce237a59f17a92028b9a4d8c1aa0eed752fe1b94d21ee9c58f81f7bdf1033ea4

See more details on using hashes here.

Provenance

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