Shape optimization is part of the field of optimal control theory. The typical problem is to find the shape which is optimal in that it minimizes a certain cost functional while satisfying given constraints. In many cases, the functional being solved depends on the solution of a given partial differential equation defined on the variable domain. Topology optimization is, in addition, concerned with the number of connected components/boundaries belonging to the domain. Such methods are needed since typically shape optimization methods work in a subset of allowable shapes which have fixed topological properties, such as having a fixed number of holes in them. Topological optimization techniques can then help work around the limitations of pure shape optimization.
Definition Mathematically, shape optimization can be posed as the problem of finding a bounded set Ω {\displaystyle \Omega } , minimizing a functional
F ( Ω ) {\displaystyle {\mathcal {F}}(\Omega )} , possibly subject to a constraint of the form
G ( Ω ) = 0. {\displaystyle {\mathcal {G}}(\Omega )=0.}
Usually we are interested in sets Ω {\displaystyle \Omega } which are Lipschitz or C1 boundary and consist of finitely many components, which is a way of saying that we would like to find a rather pleasing shape as a solution, not some jumble of rough bits and pieces. Sometimes additional constraints need to be imposed to that end to ensure well-posedness of the problem and uniqueness of the solution. Shape optimization is an infinite-dimensional optimization problem. Furthermore, the space of allowable shapes over which the optimization is performed does not admit a vector space structure, making application of traditional optimization methods more difficult.
Examples
Techniques Shape optimization problems are usually solved numerically, by using iterative methods. That is, one starts with an initial guess for a shape, and then gradually evolves it, until it morphs into the optimal shape.
Keeping track of the shape To solve a shape optimization problem, one needs to find a way to represent a shape in the computer memory, and follow its evolution. Several approaches are usually used. One approach is to follow the boundary of the shape. For that, one can sample the shape boundary in a relatively dense and uniform manner, that is, to consider enough points to get a sufficiently accurate outline of the shape. Then, one can evolve the shape by gradually moving the boundary points. This is called the Lagrangian approach. Another approach is to consider a function defined on a rectangular box around the shape, which is positive inside of the shape, zero on the boundary of the shape, and negative outside of the shape. One can then evolve this function instead of the shape itself. One can consider a rectangular grid on the box and sample the function at the grid points. As the shape evolves, the grid points do not change; only the function values at the grid points change. This approach, of using a fixed grid, is called the Eulerian approach. The idea of using a function to represent the shape is at the basis of the level-set method. A third approach is to think of the shape evolution as of a flow problem. That is, one can imagine that the shape is made of a plastic material gradually deforming such that any point inside or on the boundary of the shape can be always traced back to a point of the original shape in a one-to-one fashion. Mathematically, if Ω 0 {\displaystyle \Omega _{0}} is the initial shape, and Ω t {\displaystyle \Omega _{t}} is the shape at time t, one considers the diffeomorphisms
f t : Ω 0 → Ω t , for 0 ≤ t ≤ t 0 . {\displaystyle f_{t}:\Omega _{0}\to \Omega _{t},{\mbox{ for }}0\leq t\leq t_{0}.}
The idea is again that shapes are difficult entities to be dealt with directly, so manipulate them by means of a function.
Iterative methods using shape gradients Consider a smooth velocity field V {\displaystyle V} and the family of transformations T s {\displaystyle T_{s}} of the initial domain Ω 0 {\displaystyle \Omega _{0}} under the velocity field V {\displaystyle V} :
x ( 0 ) = x 0 ∈ Ω 0 , x ′ ( s ) = V ( x ( s ) ) , T s ( x 0 ) = x ( s ) , s ≥ 0 {\displaystyle x(0)=x_{0}\in \Omega _{0},\quad x'(s)=V(x(s)),\quad T_{s}(x_{0})=x(s),\quad s\geq 0} , and denote
Ω 0 ↦ T s ( Ω 0 ) = Ω s . {\displaystyle \Omega _{0}\mapsto T_{s}(\Omega _{0})=\Omega _{s}.}
… excerpt ends here. Continue reading the full article.
