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

Uploaded CPython 3.14

meshplex-0.22.3-cp313-none-any.whl (153.2 kB view details)

Uploaded CPython 3.13

meshplex-0.22.3-cp312-none-any.whl (152.8 kB view details)

Uploaded CPython 3.12

meshplex-0.22.3-cp311-none-any.whl (157.3 kB view details)

Uploaded CPython 3.11

meshplex-0.22.3-cp310-none-any.whl (70.6 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.22.3-cp314-none-any.whl
  • Upload date:
  • Size: 162.5 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.3-cp314-none-any.whl
Algorithm Hash digest
SHA256 76c7ede6327fc8fd07a401c6320ecc703ee96cae72dadafd5576070edb25c060
MD5 5f08342b9f7db6911d383804d5ad2193
BLAKE2b-256 fc8b3ee51700b1531f0f21bb68bf16a9b81c0539c08d27b818a362a064bce533

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.3-cp313-none-any.whl
  • Upload date:
  • Size: 153.2 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.3-cp313-none-any.whl
Algorithm Hash digest
SHA256 f55f3f88a08c5793345ea9991ac2c34089f33e1391941ecf1048e94f50af3476
MD5 133a75dba94f192a45bf06331a0481c8
BLAKE2b-256 c48b489b07f1999583d9eedcf1a9402b206f9a032ba32bb096e513c81ddfc830

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.3-cp312-none-any.whl
  • Upload date:
  • Size: 152.8 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.3-cp312-none-any.whl
Algorithm Hash digest
SHA256 efc9444ab06307aaad411d87909ca442a2a2315891dbb7fb638d357d5e4ea493
MD5 af697e1b82acad995bc8ab991a668363
BLAKE2b-256 4f751e4ef6c5dd046898868667af73a1d7166d732de0fde62dd72df547dddbca

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.3-cp311-none-any.whl
  • Upload date:
  • Size: 157.3 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.3-cp311-none-any.whl
Algorithm Hash digest
SHA256 2a20eefb7d30ed3ab71503f0cb3ccee165f24c7b42fd754424f7d3f0016544ef
MD5 ffa4de99d026f36f21b06c9ad1547292
BLAKE2b-256 a3ac65893bf2bbe3b3777aacde7e63bfc9097cab128c89d270de9e4c0d63d183

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.3-cp310-none-any.whl
  • Upload date:
  • Size: 70.6 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.3-cp310-none-any.whl
Algorithm Hash digest
SHA256 cbe2105da2ebf50761c0e591894a1a23d66d452fad8cda634a0fbe120ea32efa
MD5 00be296d3d09d83185ddf5a76250ccb2
BLAKE2b-256 2a21e93eb4e7bc9f67fbadaff6f9563cf452dc73369e434df3c5c20369151684

See more details on using hashes here.

Provenance

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