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.4.tar.gz (827.1 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.4-cp312-abi3-win_amd64.whl (307.2 kB view details)

Uploaded CPython 3.12+Windows x86-64

tetgen-0.8.4-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (411.1 kB view details)

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

tetgen-0.8.4-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (407.5 kB view details)

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

tetgen-0.8.4-cp312-abi3-macosx_11_0_arm64.whl (362.5 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

tetgen-0.8.4-cp312-abi3-macosx_10_14_x86_64.whl (399.1 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

tetgen-0.8.4-cp311-cp311-win_amd64.whl (309.1 kB view details)

Uploaded CPython 3.11Windows x86-64

tetgen-0.8.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (415.9 kB view details)

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

tetgen-0.8.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (411.0 kB view details)

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

tetgen-0.8.4-cp311-cp311-macosx_11_0_arm64.whl (364.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetgen-0.8.4-cp311-cp311-macosx_10_14_x86_64.whl (400.8 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

tetgen-0.8.4-cp310-cp310-win_amd64.whl (309.2 kB view details)

Uploaded CPython 3.10Windows x86-64

tetgen-0.8.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (416.1 kB view details)

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

tetgen-0.8.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (411.3 kB view details)

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

tetgen-0.8.4-cp310-cp310-macosx_11_0_arm64.whl (364.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tetgen-0.8.4-cp310-cp310-macosx_10_14_x86_64.whl (401.0 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

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

File metadata

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

File hashes

Hashes for tetgen-0.8.4.tar.gz
Algorithm Hash digest
SHA256 b6ca979ccecf43ddc0d31fa4f5a05da3cfeb4ab0705b8128530745bbab38bb86
MD5 54bb190e6e68f0d2f670416d5681bb99
BLAKE2b-256 afb6bd320925cc4127c6f838c9127fdb0b2292147286500489d5ba6aac5d34e1

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tetgen-0.8.4-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 de38fc1e9e684546862f0795f3e91c19450c6d11961542a6035bab249c65b51f
MD5 6deeb7a795cdbca88dba94d7a5b53753
BLAKE2b-256 bf2e348cdeb63c0a04cee46fae2d92019123cd6d6ba0f4c3895b7ca0cd33d091

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e24f383fdd5d12660fd85cea937506ca2d81cca20fb92945a61f658e3719bc76
MD5 861fc4dfc417241db559e2e74602c26d
BLAKE2b-256 f26bb2568feb06fa57f8010f18bf27fd456546e921edf8d71c1147614e54234f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 58125b8c81b56869d26ba69d5404bacb0ae320ce9b8b45116aee0753dc89edc8
MD5 dc02449029a25bfd418c29c526e319a7
BLAKE2b-256 89d37cb2c03fa45c51d4b32caa34423acebfb4f78e3ebdd6fca0a12b3a42931f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb74efee0950fdc4cdd65e3eac2b8ae8f37d9a08a8d5e366e52ed052b86e44a4
MD5 a84bdba209d00779a727c544f9c6d18b
BLAKE2b-256 aa60fa9f368d759ef425f90f3b5d6b2e934fcc30e2b2bcdd63e5bcc7fbca802d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2ceff7d99c4c4777ba605b7726a021d51c7e76fce35b524551a160379fa45981
MD5 95b74f39f9bce60732e057df8b3e9a0a
BLAKE2b-256 294a4c38923509ae6ef5e194623bde5ffa6b16b8e9fa2d674136558b10a7dfeb

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tetgen-0.8.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 22993175186927ad4be8c73b678b2c4fa3654a5bff5ec31c0410c78494a58644
MD5 157bbd575aa1f1e52aedeb4a89ac13fe
BLAKE2b-256 71c0fdf1694eca85ea9cee6f015049dc6e21fce8e5b6f9a53a81352fb1c92c45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3a6e7bad3ef934c8780531fb1b063901472bfde3fca3d4426fc85e9e79ee1bf
MD5 e602555977b9c61a0c38c813106380f8
BLAKE2b-256 8faf14d737a3c571d15c4adfd42b4f845a39886158ad15d99aff3e1f3f365d54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 adc6cf4af5e90250e9619a4a160468e408edb4307e55c4688c9a0a8ed1394cba
MD5 187beddc3581c0cbeec3c2ac10cfb699
BLAKE2b-256 29001186139e2c53aaed4776610c81129e72c6095b20f059b5a955c60f28e175

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bc405ee5dbfd944a9cee3e62da072e724851562fa0d279933caa91afae0eb8c
MD5 efedd025a2a822efd99ffea0dcfdefc4
BLAKE2b-256 79edda003fedf6161ed3a20be0514c27d5e8e91311a7121d2c43e017ff565c4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2d20488f92709cb4db4e5e83bb2440067c762b14419727a15fb91ec1d8870084
MD5 9e0c65902a13351f36a7c37641b3c839
BLAKE2b-256 47e91c47a16684133ab5597c9e62b5987031972fec03834d05bd95b33fc2135d

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tetgen-0.8.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ef9a8a950baa9caddb6a4de34ff402426f652e43fead71dfa5b4fdee862bbef4
MD5 3909c6b124c5bfa874901d489078b683
BLAKE2b-256 b92fbd90b674c2bd40020dcd595927edd14d66587370eea551c5557d4bcbcf23

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc605762e5d3b8dea44c81de508118a5c4420fb911c5aebe69000c1e9deb738f
MD5 5c3eb67e579353578c954329f6a91958
BLAKE2b-256 8f4a69c4bbc79f499fa12585ccd8e2f35cff428e3a58423e5d04a5c47ca2ea56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95b2df04a868ce9ac800b051f4641471af576997ee8519614f0b55eb134eae9a
MD5 ca1331366395a6bb5925adc7ed7bd0b4
BLAKE2b-256 de7349a100715f96a7536c6f00fd22454e36ac6f43aaf2680b55c3dd0cc275cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0d98fb56a6e782e9490dfda3f99f2902d4f3733c1eb4bdd9876d13bf22574f1
MD5 0234d52c9faff00e5fb25951e9f69b1b
BLAKE2b-256 d32c62ebb483fda3c6db1af385fec0e4fcb3e318d64b847a9142832ba767dc84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tetgen-0.8.4-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 19d17b859cebfae974d613fd7a3afbf6817538047b5a9541349fc2c0bf245d66
MD5 bde251dd6b102b7b21bbe5b9d9dd99fd
BLAKE2b-256 5553ac9a72f257926362e1005d81ba158ae5c2c893639db765d85d0719fd7801

See more details on using hashes here.

Provenance

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