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 original creator.

This Python library uses the C++ source from TetGen (version 1.6.0, released on August 31, 2020) hosted at libigl/tetgen.

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.

License (AGPL)

The original TetGen software is under AGPL (see LICENSE) and thus this Python wrapper package must adopt that license as well.

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.

Please see https://www.gnu.org/licenses/agpl-3.0.en.html

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.

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.2.tar.gz (824.4 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.2-cp312-abi3-win_amd64.whl (304.2 kB view details)

Uploaded CPython 3.12+Windows x86-64

tetgen-0.8.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (408.2 kB view details)

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

tetgen-0.8.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (404.7 kB view details)

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

tetgen-0.8.2-cp312-abi3-macosx_11_0_arm64.whl (359.6 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

tetgen-0.8.2-cp312-abi3-macosx_10_14_x86_64.whl (396.4 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

tetgen-0.8.2-cp311-cp311-win_amd64.whl (306.0 kB view details)

Uploaded CPython 3.11Windows x86-64

tetgen-0.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (412.6 kB view details)

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

tetgen-0.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (408.1 kB view details)

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

tetgen-0.8.2-cp311-cp311-macosx_11_0_arm64.whl (361.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetgen-0.8.2-cp311-cp311-macosx_10_14_x86_64.whl (398.0 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

tetgen-0.8.2-cp310-cp310-win_amd64.whl (306.3 kB view details)

Uploaded CPython 3.10Windows x86-64

tetgen-0.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (412.8 kB view details)

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

tetgen-0.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (408.3 kB view details)

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

tetgen-0.8.2-cp310-cp310-macosx_11_0_arm64.whl (361.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tetgen-0.8.2-cp310-cp310-macosx_10_14_x86_64.whl (398.3 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: tetgen-0.8.2.tar.gz
  • Upload date:
  • Size: 824.4 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.2.tar.gz
Algorithm Hash digest
SHA256 06ca8d8b9e21cdbb75334e20ee77e788e88f4b2cdb85c51b008592cb3f9af964
MD5 2bd524379455495164ab15186936e604
BLAKE2b-256 c415a52fd7c1049ba8e39f7ee7ada132221ac535c6c18e6c07c27be1ef4fdf6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2.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.2-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.2-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 304.2 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.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 77fbc95949273b8bd281067a8f016f2bf42132c53919cad1b7f7d624996f22a3
MD5 6c997fa6e309c81dec1c455136d5b0df
BLAKE2b-256 ce9ef74139e743c69873d334c81def0f0564f1b4a076a27338e553ecb1d2cb63

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b4d8fd5a17eda89a2d04e82c360bb8e333e13802de2863faca4f0facdadf8a9
MD5 db4590f016b068ac5ac96161ad34ea44
BLAKE2b-256 d4cd7dbbd4ae5bf94648d6f44e14666d6d41513fbe5931cd33c661f178a5363e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4f12868b5ddc49b6b435de1027a7a6c329f8bd13d053ff1719878de9ec7492e
MD5 e7603ee0075ffa918e501dfa1f3fa52e
BLAKE2b-256 72d63a9f7a968179533806cf67e30ea57feed78a27d612aaeb2e761699337cee

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6042ca364d8f14c62f34fe1c41614e252de4f8a4b8563912e38eb6c0f2a1e3ca
MD5 107557bfdd78f578bf612ac5599c1a36
BLAKE2b-256 153db2e59078ff5c6344ecd8d41d4b1d9e4f79f0bfb913ebb73409d5752625f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp312-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7b09907f838f597daf8360032e5e891b5cb03b9ead3000f7f8eeaca9d04baf4f
MD5 fb0fc1e1a47a7f8a66fc31ea7d7a52e9
BLAKE2b-256 1bcab21f72e1040b57bdf5221695a864e3a1b753f6c419d95bd2c9ee3279b39a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 306.0 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8df1537b5506eb39e282794d267eaec807d1bde597fc5e7eab7c848cc0b7129f
MD5 b2361afec3df27dc07799d5cda81bb49
BLAKE2b-256 5a80fe8cb19a2770fbaf99c60205a8957a4ddf14e7a3df84fe075b031a9db399

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7a9d086944d0922753d51c487268803afe00efc5e99ac294297baa12e3e4ce6
MD5 1e43bc2cec314fd279e255bf9e7bebe1
BLAKE2b-256 2f2b0d109f288e0a0c9324357f45b390d6872a05c57ce907eb0efee959057a02

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9e1e4651ebb19e840b367147b6efa82b0d1966eb955afc0853a3558b07a8654
MD5 84635983085ef72380cd1499b4c0ec68
BLAKE2b-256 2c786dc18a0ae50b263f3db0fa0bb3a40112832c126f1a0924832d5ff5f43da0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3811a4fac3a67606fad270e364de1b3c0952a6ac2b91d318c5622a84b909117e
MD5 c6179c9760d06ac82e12ea2f48e83641
BLAKE2b-256 198f72ebd16fef04bfac8f180c743ea90c1f7815485c20836dfb1112332644bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 80dcb5c507780f05226e5447301000ed2007a439b883332d33118f91f8f0a5b2
MD5 b5da6bd490f0a6005b7aa063ccc0280f
BLAKE2b-256 cabce4b40f58c2d4febe53734453daa5744384285416b8ff9c30bc90a8421577

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tetgen-0.8.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 306.3 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fb261a257d94c7126f6491b1172be6e085e67e00f0905ea0daae6e923b2d9825
MD5 600de30a0f68cf898969a6e97bba4542
BLAKE2b-256 4a9b6106ed5c5629db90f50ae1b98d13655ad16f28818c29865dd945c493b43a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ff949a316329cce22b23f8ddcde570d2e97a648577b954f516d4a332b66c678
MD5 de44d18eed33548fe816292cf7116055
BLAKE2b-256 011e91f6052a7cd859d4ed8a171309980822d08f1472d0d5af8fdbe0d7de9458

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 274b57547ceaa2367d013ff82277cd41623dc643d9eb208e02a662aa0dcadd68
MD5 7ef4887c3f562fede5695f0692556172
BLAKE2b-256 0a55c2adce61f6c1a77cbe527e8ef1712e79061083ca23f52329ff70eb4455ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 076b5d70bf4fb2e7fe1de4c49920e6bb31adf0ed80cd6b3062dda84939a2959e
MD5 72174652496f1baa262998b14a752a8e
BLAKE2b-256 cc21d2e7d92c39e1f175a87733b52cb149832dcd9e8970b6c31aa4ccf237e865

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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.2-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tetgen-0.8.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0588c8d8bffb7c8a5c21a3ab19ea80254e7eea972f2eae12a2b7157849b8f78f
MD5 28b1b9986fda2c0f91207fa7a2f2593d
BLAKE2b-256 12794988cc9fa04a5ff26df1e775aec7f9d15b76cb56f5eae5b1d0ded71669aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetgen-0.8.2-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