Method of moving asymptotes (`MMA`

) is one of the most popular optimization algorithms for topology optimization. The standard definition of topology optimization is:

\[\begin{array}{ll}
\text { Minimize } & c(\mathbf{x})=\sum_{e=1}^{N_{e}}\left(x_{e}\right)^{p}\left\{\mathbf{u}_{e}\right\}^{\mathrm{T}}\left[\mathbf{k}_{e}\right]\left\{\mathbf{u}_{e}\right\} \\
\text { subject to } & \frac{V(\mathbf{x})}{f \times V_{0}}-1=0 \\
& {[\mathbf{K}]\{\mathbf{U}\}=\{\mathbf{F}\}} \\
& \mathbf{x}_{\min } \leq \mathbf{x} \leq \mathbf{x}_{\max }
\end{array}\]

whereas the standard definition of `MMA`

is:

\[\begin{array}{ll}
\text { Minimize } & f_0(x) + a_0 \times z + \sum( c_i \times y_i + 0.5 \times d_i \times (y_i)^2 ) \\
\text { subject to } & f_i(x) - a_i \times z - y_i <= 0, i = 1,...,m \\
& z >= 0, y_i >= 0, i = 1,...,m \\
& x^{min}_j \leq x_j \leq x^{max}_j, j = 1,...,N_e
\end{array}\]

## The problem

The algorithm of `MMA`

is designed with inquality constraint (\(\leq\)) but the porblem of topology optimization is defined with an equality constriant. We want the volume of the design domain to achieve a target value (\(\text{vol frac}\times \text{initial vol}\)) and not go below than that.

## The solution

What we want is:

\[\text{current volume} = \text{target volume} \implies \frac{\text{current volume} }{ \text{target volume}}-1=0\]

To implement the above equality constraint with `MMA`

we have to apply two constraints:

\[+\frac{\text{current volume} }{ \text{target volume}+0.01}-1 \leq 0 \implies \text{current volume} \leq \text{target volume}+0.01\]
\[-\frac{\text{current volume} }{ \text{target volume} - 0.01}+1 \leq 0 \implies \text{target volume} - 0.01 \leq \text{current volume}\]

With the above two constraints applied we can force `MMA`

to give us the design volume equal to the target volume.

\[\text{target volume} - 0.01 \leq \text{current volume}\leq \text{target volume}+0.01\]

# References