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.5a1-cp314-none-any.whl (163.3 kB view details)

Uploaded CPython 3.14

meshplex-0.22.5a1-cp313-none-any.whl (153.9 kB view details)

Uploaded CPython 3.13

meshplex-0.22.5a1-cp312-none-any.whl (153.7 kB view details)

Uploaded CPython 3.12

meshplex-0.22.5a1-cp311-none-any.whl (158.0 kB view details)

Uploaded CPython 3.11

meshplex-0.22.5a1-cp310-none-any.whl (70.9 kB view details)

Uploaded CPython 3.10

File details

Details for the file meshplex-0.22.5a1-cp314-none-any.whl.

File metadata

  • Download URL: meshplex-0.22.5a1-cp314-none-any.whl
  • Upload date:
  • Size: 163.3 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.5a1-cp314-none-any.whl
Algorithm Hash digest
SHA256 030c473a93b7527c7f4da151117725220c2184cbfac91d13996ac782e667392b
MD5 852f1eb0db7fd73b928524be4ab80688
BLAKE2b-256 d86966c2c0e6eb117830f979e3caf75038093a79ba921e082fe20fec3f10d08a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.5a1-cp313-none-any.whl
  • Upload date:
  • Size: 153.9 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.5a1-cp313-none-any.whl
Algorithm Hash digest
SHA256 8b7730a24d3fe0246dc7d3629b6756c10be22122055c0a4f78d0ee3a6cc14f45
MD5 545bc5758ae130797a59e51d1f7a0a4c
BLAKE2b-256 a01879a41a1c62d60690b5b68a93eeefbcd1e40187df4cd51de85368dbc1416d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.5a1-cp312-none-any.whl
  • Upload date:
  • Size: 153.7 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.5a1-cp312-none-any.whl
Algorithm Hash digest
SHA256 dcb570f0d263367dcb86617fb59a8007519d28ac79391699341f428a5ab3ab3b
MD5 41c4c2027953e48e4e06603161c6f62a
BLAKE2b-256 d88dc3e918a89a1d00bc4870ebac0d0a75bc29e711cdd2fb92386fe3f517e5d2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.5a1-cp311-none-any.whl
  • Upload date:
  • Size: 158.0 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.5a1-cp311-none-any.whl
Algorithm Hash digest
SHA256 53dc518b3ac4fd167b420b21d36df4621b32f58a654a340c081946fce3f46c71
MD5 d2de656c7e12882aee06d90703964f96
BLAKE2b-256 5db82cbeea9be357031877d2c84d36b0097f2bd0035aeab9b5aaebadc7942db9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: meshplex-0.22.5a1-cp310-none-any.whl
  • Upload date:
  • Size: 70.9 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.5a1-cp310-none-any.whl
Algorithm Hash digest
SHA256 4d1ae5d37356077adec149caff6f99e1d115b7172218bf16701ddb5e5b832d7d
MD5 4d1604be6cd0c462b098fb885d54ec5e
BLAKE2b-256 1e7705c2759564df1610226bf47a4b2f5cc75f9793e7ba102bdf202bb259ea70

See more details on using hashes here.

Provenance

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