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

Uploaded CPython 3.14

meshplex-0.22.0-cp313-none-any.whl (146.0 kB view details)

Uploaded CPython 3.13

meshplex-0.22.0-cp312-none-any.whl (145.5 kB view details)

Uploaded CPython 3.12

meshplex-0.22.0-cp311-none-any.whl (151.1 kB view details)

Uploaded CPython 3.11

meshplex-0.22.0-cp310-none-any.whl (68.1 kB view details)

Uploaded CPython 3.10

File details

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

File metadata

  • Download URL: meshplex-0.22.0-cp314-none-any.whl
  • Upload date:
  • Size: 155.0 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.0-cp314-none-any.whl
Algorithm Hash digest
SHA256 8625bd29575ec3bfec5d6ae2145c1d4bfa2c1c37dc1f5f2f06848cddc4863264
MD5 6d413978f523bf179a4db1342a4a400b
BLAKE2b-256 b172f6f8c9a008d0b3ff1ff87f91e01f314ad2202357a6e35b69ca453179aa33

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.0-cp313-none-any.whl
  • Upload date:
  • Size: 146.0 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.0-cp313-none-any.whl
Algorithm Hash digest
SHA256 c176bfffbddc7d61ea06a747bb59ad58213fad774d4e32d282be0c31548be310
MD5 a9c67bcb239ddeca6a0d1b0c5ea6cb63
BLAKE2b-256 88ee1532c76cbe50672cf6b2ccddf42fe0e5b02526b3dc1014747abd5e1b337c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.0-cp312-none-any.whl
  • Upload date:
  • Size: 145.5 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.0-cp312-none-any.whl
Algorithm Hash digest
SHA256 1c71abcc340c706062d0f4ae0475de750c8b5fb666ed0120851140c42450afaa
MD5 19a8969d9b6c672518469fc18b3fcf77
BLAKE2b-256 d8d5393f8bbf84e839e841d933a003e195a7618936fbc40a3819f13dfa93944a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.0-cp311-none-any.whl
  • Upload date:
  • Size: 151.1 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.0-cp311-none-any.whl
Algorithm Hash digest
SHA256 e822d7055a3cc2fa5c1b0a1b4dd7e9885d52db23955d60e5ff3f967995daad09
MD5 751c488d416ea69240912cad9626a5e6
BLAKE2b-256 8ab284457ebda5f7c4fe1df8ad6be9d1db976c4f1676fbd2dd194ebf34a8ecfb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.0-cp310-none-any.whl
  • Upload date:
  • Size: 68.1 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.0-cp310-none-any.whl
Algorithm Hash digest
SHA256 18a1d013e4084e083905c5e3a6a7da8034c518c0860586af46b476d5b20e2ece
MD5 f2620f18fc4c56bb801170429238a5be
BLAKE2b-256 4d4b54a6961709320d035fc733787145043e7732169c90788e9c2b22cab8a7b3

See more details on using hashes here.

Provenance

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