JIGSAW is an unstructured mesh generator and tessellation library; designed to generate high-quality triangulations and polyhedral decompositions of general planar, surface and volumetric domains. JIGSAW includes refinement-based algorithms for the construction of new meshes, optimisation-driven techniques for the improvement of existing grids, as well as routines to assemble (restricted) Delaunay tessellations, Voronoi complexes and Power diagrams.
This package provides a Python based scripting interface to the underlying JIGSAW mesh generator, including a range of additional facilities for file I/O, mesh visualisation and post-processing operations.
JIGSAW has been compiled and tested on various 64-bit Linux , Windows and Mac based platforms.
Ensure you have a c++ compiler and the cmake utility installed. Clone/download + unpack this repository. python3 setup.py build_external python3 setup.py install python3 example.py --IDnumber=0
Note: installation of
JIGSAW requires a
c++ compiler and the
JIGSAW may also be installed as a
conda package. See here for details.
jigsawpy for a description of the various functions available.
setup.py - compile and install JIGSAW's c++ backend using cmake. example.py - a list of demo programs. jigsaw.py - cmd-line interface to JIGSAW's backend libsaw.py - api-lib. interface to JIGSAW's backend loadmsh.py - load *.msh files. savemsh.py - save *.msh files. loadjig.py - load *.jig files. savejig.py - save *.jig files. project.py - apply cartographic projection operators to mesh obj. bisect.py - refine a mesh obj. via bisection. extrude.py - create a mesh obj. via extrusion.
The following set of example problems are available in
example: 0; # simple 2-dim. examples to get started example: 1; # simple 3-dim. examples to get started example: 2; # frontal-delaunay methods in the plane example: 3; # frontal-delaunay methods for surfaces example: 4; # frontal-delaunay methods for volumes example: 5; # user-defined mesh-spacing constraints example: 6; # dealing with sharp-features in piecewise smooth domains example: 7; # dealing with sharp-features in piecewise smooth domains example: 8; # (re)mesh marching-cubes style outputs example: 9; # creating prismatic volumes via extrusion
python3 example.py --IDnumber=N to call the
*.vtk output is saved to
../cache and can be visualised with, for example, Paraview.