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

Uploaded CPython 3.14

meshplex-0.21.8-cp313-none-any.whl (124.7 kB view details)

Uploaded CPython 3.13

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

Uploaded CPython 3.12

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

Uploaded CPython 3.11

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

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.8-cp314-none-any.whl
  • Upload date:
  • Size: 132.9 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.8-cp314-none-any.whl
Algorithm Hash digest
SHA256 9e739bd288ae865741dc47d19f909c5fda35ef910e424db30b7bd69a809d7200
MD5 52eeba331a3b304cdb73a6e01dbe4464
BLAKE2b-256 ea250f97129dd59cbe7e1e468d2f99b32c8e5c15129d36f5525d386607b99976

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.8-cp313-none-any.whl
  • Upload date:
  • Size: 124.7 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.8-cp313-none-any.whl
Algorithm Hash digest
SHA256 4face70c3910287c33e69ab811a1c98e359e7b219d401e99c6a7dcc5fd357840
MD5 e8532306a33090921ac91b67c89d6015
BLAKE2b-256 9cb7ecc20988140ccffbb739b0cb6a3b05e452a9e621d47c90cb090006440213

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.8-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.8-cp312-none-any.whl
Algorithm Hash digest
SHA256 82f905591eb5b13c84beb3f5139862a14333e9ff456202d6777d216a7fccf222
MD5 fbbd56e2892ca615028e1c172fba1fef
BLAKE2b-256 829d94877b281965baede3d9c6d3957f81fe68f973bc647cbc18f7eb572404af

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.8-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.8-cp311-none-any.whl
Algorithm Hash digest
SHA256 eaa247dff95744ffa575762b7d0295a2f1d65ff19bb3c419b1c39d10d0ce32ea
MD5 4f5f172e077b3f8ea2aec3ea62eb2531
BLAKE2b-256 a013e3b92d3fa6542cd7b9bcfd9c77305fe6ebe73523aa4f9e03a352c1b8e5a7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.8-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.8-cp310-none-any.whl
Algorithm Hash digest
SHA256 1ccb5f20297bb4957ef0218e27557f112f3b89da7a01d4a66163e900f570da14
MD5 d8c2183e9b56e6d7ec922302b54facaa
BLAKE2b-256 a4a4519b3066431509cf77a1cbea9da5e726353a94b2fd5f6c3c6394d11340bc

See more details on using hashes here.

Provenance

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