Content deleted Content added
GraziePrego (talk | contribs) Tagging for tone, references to "we see", and describing techniques as "great" |
|||
(48 intermediate revisions by 42 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
In the top row
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-
:<math>\Gamma = \{(x, y) \mid \varphi(x, y) = 0 \},</math>
and the level-set method manipulates <math>\Gamma</math> ''implicitly''
==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, it can be determined that the level-set function <math>\varphi</math> satisfies the ''level-set equation'' ▼
▲If the curve <math>\Gamma</math> moves in the normal direction with a speed <math>v</math>, then the level-set function <math>\varphi</math> satisfies the ''level-set equation''
:<math>\frac{\partial\varphi}{\partial t} = v|\nabla \varphi|.</math>
Here, <math>|\cdot|</math> is the [[Euclidean norm]] (denoted customarily by single bars in
==
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.
▲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 normal at some fixed speed. The circle will shrink and eventually collapse down to a point. If an initial distance field is constructed (i.e. a function whose value is the signed euclidean distance to the boundary, positive interior, negative exterior) on the initial circle, the normalised gradient of this field will be the circle normal.
== Applications ==▼
▲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.
*In mathematical modeling of [[combustion]],
*[[Mathematical optimization|Optimization]]
*
==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
▲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 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 planning
▲* Image processing
▲* Computational biophysics
▲* Discrete [[complex dynamics]]: visulalisation 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 104 ⟶ 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.
* [[Stanley Osher]]'s [https://www.math.ucla.edu/~sjo/ homepage].
* [https://math.mit.edu/classes/18.086/2007/levelsetpres.pdf The Level Set Method. MIT 16.920J / 2.097J / 6.339J.
* [https://ocw.mit.edu/courses/18-086-mathematical-methods-for-engineers-ii-spring-2006/resources/lecture-11-level-set-method/ Lecture 11: The Level Set Method: MIT 18.086. Mathematical Methods for Engineers II by Gilbert Strang]
{{Numerical PDE}}
Line 116 ⟶ 71:
[[Category:Computational fluid dynamics]]
[[Category:Articles containing video clips]]
[[Category:Implicit surface modeling]]
|