All Projects → dengwirda → mesh2d

dengwirda / mesh2d

Licence: other
MESH2D is a MATLAB-based Delaunay mesh generator for two-dimensional geometries.

Programming Languages

matlab
3953 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to mesh2d

jigsaw-matlab
MATLAB bindings for JIGSAW: a Delaunay-based unstructured mesh generator.
Stars: ✭ 57 (-29.63%)
Mutual labels:  triangulation, mesh-generation, delaunay-refinement, delaunay-triangulation
jigsaw-python
Python bindings for JIGSAW: a Delaunay-based unstructured mesh generator.
Stars: ✭ 24 (-70.37%)
Mutual labels:  triangulation, mesh-generation, delaunay-refinement, delaunay-triangulation
Triangle.NET
C# / .NET version of Jonathan Shewchuk's Triangle mesh generator.
Stars: ✭ 276 (+240.74%)
Mutual labels:  mesh-generation, delaunay-refinement, delaunay-triangulation
Triangulations
An implementation and presentation of selected mesh generation algorithms
Stars: ✭ 72 (-11.11%)
Mutual labels:  triangulation, mesh-generation, delaunay-triangulation
delaunay-triangulation-algorithm
Delaunay Triangulation
Stars: ✭ 25 (-69.14%)
Mutual labels:  triangulation, delaunay-triangulation
hx-delaunator
Haxe port of an incredibly fast JavaScript library for Delaunay triangulation of 2D points.
Stars: ✭ 19 (-76.54%)
Mutual labels:  triangulation, delaunay-triangulation
triangle-app
Desktop application for Triangle.
Stars: ✭ 32 (-60.49%)
Mutual labels:  triangulation, delaunay-triangulation
jigsaw-geo-matlab
MATLAB bindings for JIGSAW(GEO): an unstructured mesh generator for geoscientific modelling.
Stars: ✭ 26 (-67.9%)
Mutual labels:  mesh-generation, delaunay-triangulation
Tinfour
Delaunay and Constrained Delaunay Triangulations in Java, providing high-performance utilities for modeling surfaces with support for Lidar LAS files, Digital Elevation Models (DEM), finite element analysis, path planning, natural neighbor interpolation, and other applications of Triangulated Irregular Networks (TIN)
Stars: ✭ 119 (+46.91%)
Mutual labels:  triangulation, delaunay-triangulation
naive-surface-nets
Implements a simple, readable naive surface nets algorithm
Stars: ✭ 31 (-61.73%)
Mutual labels:  mesh-generation
getfem
Mirror of GetFEM repository
Stars: ✭ 23 (-71.6%)
Mutual labels:  octave
matio-cpp
A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
Stars: ✭ 24 (-70.37%)
Mutual labels:  octave
matlab-rinex-reader
Fixed old Kai Borre Matlab code to run in Octave and hence be callable by Python to work with RINEX data
Stars: ✭ 13 (-83.95%)
Mutual labels:  octave
gifti
MATLAB/Octave GIfTI Library
Stars: ✭ 16 (-80.25%)
Mutual labels:  octave
Point-Cloud-Triangulation
C++ code for triangulating Point Cloud data and displaying it
Stars: ✭ 29 (-64.2%)
Mutual labels:  delaunay-triangulation
pyDelaunay2D
A simple Delaunay 2D triangulation in python (with numpy)
Stars: ✭ 145 (+79.01%)
Mutual labels:  delaunay-triangulation
DelaunayVoronoi
C# implementation of the Bowyer–Watson algorithm for Delaunay triangulation
Stars: ✭ 131 (+61.73%)
Mutual labels:  triangulation
PaiConvMesh
Official repository for the paper "Learning Local Neighboring Structure for Robust 3D Shape Representation"
Stars: ✭ 19 (-76.54%)
Mutual labels:  mesh-generation
ResInsight
3D viewer and post processing of reservoir models
Stars: ✭ 122 (+50.62%)
Mutual labels:  octave
tektosyne
The Tektosyne Library for Java provides algorithms for computational geometry and graph-based pathfinding, along with supporting mathematical utilities and specialized collections.
Stars: ✭ 52 (-35.8%)
Mutual labels:  delaunay-triangulation

MESH2D: Delaunay-based mesh generation in MATLAB

MESH2D is a MATLAB / OCTAVE-based unstructured mesh-generator for two-dimensional polygonal geometries, providing a range of relatively simple, yet effective two-dimensional meshing algorithms. MESH2D includes variations on the "classical" Delaunay refinement technique, a new "Frontal"-Delaunay refinement scheme, a non-linear mesh optimisation method, and auxiliary mesh and geometry pre- and post-processing facilities.

       

Algorithms implemented in MESH2D are "provably-good" - ensuring convergence, geometrical and topological correctness, and providing guarantees on algorithm termination and worst-case element quality bounds. Support for user-defined "mesh-spacing" functions and "multi-part" geometry definitions is also provided, allowing MESH2D to handle a wide range of complex domain types and user-defined constraints. MESH2D typically generates very high-quality output, appropriate for a variety of finite-volume/element type applications.

MESH2D is a simplified version of my JIGSAW mesh-generation algorithm (a C++ code). MESH2D aims to provide a straightforward MATLAB / OCTAVE implementation of these Delaunay-based triangulation and mesh optimisation techniques.

Code Structure

MESH2D is a pure MATLAB / OCATVE package, consisting of a core library + associated utilities:

MESH2D::
├── MAIN-DIR. -- core MESH2D library functions. See REFINE2, SMOOTH2, TRIDEMO, etc.
├── aabb-tree -- support for fast spatial indexing, via tree-based data-structures.
├── geom-util -- geometry processing, repair, etc.
├── hfun-util -- mesh-spacing definitions, limiters, etc.
├── hjac-util -- solver for Hamilton-Jacobi eqn's.
├── mesh-ball -- circumscribing balls, orthogonal balls etc.
├── mesh-cost -- mesh cost/quality functions, etc.
├── mesh-file -- mesh i/o via ASCII serialisation.
├── mesh-util -- meshing/triangulation utility functions.
├── poly-data -- polygon definitions for demo problems, etc.
└── poly-test -- fast inclusion test for polygons.

Quickstart

After downloading and unzipping the current repository, navigate to the installation directory within MATLAB / OCTAVE and run the set of examples contained in tridemo.m:

tridemo( 0); % a very simple example to get everything started.
tridemo( 1); % investigate the impact of the "radius-edge" threshold.
tridemo( 2); % Frontal-Delaunay vs. Delaunay-refinement refinement.
tridemo( 3); % explore impact of user-defined mesh-size constraints.
tridemo( 4); % explore impact of "hill-climbing" mesh optimisations.
tridemo( 5); % assemble triangulations for "multi-part" geometries.
tridemo( 6); % assemble triangulations with "internal" constraints.
tridemo( 7); % investigate the use of "quadtree"-type refinement.
tridemo( 8); % explore use of custom, user-defined mesh-size functions.
tridemo( 9); % larger-scale problem, mesh refinement + optimisation. 
tridemo(10); % medium-scale problem, mesh refinement + optimisation. 

Note that a call to initmsh() should be included in MESH2D scripts to ensure the MATLAB / OCTAVE path variable includes all MESH2D sub-directories.

For OCTAVE users, performance can be improved by compiling elements of the MESH2D library. See mkoctfile for additional information (note: requires a -dev installation of OCTAVE).

License

This program may be freely redistributed under the condition that the copyright notices (including this entire header) are not removed, and no compensation is received through use of the software. Private, research, and institutional use is free. You may distribute modified versions of this code UNDER THE CONDITION THAT THIS CODE AND ANY MODIFICATIONS MADE TO IT IN THE SAME FILE REMAIN UNDER COPYRIGHT OF THE ORIGINAL AUTHOR, BOTH SOURCE AND OBJECT CODE ARE MADE FREELY AVAILABLE WITHOUT CHARGE, AND CLEAR NOTICE IS GIVEN OF THE MODIFICATIONS. Distribution of this code as part of a commercial system is permissible ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR. (If you are not directly supplying this code to a customer, and you are instead telling them how they can obtain it for free, then you are not required to make any arrangement with me.)

DISCLAIMER: Neither I nor the University of Sydney warrant this code in any way whatsoever. This code is provided "as-is" to be used at your own risk.

References

If you make use of MESH2D please include a reference to the following! MESH2D is designed to provide a simple and easy-to-understand implementation of Delaunay-based mesh-generation techniques. For a much more advanced, and fully three-dimensional mesh-generation library, see the JIGSAW package. MESH2D makes use of the AABBTREE and FINDTRIA packages to compute efficient spatial queries and intersection tests.

[1] - Darren Engwirda, Locally-optimal Delaunay-refinement and optimisation-based mesh generation, Ph.D. Thesis, School of Mathematics and Statistics, The University of Sydney, September 2014.

[2] - Darren Engwirda, Unstructured mesh methods for the Navier-Stokes equations, Honours Thesis, School of Aerospace, Mechanical and Mechatronic Engineering, The University of Sydney, November 2005.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].