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

Uploaded CPython 3.14

meshplex-0.21.16-cp313-none-any.whl (132.2 kB view details)

Uploaded CPython 3.13

meshplex-0.21.16-cp312-none-any.whl (132.2 kB view details)

Uploaded CPython 3.12

meshplex-0.21.16-cp311-none-any.whl (136.8 kB view details)

Uploaded CPython 3.11

meshplex-0.21.16-cp310-none-any.whl (58.7 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.21.16-cp314-none-any.whl
  • Upload date:
  • Size: 140.1 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.16-cp314-none-any.whl
Algorithm Hash digest
SHA256 d17efce4c84bc69aee6419a0a63af02437510be6390d052f5a12f5c63e6b1523
MD5 a500b5d8f93c0752c4efa02d3fa33fd7
BLAKE2b-256 3436ca2e19c57bd716196b05a9b9335c3c12d3db94676074a4c56b118b66e206

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.16-cp313-none-any.whl
  • Upload date:
  • Size: 132.2 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.16-cp313-none-any.whl
Algorithm Hash digest
SHA256 7f31346dbecd022f526a56424a6141dd492df2b78da6d6b19ec8508b9deb85d9
MD5 33155115fe78c5a9054b9e8fbd99acaf
BLAKE2b-256 1bfce4263d0e557a0220ef58c9306304db41ffdc7acff1dcf2b584bca2957062

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.16-cp312-none-any.whl
  • Upload date:
  • Size: 132.2 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.16-cp312-none-any.whl
Algorithm Hash digest
SHA256 ef3277ec941bd2d76f7734b29789d7d10071b0da37f3fd7627d3b858210f7449
MD5 be3c35c9a2ad8a12ca1b42268aad62b7
BLAKE2b-256 1dea6426ce51d7a442f29f88196ad317510ba3e5afdf55659ac7c254d33a0693

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.16-cp311-none-any.whl
  • Upload date:
  • Size: 136.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.16-cp311-none-any.whl
Algorithm Hash digest
SHA256 738619a03f3c3e1455c0ee7f9287a2d99c9c1e6a9eae0e2067a19524ce2dd7c1
MD5 c8f64f9b4580a7aa2f46f9b5f5806ebb
BLAKE2b-256 315f5ca1e02a1302779278001fd9eb9553d716ed0c8f932ea8dda467940586b7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.21.16-cp310-none-any.whl
  • Upload date:
  • Size: 58.7 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.16-cp310-none-any.whl
Algorithm Hash digest
SHA256 9bf6c717f58683ee8206c01bce552e6faee7135fa1daae1e1a44e9df32bad4b0
MD5 9dc2d64500953b97c353e43bf79aa23a
BLAKE2b-256 3bad1eac20d2203e3b13e8b85f61b2da369ada774d63fd508739d61ecf497995

See more details on using hashes here.

Provenance

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