Content deleted Content added
No edit summary Tags: Reverted references removed Visual edit Newcomer task Newcomer task: copyedit |
|||
(32 intermediate revisions by 30 users not shown) | |||
Line 1:
{{Short description|Conceptual framework used in numerical analysis of surfaces and shapes}}
[[File:Levelset-mean-curvature-spiral.ogv|thumb|Video of spiral being propagated by level sets ([[curvature flow]]) in 2D. Left image shows zero-level solution. Right image shows the level-set scalar field.]]
The '''Level-set method''' ('''LSM''') is a conceptual framework for using [[level set]]s as a tool for [[numerical analysis]] of [[Surface (topology)|surface]]s and [[shape]]s. LSM can perform [[Numerical computation|numerical computations]] involving [[curve]]s and surfaces on a fixed [[Cartesian grid]] without having to [[Parametric surface|parameterize]] these objects.<ref>{{Citation |last1 = Osher |first1 = S. |last2 = Sethian |first2 = J. A.| title = Fronts propagating with curvature-dependent speed: Algorithms based on Hamilton–Jacobi formulations| journal = J. Comput. Phys.| volume = 79 |issue = 1 |year = 1988 |pages = 12–49 |url = http://math.berkeley.edu/~sethian/Papers/sethian.osher.88.pdf |doi=10.1016/0021-9991(88)90002-2|bibcode = 1988JCoPh..79...12O |hdl = 10338.dmlcz/144762 |citeseerx = 10.1.1.46.1266|s2cid = 205007680 }}</ref> LSM makes it easier to perform computations on shapes with sharp corners and [[Shape|shapes]] that change [[topology]] (such as by splitting in two or developing holes). These characteristics make LSM effective for [[modeling]] objects that vary in time, such as an [[airbag]] inflating or a drop of oil floating in water.
[[Image:level set method.png|thumb|right|400px|An illustration of the level-set method]]
== Overview ==
The figure on the right illustrates several ideas about LSM. In the upper
In the top row, the shape's
Thus, in two dimensions, the level-set method amounts to representing a [[closed curve]] <math>\Gamma</math> (such as the shape boundary in our example) using an [[auxiliary function]] <math>\varphi</math>, called the level-set function. The curve <math>\Gamma</math> is represented as the zero-level set of <math>\varphi</math> by
:<math>\Gamma = \{(x, y) \mid \varphi(x, y) = 0 \},</math>
and the level-set method manipulates <math>\Gamma</math> ''implicitly'' through the function <math>\varphi</math>. This function <math>\varphi</math> is assumed to take positive values inside the region delimited by the curve <math>\Gamma</math> and negative values outside.<ref name="osher" /><ref name="sethian" />
==The level-set equation==
If the curve <math>\Gamma</math> moves in the normal direction with a speed <math>v</math>, then by chain rule and implicit differentiation,
:<math>\frac{\partial\varphi}{\partial t} = v|\nabla \varphi|.</math>
Here, <math>|\cdot|</math> is the [[Euclidean norm]] (denoted customarily by single bars in partial differential equations), and <math>t</math> is time. This is a [[partial differential equation]], in particular a [[Hamilton–Jacobi equation]], and can be solved numerically, for example, by using [[finite difference]]s on a Cartesian grid.<ref name=osher>{{cite book |last=Osher |first=Stanley J. |authorlink = Stanley Osher |author2=Fedkiw, Ronald P. |authorlink2=Ronald Fedkiw |title=Level Set Methods and Dynamic Implicit Surfaces|publisher=[[Springer-Verlag]] |year=2002 |isbn= 978-0-387-95482-0}}</ref><ref name=sethian>{{cite book |last=Sethian |first=James A. |authorlink = James Sethian |title= Level Set Methods and Fast Marching Methods : Evolving Interfaces in Computational Geometry, Fluid Mechanics, Computer Vision, and Materials Science|publisher=[[Cambridge University Press]] |year=1999 |isbn= 978-0-521-64557-7}}</ref>
However, the numerical solution of the level set equation may require
==Example==
Consider a unit circle in <math display="inline">\mathbb{R}^2</math>, shrinking in on itself at a constant rate, i.e. each point on the boundary of the circle moves along its inwards pointing
If the field has a constant value subtracted from it in time, the zero level (which was the initial boundary) of the new fields will also be circular and will similarly collapse to a point. This is due to this being effectively the temporal integration of the [[Eikonal equation]] with a fixed front [[velocity]].
== Applications ==▼
In [[combustion]], this method is used to describe the instantaneous flame surface, known as the [[G equation]].▼
▲*In mathematical modeling of [[combustion]],
*
==History==
The level-set method was developed in 1979 by Alain Dervieux,<ref>{{cite book |last1=Dervieux |first1=A. |last2=Thomasset |first2=F. |chapter=A finite element method for the simulation of a Rayleigh-Taylor instability |chapter-url= |title=Approximation Methods for Navier-Stokes Problems |publisher=Springer |series=Lecture Notes in Mathematics |volume=771 |date=1980 |isbn=978-3-540-38550-9 |pages=145–158 |doi=10.1007/BFb0086904}}</ref> and subsequently popularized by [[Stanley Osher]] and [[James Sethian]]. It has since become popular in many disciplines, such as [[image processing]], [[computer graphics]], [[computational geometry]], [[optimization (mathematics)|optimization]], [[computational fluid dynamics]], and [[computational biology]].
▲A number of [[level set (data structures)|level-set data structures]] have been developed to facilitate the use of the level-set method in computer applications.
▲==Applications==
▲* [[Computational fluid dynamics]]
▲* [[Trajectory|Trajectory planning]]
▲* [[Mathematical optimization|Optimization]]
▲* [[Image processing]]
▲* [[Computational biophysics]]
▲* Discrete [[complex dynamics]]: visualization of [[b:Fractals/Iterations in the complex plane/Mandelbrot set|parameter plane]] and [[b:Fractals/Iterations in the complex plane/Julia set|dynamic plane]]
==See also==
{{Div col|colwidth=20em}}
* [[Contour boxplot]]
* [[Zebra
* [[G equation]]
* [[Advanced Simulation Library]]
* [[Volume of fluid method]]
* [[Image segmentation#Level-set methods]]
* [[Immersed boundary method]]s
* [[Stochastic Eulerian Lagrangian method]]s
* [[Level set (data structures)]]
* [[Posterization]]
Line 61 ⟶ 58:
==External links==
* See [[Ronald Fedkiw]]'s [http://graphics.stanford.edu/~fedkiw/ academic web page] for many
* [http://vivienmallet.net/fronts/ Multivac] is a C++ library for front tracking in 2D with level-set methods.
* [[James Sethian]]'s [http://math.berkeley.edu/~sethian/ web page] on level-set method.
Line 74 ⟶ 71:
[[Category:Computational fluid dynamics]]
[[Category:Articles containing video clips]]
[[Category:Implicit surface modeling]]
|