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

Uploaded CPython 3.14

meshplex-0.21.13-cp313-none-any.whl (131.4 kB view details)

Uploaded CPython 3.13

meshplex-0.21.13-cp312-none-any.whl (131.4 kB view details)

Uploaded CPython 3.12

meshplex-0.21.13-cp311-none-any.whl (136.0 kB view details)

Uploaded CPython 3.11

meshplex-0.21.13-cp310-none-any.whl (58.5 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.13-cp314-none-any.whl
  • Upload date:
  • Size: 139.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.13-cp314-none-any.whl
Algorithm Hash digest
SHA256 28be4cc4e6f51e6a47efa2ff8ef2563b2e8d92cf4c17851519ffb39d998f000a
MD5 dd693387568c2a66fc12f9d7251dcbb9
BLAKE2b-256 14fb8d5907dd2452d82cf37533ea1b73e9fe270821ed9edccc03a607dbfa25b3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.13-cp313-none-any.whl
  • Upload date:
  • Size: 131.4 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.13-cp313-none-any.whl
Algorithm Hash digest
SHA256 e9dbec3886b6eec442f84795d198aae4c9703fb4fb2e4cb4e864fb1f2130a917
MD5 0a45da7acf4f39558f9a4476f8a3bc9a
BLAKE2b-256 e247c00b231aa9df01bc26c92e8218b327867448fdeb8c413504aa4f39e0fbb2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.13-cp312-none-any.whl
  • Upload date:
  • Size: 131.4 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.13-cp312-none-any.whl
Algorithm Hash digest
SHA256 70b30331941ca072af72c30bdd30d1cdec507d89e2ae1637e259fc738747b034
MD5 b435946af40582b67d47b58aa0dd3c96
BLAKE2b-256 3e0ce577ba3b9289fdd47d8281a936be835ada93c26a8858f9f61df4673ae6fc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.13-cp311-none-any.whl
  • Upload date:
  • Size: 136.0 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.13-cp311-none-any.whl
Algorithm Hash digest
SHA256 a2ee97dd0ac8fdeb5d7e15d21230d7a8b380ec073c1e88464a00193937a860e8
MD5 74238c5d8d523a826c914976e4814d47
BLAKE2b-256 3490cde82037f2b2b8e730047a2aced2afac25f99e22d18873951bac01367700

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.13-cp310-none-any.whl
  • Upload date:
  • Size: 58.5 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.13-cp310-none-any.whl
Algorithm Hash digest
SHA256 aaddf6ddd5ad3d6156d9fbe43ae43f7aaada857e3b54adb9653bf3471982ee26
MD5 b60073a6931a384188df663c3d6466cf
BLAKE2b-256 ec6f879af5e288b82f40cb6bacc4a1c3f4fa4550a8991cba51a755459b6874ce

See more details on using hashes here.

Provenance

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