Skip to main content

Python interface to tetgen

Project description

https://img.shields.io/pypi/v/tetgen.svg?logo=python&logoColor=white

This Python library is an interface to Hang Si’s TetGen C++ software. This module combines speed of C++ with the portability and ease of installation of Python along with integration to PyVista for 3D visualization and analysis. See the TetGen GitHub page for more details on the underlying software.

This Python library uses the C++ source from TetGen (version 1.6.0, released on August 31, 2020) hosted at libigl/tetgen. Some modifications have been made correct minor bugs.

Brief description from Weierstrass Institute Software:

TetGen is a program to generate tetrahedral meshes of any 3D polyhedral domains. TetGen generates exact constrained Delaunay tetrahedralization, boundary conforming Delaunay meshes, and Voronoi partitions.

TetGen provides various features to generate good quality and adaptive tetrahedral meshes suitable for numerical methods, such as finite element or finite volume methods. For more information of TetGen, please take a look at a list of features.

Installation

From PyPI

pip install tetgen

From source at GitHub

git clone https://github.com/pyvista/tetgen
cd tetgen
pip install .

Basic Example

The features of the C++ TetGen software implemented in this module are primarily focused on the tetrahedralization a manifold triangular surface. This basic example demonstrates how to tetrahedralize a manifold surface and plot part of the mesh.

import pyvista as pv
import tetgen
import numpy as np
pv.set_plot_theme('document')

sphere = pv.Sphere()
tet = tetgen.TetGen(sphere)
tet.tetrahedralize(order=1, mindihedral=20, minratio=1.5)
grid = tet.grid
grid.plot(show_edges=True)
https://github.com/pyvista/tetgen/raw/main/doc/images/sphere.png

Tetrahedralized Sphere

Extract a portion of the sphere’s tetrahedral mesh below the xy plane and plot the mesh quality.

# get cell centroids
cells = grid.cells.reshape(-1, 5)[:, 1:]
cell_center = grid.points[cells].mean(1)

# extract cells below the 0 xy plane
mask = cell_center[:, 2] < 0
cell_ind = mask.nonzero()[0]
subgrid = grid.extract_cells(cell_ind)

# advanced plotting
plotter = pv.Plotter()
plotter.add_mesh(subgrid, 'lightgrey', lighting=True, show_edges=True)
plotter.add_mesh(sphere, 'r', 'wireframe')
plotter.add_legend([[' Input Mesh ', 'r'],
                    [' Tessellated Mesh ', 'black']])
plotter.show()
https://github.com/pyvista/tetgen/raw/main/doc/images/sphere_subgrid.png

Here is the cell quality as computed according to the minimum scaled jacobian.

Compute cell quality

>>> cell_qual = subgrid.cell_quality()['scaled_jacobian']

Plot quality

>>> subgrid.plot(scalars=cell_qual, stitle='Quality', cmap='bwr', clim=[0, 1],
...              flip_scalars=True, show_edges=True)
https://github.com/pyvista/tetgen/raw/main/doc/images/sphere_qual.png

Using a Background Mesh

A background mesh in TetGen is used to define a mesh sizing function for adaptive mesh refinement. This function informs TetGen of the desired element size throughout the domain, allowing for detailed refinement in specific areas without unnecessary densification of the entire mesh. Here’s how to utilize a background mesh in your TetGen workflow:

  1. Generate the Background Mesh: Create a tetrahedral mesh that spans the entirety of your input piecewise linear complex (PLC) domain. This mesh will serve as the basis for your sizing function.

  2. Define the Sizing Function: At the nodes of your background mesh, define the desired mesh sizes. This can be based on geometric features, proximity to areas of interest, or any criterion relevant to your simulation needs.

  3. Optional: Export the Background Mesh and Sizing Function: Save your background mesh in the TetGen-readable .node and .ele formats, and the sizing function values in a .mtr file. These files will be used by TetGen to guide the mesh generation process.

  4. Run TetGen with the Background Mesh: Invoke TetGen, specifying the background mesh. TetGen will adjust the mesh according to the provided sizing function, refining the mesh where smaller elements are desired.

Full Example

To illustrate, consider a scenario where you want to refine a mesh around a specific region with increased detail. The following steps and code snippets demonstrate how to accomplish this with TetGen and PyVista:

  1. Prepare Your PLC and Background Mesh:

    import pyvista as pv
    import tetgen
    import numpy as np
    
    # Load or create your PLC
    sphere = pv.Sphere(theta_resolution=10, phi_resolution=10)
    
    
    # Generate a background mesh with desired resolution
    def generate_background_mesh(bounds, resolution=20, eps=1e-6):
        x_min, x_max, y_min, y_max, z_min, z_max = bounds
        grid_x, grid_y, grid_z = np.meshgrid(
            np.linspace(xmin - eps, xmax + eps, resolution),
            np.linspace(ymin - eps, ymax + eps, resolution),
            np.linspace(zmin - eps, zmax + eps, resolution),
            indexing="ij",
        )
        return pv.StructuredGrid(grid_x, grid_y, grid_z).triangulate()
    
    
    bg_mesh = generate_background_mesh(sphere.bounds)
  2. Define the Sizing Function and Write to Disk:

    # Define sizing function based on proximity to a point of interest
    def sizing_function(
        points, focus_point=np.array([0, 0, 0]), max_size=1.0, min_size=0.1
    ):
        distances = np.linalg.norm(points - focus_point, axis=1)
        return np.clip(max_size - distances, min_size, max_size)
    
    
    bg_mesh.point_data["target_size"] = sizing_function(bg_mesh.points)
    
    
    # Optionally write out the background mesh
    def write_background_mesh(background_mesh, out_stem):
        """Write a background mesh to a file.
    
        This writes the mesh in tetgen format (X.b.node, X.b.ele) and a X.b.mtr file
        containing the target size for each node in the background mesh.
        """
        mtr_content = [f"{background_mesh.n_points} 1"]
        target_size = background_mesh.point_data["target_size"]
        for i in range(background_mesh.n_points):
            mtr_content.append(f"{target_size[i]:.8f}")
    
        pv.save_meshio(f"{out_stem}.node", background_mesh)
        mtr_file = f"{out_stem}.mtr"
    
        with open(mtr_file, "w") as f:
            f.write("\n".join(mtr_content))
    
    
    write_background_mesh(bg_mesh, "bgmesh.b")
  3. Use TetGen with the Background Mesh:

    Directly pass the background mesh from PyVista to tetgen:

    tet_kwargs = dict(order=1, mindihedral=20, minratio=1.5)
    tet = tetgen.TetGen(mesh)
    tet.tetrahedralize(bgmesh=bgmesh, **tet_kwargs)
    refined_mesh = tet.grid

    Alternatively, use the background mesh files.

    tet = tetgen.TetGen(sphere)
    tet.tetrahedralize(bgmeshfilename="bgmesh.b", **tet_kwargs)
    refined_mesh = tet.grid

This example demonstrates generating a background mesh, defining a spatially varying sizing function, and using this background mesh to guide TetGen in refining a PLC. By following these steps, you can achieve adaptive mesh refinement tailored to your specific simulation requirements.

Acknowledgments

Software was originally created by Hang Si based on work published in TetGen, a Delaunay-Based Quality Tetrahedral Mesh Generator.

License

This Python wrapper is licensed under the MIT license. However, the underlying TetGen library is licensed under AGPL (see tetgen-license).

Please look into the terms of this license before creating a dynamic link to this software in your downstream package and understand commercial use limitations. We are not lawyers and cannot provide any guidance on the terms of this license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tetgen-0.8.3.tar.gz (825.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tetgen-0.8.3-cp312-abi3-win_amd64.whl (305.7 kB view details)

Uploaded CPython 3.12+Windows x86-64

tetgen-0.8.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (409.5 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

tetgen-0.8.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (405.9 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

tetgen-0.8.3-cp312-abi3-macosx_11_0_arm64.whl (360.9 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

tetgen-0.8.3-cp312-abi3-macosx_10_14_x86_64.whl (397.5 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

tetgen-0.8.3-cp311-cp311-win_amd64.whl (307.6 kB view details)

Uploaded CPython 3.11Windows x86-64

tetgen-0.8.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (414.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

tetgen-0.8.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (409.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

tetgen-0.8.3-cp311-cp311-macosx_11_0_arm64.whl (363.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetgen-0.8.3-cp311-cp311-macosx_10_14_x86_64.whl (399.2 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

tetgen-0.8.3-cp310-cp310-win_amd64.whl (307.8 kB view details)

Uploaded CPython 3.10Windows x86-64

tetgen-0.8.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (414.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

tetgen-0.8.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (409.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

tetgen-0.8.3-cp310-cp310-macosx_11_0_arm64.whl (363.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tetgen-0.8.3-cp310-cp310-macosx_10_14_x86_64.whl (399.4 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

Details for the file tetgen-0.8.3.tar.gz.

File metadata

  • Download URL: tetgen-0.8.3.tar.gz
  • Upload date:
  • Size: 825.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetgen-0.8.3.tar.gz
Algorithm Hash digest
SHA256 acaff9569da73700c7df027512a518ec6e6e091b537581a6fad497e68d170cf6
MD5 a8e65cd5312a62166f0e74a6bd7bbc98
BLAKE2b-256 6a3750eace0be2c97ca2eff048de93c6ee1c4af0dc4be587a5d8e4fc83f06113

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3.tar.gz:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.3-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 305.7 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetgen-0.8.3-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 21982452c4c91d7fdd69101eaf18a3d3cb55c158571bcade04a83ed617305a28
MD5 616216f12e990ac922c7abf293391511
BLAKE2b-256 ffd0dcb166aaf5f85db417f887706ef6e8048a88492ca0e79f358cd274fcf7f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp312-abi3-win_amd64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32ea369a2397ca1d4a8edb151bf3404b96c82c57ffa4bec3232a9611fa118e21
MD5 1aedb45a68b68f78b3229cd2eeb94dd8
BLAKE2b-256 f92856e3793c18d59c72fe9fcf958a1722d5baec404d3c87a55fd366b734e3a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dc84db14a615b984dc6a4d6c2a222c55d8051b0cba97792c2d001be8d969ee8e
MD5 9527f78b4f819640482eeec2168c3011
BLAKE2b-256 10ed775ac51a64aac00f74e033d76038705d999f27406637ef9164751648b749

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 004b4b41d8f3b51ec386118c026ae17d835a78686d6d168e62221fe12cf27455
MD5 830c2614e60c646f038f93cc91a2ad96
BLAKE2b-256 342c7994135ab301fd62721e25622e43fde79131fec262cfd3db2cbd03edde9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp312-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6e289e8c72caf2cf192063968459966993a4e00ba0cdde8256040638f1442113
MD5 021d999c985785e7017b7eb44d853212
BLAKE2b-256 6551a7f4fae5d2f15b865cbbde2ce589d106f7acebdc535c7db2ad491fc97b4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp312-abi3-macosx_10_14_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 307.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetgen-0.8.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a96c3069d524c0b8ce9d482513a05f1145bce00c1c3b9f59a7910dca500677fa
MD5 16b22df18c33af7f84bb6eaf5373af3b
BLAKE2b-256 3cc50d32e473751c774f5512cca1876b51424f0e90f8aebfd1e7992431060b23

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp311-cp311-win_amd64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3481f5f49bef24101a32dca8d15b5642a06ffcace44f3a2296c1e8567de3672f
MD5 1ab530b6111e9aae992d4803ddf01e14
BLAKE2b-256 52f32c53253da2bebc1cd469c635b40a55fcd5b83763afafd35f4d988e21ec68

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1900a3f6fd4e98c6dc520bc6b760c535820ccae0bf411e4acf58175cd73698ac
MD5 9b5590d62e61ebae84c355f319a76ef3
BLAKE2b-256 28441125ebcebb3e54886bd8fea5ec822b99907c7401ce4ac7c1fe1594bd95fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8657a135084ef3a6b56c2e2459f36bde231d6f296d31a3726bb84b7540752524
MD5 101bbfd8f2f717effc7a0fb0ec91374d
BLAKE2b-256 5a6fb17693090fb1a796ebe905c9d50d96a630d474a62892deccdb09b9cf413b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3a7e4068d844460648f3bc6351b282dd4688493f52f394572156b82f2c3cfa6b
MD5 168f8aa0762e9d38adb11b131996ed4c
BLAKE2b-256 3dbc5d6224e5be6755418921c3e5c828e9940c7f7e34ca9ed2814175e6f60691

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp311-cp311-macosx_10_14_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 307.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetgen-0.8.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2e004c394c238f310642eab1f10f7c84187a478370ab4d3e685765426f9fa8ac
MD5 2704dc50bd52e353a600404ec323446e
BLAKE2b-256 b226e58f9f0b7acf212304f3505171574ce9ee3036d874ea7df8fb508af9ca7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp310-cp310-win_amd64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3706995fcd58e679b01d50b455ed9244d386e55e41c842456a678af2239d3b7
MD5 1063a1cb94a540a3641c6bc915460835
BLAKE2b-256 c699997d79f333404e713a067ff00ba5fe8c7c497454c2a9b6696b3ec196f31b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f49bef74e3d154b9684090d81ba2dd06b714ef6e28886f64280f568f2ea4852a
MD5 ff393826cf843ba6f290f280b02c4014
BLAKE2b-256 4b444e3f787ce894290737ee1a97141f6805e45276b0f49ae37a0cc99173b869

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d09c9a0de64ac508ffdcd7135e61a03e768687616d2c4529fa10900bfa33e85a
MD5 dc606f76604117c44a7ae8e822d88ba2
BLAKE2b-256 ea2cbe3fcc20c7db72d0bc5025776d5d22051882ee26322c66d174315d83e83f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetgen-0.8.3-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.3-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 793f81d03816e4263a25ae1cc30a1354d3cc3bf474f8c6a0f6cc4e786d60dea8
MD5 690fd38ff5c4c88577abb70332b02abb
BLAKE2b-256 24dde4f46223453aa20947de56e636bdf27cb8d44acc11630c54912fde3b1dbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.3-cp310-cp310-macosx_10_14_x86_64.whl:

Publisher: build-and-deploy.yml on pyvista/tetgen

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