|
1 | 1 | # DistMesh.jl
|
2 | 2 |
|
| 3 | + |
| 4 | +DistMesh.jl implements simplex refinement on signed distance functions, or anything that |
| 5 | +has a sign, distance, and called like a function. The algorithm was first presented |
| 6 | +in 2004 by Per-Olof Persson, and was initially a port of the corresponding Matlab Code. |
| 7 | + |
| 8 | +## What is Simplex Refinement? |
| 9 | + |
| 10 | +In layman's terms, a simplex is either a triangle in the 2D case, or a tetrahedra in the 3D case. |
| 11 | + |
| 12 | +When simulating, you other want a few things from a mesh of simplices: |
| 13 | + - Accurate approximation of boundaries and features |
| 14 | + - Adaptive mesh sizes to improve accuracy |
| 15 | + - Near-Regular Simplicies |
| 16 | + |
| 17 | +DistMesh is designed to address the above. |
| 18 | + |
| 19 | +## Algorithm Overview |
| 20 | + |
| 21 | +The basic processes is as follows: |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +## Comparison to other refinements |
| 26 | + |
| 27 | +DistMesh generally has a very low memory footprint, and can refine without additional |
| 28 | +memory allocation. Similarly, since the global state of simplex qualities is accounted for |
| 29 | +in each refinement iteration, this leads to very high quality meshes. |
| 30 | + |
| 31 | +Aside from the above, since DistMesh works on signed distance functions it can handle |
| 32 | +complex and varied input data that are not in the form of surface meshes (Piecewise Linear Complicies). |
| 33 | + |
| 34 | +## Difference from the MatLab implementation |
| 35 | + |
| 36 | +Given the same parameters, the Julia implementation of DistMesh will generally perform |
| 37 | +4-60 times faster than the MatLab implementation. Delaunay Triangulation in MatLab uses |
| 38 | +QHull, whereas DistMesh.jl uses TetGen. |
| 39 | + |
| 40 | +## How do I get a Signed Distance Function? |
| 41 | + |
| 42 | +Here are some libraries that turn gridded and level set data into an approximate signed |
| 43 | +distance function: |
| 44 | + |
| 45 | +- Interpolations.jl |
| 46 | +- AdaptiveDistanceFields.jl |
| 47 | + |
3 | 48 | ```@index
|
4 | 49 | ```
|
5 | 50 |
|
|
0 commit comments