The level set topology optimization method used follows Picelli et al. (
2018) and it is briefly described here for completeness. The structural boundary is optimized by updating the implicit level set function via an advection equation combined with the velocity field of motion. The discretized version of such equation can be expressed as
$$ \phi_{j}^{k + 1} = {\phi_{j}^{k}} - {\Delta} t | \nabla {\phi_{j}^{k}} | V_{n,j } \text{,} $$
(21)
where
k is the iteration number,
j is a discrete boundary point,
\({\Delta } t\) is the time step and
\(V_{n}\) is the velocity at point
j, considered as an advection velocity of the type
\(dx/dt = V_{n} \cdot \nabla \phi (x )\) (Osher and Fedkiw
2003). The velocities required for the level set update at every
k-th iteration are obtained by solving the following discretized optimization problem:
$$ \begin{array}{llllll} & \underset{\beta^{k} , \lambda^{k}}{minimize} & & {\Delta} t \mathbf{S}_{f}^{k} \cdot \mathbf{V}_{n}^{k} (\beta^{k} , {\lambda}^{k}) \\ & \text{subject to} & & {\Delta} t \mathbf{S}_{i}^{k} \cdot \mathbf{V}_{n}^{k} (\beta^{k} , {\lambda}^{k}) \leq -\bar{g}^{k}_{i} \\ & & & \mathbf{V}_{n,{\min}}^{k} \leq \mathbf{V}_{n}^{k} \leq \mathbf{V}_{n,{\max}}^{k} \end{array} $$
(22)
where
\(\bar {g}^{k}_{i}\) is a relaxed change in the constraint function at every iteration and the velocities
\(\mathbf {V}^{k}_{n}\) are described in terms of a search direction
\(\mathbf {d}\) normal to the boundary and the actual distance
\(\beta > 0\), as
$$ \mathbf{V}_{n} {\Delta} t = \beta \mathbf{d} \text{.} $$
(23)
The Lagrangian function related to the problem given in (
22) is expressed as
$$ \mathcal{L} (\beta^{k} , \mathbf{d}^{k} , {\lambda}^{k} , \boldsymbol{\mu}^{k}) = \beta^{k} \mathbf{S}_{f}^{k} \cdot \mathbf{d}^{k} + \sum\limits_{i = 1}^{ni} {\lambda}_{i}^{k} (\beta^{k} \mathbf{S}_{i}^{k} \cdot \mathbf{d}^{k} + \bar{g}_{i}^{k}) + \boldsymbol{\mu}^{k} ((\mathbf{d})^{T} \mathbf{d}^{k} - 1) \text{,} $$
(24)
where
\(\lambda ^{k}\) is a Lagrange multiplier and
\(\mathbf {S}_{f}^{k}\) and
\(\mathbf {S}_{i}^{k}\) are vectors containing integral coefficients computed with the shape sensitivities at the boundary points as
$$ \frac{\partial f }{\partial {\Omega}} \cdot {\Delta} {\Omega} = {\Delta} t {\int}_{{\Gamma}} s_{f} V_{n} d{\Gamma} \approx \sum\limits_{j = 1}^{nb} {\Delta} t V_{nj} s_{f,j} l_{j} = \mathbf{S}_{f} \cdot \mathbf{V}_{n} {\Delta} t \text{,} $$
(25)
$$ \frac{\partial g_{i} }{\partial {\Omega}} \cdot {\Delta} {\Omega} \,=\, {\Delta} t {\int}_{{\Gamma}} s_{gi} V_{n} d{\Gamma} \!\approx\! \sum\limits_{j = 1}^{nb} {\Delta} t V_{nj} s_{gi,j} l_{j} \,=\, \mathbf{S}_{gi} \cdot \mathbf{V}_{n} {\Delta} t \text{,} $$
(26)
for linearized objective
f and
i-th constraint functions
\(g_{i}\). The terms
\(s_{f}\) and
\(s_{g_{i}}\) are the shape sensitivity functions for the objective and constraint functions, respectively, and
\(l_{j}\) is the discrete length of the boundary associated with point
j.
The optimization problem from (
22) is solved at every iteration
k. The optimal velocities are then substituted into (
21) to update the level-set boundaries. The process is repeated until the objective function stops changing during five consecutive iterations under a certain relative tolerance of
\(10^{-3}\).