You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This package provides tools to solve level-set equations on cartesian meshes. It closely
13
+
follows the book [Level Set Methods and Dynamic Implicit
14
+
Surfaces](https://link.springer.com/book/10.1007/b98879) by Stanley Osher and Ronald Fedkiw.
16
15
17
-
If you use LevelSetMethods.jl in your work, please cite using the reference given in [CITATION.cff](https://github.com/maltezfaria/LevelSetMethods.jl/blob/main/CITATION.cff).
18
-
19
-
## Contributing
20
-
21
-
If you want to make contributions of any kind, please first that a look into our [contributing guide directly on GitHub](docs/src/90-contributing.md) or the [contributing page on the website](https://maltezfaria.github.io/LevelSetMethods.jl/dev/90-contributing/)
22
-
23
-
---
24
-
25
-
### Contributors
26
-
27
-
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
28
-
<!-- prettier-ignore-start -->
29
-
<!-- markdownlint-disable -->
30
-
31
-
<!-- markdownlint-restore -->
32
-
<!-- prettier-ignore-end -->
33
-
34
-
<!-- ALL-CONTRIBUTORS-LIST:END -->
16
+
For more details, see the [stable](https://maltezfaria.github.io/LevelSetMethods.jl/stable)
17
+
or [development](https://maltezfaria.github.io/LevelSetMethods.jl/dev) documentations.
Copy file name to clipboardExpand all lines: docs/src/example-shape-optim.md
+16-7Lines changed: 16 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,14 +4,19 @@
4
4
5
5
We consider in this example the *isoperimetric inequality* which states that among all closed surfaces enclosing a fixed area with volume $V_0 > 0$, the sphere is the one with minimal perimeter.
6
6
We show here how to demonstrate this result through numerical optimization.
7
-
To do this, we first define the problem mathematically (1):
7
+
8
+
!!! warning
9
+
This example is purely illustrative. The optimization method used here has not been extensively tested.
10
+
Coupling the [LevelSetMethods](https://github.com/maltezfaria/LevelSetMethods.jl) toolbox to any simulation package makes it possible to solve PDE-constrained optimization problems (see for instance [allaire2004structural](@cite)).
11
+
12
+
To do this, we first define the problem mathematically:
where $\mu$ is a parameter updated during the course of the optimization.
33
-
To minimize (2), we will use a gradient-based algorithm.
39
+
To minimize $\text{(2)}$, we use a gradient-based algorithm.
34
40
For this, we need to define what a *small variation* of $\Omega$ is.
35
-
As such, we define for any shape $\Omega \subset \mathbb{R}^N$ its deformed configuration $\Omega_{\boldsymbol{\theta}}$ by a small vector field $\boldsymbol{\theta} \in W^{1,\infty}(\mathbb{R}^N, \mathbb{R}^N)$ as:
41
+
As such, for any shape $\Omega \subset \mathbb{R}^d$ we define (following Hadamard method) its deformation $\Omega_{\boldsymbol{\theta}}$ by a small vector field $\boldsymbol{\theta} \in W^{1,\infty}(\mathbb{R}^d, \mathbb{R}^d)$ as:
36
42
37
43
```math
38
44
\Omega_{\boldsymbol{\theta}}
@@ -60,7 +66,7 @@ In other words, using $\boldsymbol{\theta} = - (\kappa + (\lambda + \mu (V(\Omeg
60
66
61
67
## Numerical solution using the level-set method
62
68
63
-
If $\Omega$ is given by the level-set function $\phi_0 : \R^N \to \R$ then one associated with $\Omega_{\tau\boldsymbol{\theta}}$ is given by $\phi(\cdot, \tau)$ solution of
69
+
If $\Omega$ is given by the level-set function $\phi_0 : \R^d \to \R$ then one associated with $\Omega_{\tau\boldsymbol{\theta}}$ is given by $\phi(\cdot, \tau)$ solution of
Different values and updates for the $\lambda$ and $\mu$ coefficients can be used to control the extent to which the optimization focuses on minimizing the objective or satisfying the constraint.
138
+
Taking a smaller time step can also limit the oscillations observed at the end of optimization.
0 commit comments