# Layout Optimisation of Frame Structures with Multiple Constraints and Geometric Complexity Control
## 3 Mechanical Constraints
### Stress
\begin{split}\frac{\partial P_{\sigma^{\text{vm}}}}{\partial d_{e}} =&\overbrace{\Gamma\sum_{j=1}^{8}\left(\sigma^{\text{vm}}_{e,j} \right)^{p-1}\frac{1}{\overline{\sigma}^{\text{yield}}\sigma^{\text{vm}}_{e,j }}\left[\sigma_{e,j}\right]^{\text{T}}\left[\begin{smallmatrix}1&0& 0\\ 0&3\end{smallmatrix}\right]}^{\text{1 st term}}\overbrace{\frac{\partial B_{e,j} }{\partial d_{e}}}^{\text{1 st term}}\\ &-\overbrace{\Gamma\sum_{i=1}^{N}\sum_{j=1}^{8}\left(\sigma^{ \text{vm}}_{i,j}\right)^{p-1}\frac{1}{\overline{\sigma}^{\text{yield}}\sigma^ {\text{vm}}_{i,j}}\left[\sigma_{i,j}\right]^{\text{T}}\left[\begin{smallmatrix}1 &0\\ 0&3\end{smallmatrix}\right]}^{\text{1 st term}}\overbrace{\frac{\partial K}{ \partial d_{e}}}^{\text{2 nd term}}\\ &\overbrace{\Gamma\sum_{i=1}^{N}\sum_{j=1}^{8}\left(\sigma^{\text{vm}}_{i,j }\right)^{p-1}\frac{1}{\overline{\sigma}^{\text{yield}}\sigma^{\text{vm}}_{i,j}}\left[\sigma_{i,j}\right]^{\text{T}}\left[\begin{smallmatrix}1&0\\ 0&3\end{smallmatrix}\right]}^{\text{1 st term}}\overbrace{\frac{\partial K}{ \partial d_{e}}}^{\text{2 nd term}}\\ &\overbrace{\Gamma\sum_{i=1}^{N}\sum_{j=1}^{8}\left(\sigma^{\text{vm}}_{i,j }\right)^{p-1}\frac{2^{\text{nd term}}}{\overline{\sigma}^{\text{yield}} \sigma^{\text{vm}}_{i,j}}\left[\sigma_{i,j}\right]^{\text{T}}\left[\begin{smallmatrix}1 &0\\ 0&3\end{smallmatrix}\right]}^{\text{1 st term}}\end{split}  \tag{19}\]  
where \(\Gamma\) represents  
\[\Gamma=\left[\sum_{i=1}^{N}\sum_{j=1}^{8}\left(\sigma^{\text{vm}}_{i,j}\right) ^{p}\right]^{(1/p)-1} \tag{20}\]  
By using the adjoint method, the \(2^{\text{nd}}\) term in Equation (19) can be simplified as  
\[2^{\text{nd}}\text{ term}=\mathbf{V}_{\sigma^{\text{vm}}}\frac{\partial K}{ \partial d_{e}}\mathbf{U} \tag{21}\]  
where \(\mathbf{V}_{\sigma^{\text{vm}}}\) is a virtual displacement vector obtained by solving the system under the virtual load \(\mathbf{F}_{\sigma^{\text{vm}}}\):  
\[\mathbf{K}\mathbf{V}_{\sigma^{\text{vm}}}=\overbrace{\Gamma\sum_{i=1}^{N}\sum_{j=1}^{ 8}\left(\sigma^{\text{vm}}_{i,j}\right)^{p-1}\frac{1}{\overline{\sigma}^{ \text{yield}}\sigma^{\text{vm}}_{i,j}}\left[\sigma_{i,j}\right]^{\text{T}} \left[ \begin{smallmatrix}1&0\\ 0&3\end{smallmatrix} \right]}^{\text{1 st}}B_{i,j}\mathbf{k}_{i}\mathbf{T}_{i}\mathbf{D}_ {i} \tag{22}\]  
To address the stress singularity associated with low-stiffness elements, a \(pq\) relaxation scheme is employed [26; 66]. This scheme modifies the stress constraints (Equation (17)) based on the auxiliary topology variables of elements:  
\[G^{\text{vm}}_{e,j} = \frac{\rho_{e}{}^{\eta}\sigma^{\text{vm}}_{e,j}}{\rho_{e}{}^{ \
u}\overline{\sigma}^{\text{yield}}}=\rho_{e}{}^{(\eta-\
u)}\ \frac{\sigma^{\text{vm}}_{e,j}}{\overline{\sigma}^{\text{yield}}}\leq 1, \ \ \ \ \ e\in[1,N],\ j\in[1,8] \tag{23}\]  
where \(\rho_{e}\) is given in Equation (1), and \(\eta\) and \(\
u\) are the penalisation factors for the von Mises stress and the stress limits, respectively. In this work, \(\eta\) is set to the penalisation factor used in Equation (2), and \(\
u\) is modified accordingly, to maintain a constant relationship of \(\eta-\
u=4\). Following the implementation of stress relaxation, the sensitivity analysis described in Equation (19) can be updated accordingly.