Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

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

License

NotificationsYou must be signed in to change notification settings

dengwirda/mesh2d

Repository files navigation

MESH2D is aMATLAB /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 inMESH2D 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, allowingMESH2D 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 myJIGSAW mesh-generation algorithm (aC++ code).MESH2D aims to provide a straightforwardMATLAB /OCTAVE implementation of these Delaunay-based triangulation and mesh optimisation techniques.

Code Structure

MESH2D is a pureMATLAB /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 currentrepository, navigate to the installation directory withinMATLAB /OCTAVE and run the set of examples contained intridemo.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 toinitmsh() should be included inMESH2D scripts to ensure theMATLAB /OCTAVE path variable includes allMESH2D sub-directories.

ForOCTAVE users, performance can be improved by compiling elements of theMESH2D library. Seemkoctfile for additional information (note: requires a-dev installation ofOCTAVE).

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 codeUNDER 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 permissibleONLY 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 ofMESH2D 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 theJIGSAW package.MESH2D makes use of theAABBTREE andFINDTRIA 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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp