Robust 3D Level Set Method for Evolving Fronts on Complex Unstructured Meshes
This repository contains demonstration code of our robust 3D level set method on complex unstructured meshes.
The main advantage of our implementation is its ability to handle discontinuous propagation speed, sharp geometric feature, and the geometries which start from the boundary of mesh.
- Download the code and
cd
to the downloaded directory inMATLAB
. - In
src/config.m
edit the simulation configurations such as mesh scale. - Run
src/GenerateBasicData.m
, which generates a series of*.mat
files which contains the generated unstructured mesh. - Run any of the
src/*Evolve.m
files, which perform the actual level set computation for corresponding problems. The results will be stored insrc/resultData
directory. - Run script
drawResult.m
, which draws the result of each example. Note that each example is corresponding to a boolean switch calleddraw*
in this file. You may have to set the specific switch totrue
in order to see corresponding results. Reinitialize2D.m
contains an independent example, which is not described in our article. You can run the file directly (after running src/GenerateBasicData.m) to see the output figure.- Other files are auxiliary functions, of which the file names are quite self-explanatory.
- We have used MESH2D to generate the required mesh.
- The distance2curve function is written by John D'Errico.
- Functions
dunion
,ddiff
,dcircle
,drectangle
are borrowed from DistMesh toolkit. - Function tricontour is written by Darren Engwirda.
If any of the provided code does help in your research, please cite the following paper:
[1] Wei, R., Bao, F., Liu, Y., Hui, W., 2018. Robust Three-Dimensional Level-Set Method for Evolving Fronts on Complex Unstructured Meshes. Mathematical Problems in Engineering 2018, 1–15. https://doi.org/10.1155/2018/2730829
BibTex item:
@article{weiRobustThreeDimensionalLevelSet2018,
title = {Robust {{Three}}-{{Dimensional Level}}-{{Set Method}} for {{Evolving Fronts}} on {{Complex Unstructured Meshes}}},
volume = {2018},
copyright = {All rights reserved},
issn = {1024-123X, 1563-5147},
doi = {10.1155/2018/2730829},
abstract = {With a purpose to evolve the surfaces of complex geometries in their normal direction at arbitrarily defined velocities, we have developed a robust level-set approach which runs on three-dimensional unstructured meshes. The approach is built on the basis of an innovative spatial discretization and corresponding gradient-estimating approach. The numerical consistency of the estimating method is mathematically proven. A correction technology is utilized to improve accuracy near sharp geometric features. Validation tests show that the proposed approach is able to accurately handle geometries containing sharp features, computation regions having irregular shapes, discontinuous speed fields, and topological changes. Results of the test problems fit well with the reference results produced by analytical or other numerical methods and converge to reference results as the meshes refine. Compared to level-set method implementations on Cartesian meshes, the proposed approach makes it easier to describe jump boundary conditions and to perform coupling simulations.},
language = {en},
journal = {Mathematical Problems in Engineering},
author = {Wei, Ran and Bao, Futing and Liu, Yang and Hui, Weihua},
month = sep,
year = {2018},
pages = {1-15}
}