Skip to content

Repository files navigation

DistMeshPy

DistMeshPy is a Python implementation of the DistMesh algorithm based on the original MATLAB implementation.

Features

  • Generate 2D, 3D, and surface meshes with a simple interface.
  • Flexible distance functions for custom geometries.
  • Robust mesh size control through a size function.
  • Backend utility compiled via C++ code.

Installation

pip install distmeshpy

Note: A working C++11 order higher compiler is required.

Usage

Here's a quick example of how to generate a 2D mesh:

fromdistmeshpyimportdistmesh2dfromdistmeshpy.utilsimportdcircle, huniformp, t=distmesh2d(
lambdap: dcircle(p, 0.0, 0.0, 1.0), # Distance functionhuniform, # Uniform size function0.2, # Initial edge size
((-1.1, 1.1), (-1.1, 1.1)), # Bounding box
)

and the mesh can be plotted via matplotlib:

importmatplotlib.pyplotaspltfig, ax=plt.subplots()
ax.triplot(p[:, 0], p[:, 1], t)
ax.set_aspect("equal")
plt.show()

For more examples, see the examples directory.

Contributing

Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.

License

Following the original work, this project is licensed under the GNU General Public License. See the LICENSE file for details.

Acknowledgments

DistMeshPy is inspired by the original MATLAB DistMesh implementation by Per-Olof Persson and Gilbert Strang.

About

A Python Implementation of the DistMesh Algorithm

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages