Skip to main content

Collection of explicitly constructed meshes

Project description

meshzoo

PyPi Version PyPI pyversions GitHub stars Downloads

Discord

When generating meshes for FEM/FVM computations, sometimes your geometry is so simple that you don't need a complex mesh generator (like pygmsh, MeshPy, mshr, pygalmesh, dmsh), but something simple and fast that makes use of the structure of the domain. Enter meshzoo.

Installation

Install meshzoo from PyPI with

pip install meshzoo

How to get a license

Licenses for personal and academic use can be purchased here. You'll receive a confirmation email with a license key. Install the key with

plm add <your-license-key>

on your machine and you're good to go.

For commercial use, please contact support@mondaytech.com.

Examples

Triangle

import meshzoo

bary, cells = meshzoo.triangle(8)

# corners = np.array(
#     [
#         [0.0, -0.5 * numpy.sqrt(3.0), +0.5 * numpy.sqrt(3.0)],
#         [1.0, -0.5, -0.5],
#     ]
# )
# points = np.dot(corners, bary).T

# Process the mesh, e.g., write it to a file using meshio
# meshio.write_points_cells("triangle.vtk", points, {"triangle": cells})

Rectangle

import meshzoo
import numpy as np

points, cells = meshzoo.rectangle_tri(
    np.linspace(0.0, 1.0, 11),
    np.linspace(0.0, 1.0, 11),
    variant="zigzag",  # or "up", "down", "center"
)

points, cells = meshzoo.rectangle_quad(
    np.linspace(0.0, 1.0, 11),
    np.linspace(0.0, 1.0, 11),
    cell_type="quad4",  # or "quad8", "quad9"
)

Regular polygon

meshzoo.ngon(4, 8) meshzoo.ngon(6, 8) meshzoo.ngon(9, 8)
import meshzoo

points, cells = meshzoo.ngon(5, 11)

Disk

meshzoo.disk(4, 8) meshzoo.disk(6, 8) meshzoo.disk(9, 8)

The disk meshes are inflations of regular polygons.

import meshzoo

points, cells = meshzoo.disk(6, 11)

points, cells = meshzoo.disk_quad(10, cell_type="quad4")  # or "quad8", "quad9"

Möbius strip

import meshzoo

points, cells = meshzoo.moebius(num_twists=1, nl=60, nw=11)

Sphere (surface)

import meshzoo

points, cells = meshzoo.uv_sphere(num_points_per_circle=20, num_circles=10, radius=1.0)
points, tri, quad = meshzoo.geo_sphere(
    num_points_per_circle=20, num_circles=10, radius=1.0
)

Spheres can also be generated by refining the faces of platonic solids and then "inflating" them. meshzoo implements a few of them. The sphere generated from the icosahedron has the highest-quality (most equilateral) triangles.

All cells are oriented such that its normals point outwards.

meshzoo.tetra_sphere(10) meshzoo.octa_sphere(10) meshzoo.icosa_sphere(10)

Ball (solid)

import meshzoo

points, cells = meshzoo.ball_tetra(10)
points, cells = meshzoo.ball_hexa(10)

Tube

import meshzoo

points, cells = meshzoo.tube(length=1.0, radius=1.0, n=30)

Cube

import meshzoo
import numpy as np

points, cells = meshzoo.cube_tetra(
    np.linspace(0.0, 1.0, 11), np.linspace(0.0, 1.0, 11), np.linspace(0.0, 1.0, 11)
)
points, cells = meshzoo.cube_hexa(
    np.linspace(0.0, 1.0, 11), np.linspace(0.0, 1.0, 11), np.linspace(0.0, 1.0, 11)
)

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.

meshzoo-0.12.0-cp313-none-any.whl (75.1 kB view details)

Uploaded CPython 3.13

meshzoo-0.12.0-cp312-none-any.whl (76.3 kB view details)

Uploaded CPython 3.12

meshzoo-0.12.0-cp311-none-any.whl (83.6 kB view details)

Uploaded CPython 3.11

meshzoo-0.12.0-cp310-none-any.whl (39.3 kB view details)

Uploaded CPython 3.10

File details

Details for the file meshzoo-0.12.0-cp313-none-any.whl.

File metadata

  • Download URL: meshzoo-0.12.0-cp313-none-any.whl
  • Upload date:
  • Size: 75.1 kB
  • Tags: CPython 3.13
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshzoo-0.12.0-cp313-none-any.whl
Algorithm Hash digest
SHA256 f067a5f8436216a0fa558c9821abd901dcf3dda4e44120e7d5d5389b812788ad
MD5 9ad2044069cb7dcb10f9a9a5869da84d
BLAKE2b-256 594cc74b30baa96734bf8ae42ea89f997b6bff5677761bc328566d7f0ada96c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshzoo-0.12.0-cp313-none-any.whl:

Publisher: release.yml on meshpro/meshzoo-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 meshzoo-0.12.0-cp312-none-any.whl.

File metadata

  • Download URL: meshzoo-0.12.0-cp312-none-any.whl
  • Upload date:
  • Size: 76.3 kB
  • Tags: CPython 3.12
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshzoo-0.12.0-cp312-none-any.whl
Algorithm Hash digest
SHA256 15579b6b4ba5ee0dab1c55070b2ae103ad6017bfdbb32c15652f05994c00d03b
MD5 a40ee6360c9271c2f963eb301482b123
BLAKE2b-256 a732a05fb80ff53cdeadab81c09b653a9727cc2be75be7d73c11d218ba71948e

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshzoo-0.12.0-cp312-none-any.whl:

Publisher: release.yml on meshpro/meshzoo-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 meshzoo-0.12.0-cp311-none-any.whl.

File metadata

  • Download URL: meshzoo-0.12.0-cp311-none-any.whl
  • Upload date:
  • Size: 83.6 kB
  • Tags: CPython 3.11
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshzoo-0.12.0-cp311-none-any.whl
Algorithm Hash digest
SHA256 9f0f8f3b2c70277209efedb23e3f0cb4b74e086a6dc843e8e0f1c41b1b0a4e27
MD5 0ffba7ed1a55e9e9822a4d4f52f17ea9
BLAKE2b-256 b36b45cb2db71a0554a7ec63ec01705a40fdee55500a88dfd9749155488f206e

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshzoo-0.12.0-cp311-none-any.whl:

Publisher: release.yml on meshpro/meshzoo-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 meshzoo-0.12.0-cp310-none-any.whl.

File metadata

  • Download URL: meshzoo-0.12.0-cp310-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: CPython 3.10
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshzoo-0.12.0-cp310-none-any.whl
Algorithm Hash digest
SHA256 acc372caa71d6113bce17e4ac80258e737ba55ac7e28bed4f9615097c23d9d5e
MD5 5003184be00c68b4ae7fa4c3a810ee0e
BLAKE2b-256 e771f6e008778fd25bc782b129c93d557d49e42d22b3236934a63c0564d3f703

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshzoo-0.12.0-cp310-none-any.whl:

Publisher: release.yml on meshpro/meshzoo-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