# Layout Optimisation of Frame Structures with Multiple Constraints and Geometric Complexity Control
## 3 Mechanical Constraints
### Stability  
Building upon the approach established by [PERSON] et al. [34], the evaluation of both the local and global stability of structures is conducted simultaneously through a linear buckling analysis, where each member is subdivided into several elements to capture the lateral deformation. The formulation of the generalised eigenvalue problem for this linear buckling analysis is  
\[[\mathbf{K}^{E}+\lambda_{j}\mathbf{K}^{G}]\mathbf{\varphi}_{j}=\mathbf{0} \tag{24}\]  
where \(\mathbf{K}^{E}\) is the elastic stiffness matrix, \(\mathbf{K}^{G}\) is the geometric stiffness matrix, \(\lambda_{j}\) is the \(j\)-th order of the eigenvalue, and \(\mathbf{\varphi}_{j}\) is the corresponding eigenvector. \(\mathbf{\varphi}_{j}\) is normalised against \(\mathbf{K}^{E}\) by following \(\mathbf{\varphi}_{j}{}^{\text{T}}\mathbf{K}^{E}\mathbf{\varphi}_{k}=\delta_{jk}\), and \(\delta_{jk}\) is Kronecker's delta. To mitigate pseudo buckling modes caused by low-stiffness elements, the element diameters required for computing the elastic and geometric stiffness matrices are interpolated using different penalisation factors in Equation (2) [47]. Specifically, \(\omega_{E}\) is applied to the elastic stiffness matrix, while \(\omega_{G}=\omega_{E}+4\) is used for the geometric stiffness matrix. By introducing an auxiliary variable, \(\kappa_{j}=-1/\lambda_{j}\), Equation (24) can be rewritten as  
\[[\mathbf{K}^{G}-\kappa_{j}\mathbf{K}^{E}]\mathbf{\varphi}_{j}=\mathbf{0} \tag{25}\]  
Assuming that the eigenvalue is unimodal, the sensitivity of the auxiliary variable can be expressed as [43]  
\[\frac{\partial\kappa_{j}}{\partial d_{e}}=-\kappa_{j}[\mathbf{\varphi}_{j}^{\text {T}}\frac{\partial\mathbf{K}^{E}}{\partial d_{e}}\mathbf{\varphi}_{j}]+[\mathbf{\varphi}_{ j}^{\text{T}}\frac{\partial\mathbf{K}^{G}}{\partial d_{e}}\mathbf{\varphi}_{j}]-[\mathbf{v}_{j}^{ \text{T}}\frac{\partial\mathbf{K}^{E}}{\partial d_{e}}\mathbf{\varphi}_{j}] \tag{26}\]  
where \(\mathbf{v}_{j}\) is the virtual displacement vector associated with the virtual load vector \(\mathbf{F}_{j}^{\text{Eig}}\). \(\mathbf{v}_{j}\) can be obtained by solving the adjoint system:  
\[\mathbf{K}^{E}\mathbf{v}_{j}=\mathbf{\varphi}_{j}^{\text{T}}\frac{\partial\mathbf{K}^{G}}{ \partial\mathbf{U}}\mathbf{\varphi}_{j}=\widehat{\left[\mathbf{\varphi}_{j}^{\text{T}} \frac{\partial\mathbf{K}^{G}}{\partial\mathbf{U}_{1}}\mathbf{\varphi}_{j},\mathbf{\varphi}_{ j}^{\text{T}}\frac{\partial\mathbf{K}^{G}}{\partial\mathbf{U}_{2}}\mathbf{\varphi}_{j},...,\mathbf{\varphi}_{j}^{\text{T}}\frac{\partial\mathbf{K}^{G}}{\partial\mathbf{U}_{m}} \mathbf{\varphi}_{j}\right]} \tag{27}\]  
where \(m\) is the total number of degrees of freedom of the structure. To ensure structural stability, the eigenvalues \(\lambda_{j}\) obtained by solving Equation (24) should be greater than a predefined lower bound \(\underline{\lambda}\). Alternatively, by making use of the auxiliary variable \(\kappa_{j}\), the stability constraints can be expressed as  
\[G_{j}^{\text{Eig}}=\frac{\kappa_{j}}{\overline{\kappa}}\leq 1,\quad j\in[1,J] \tag{28}\]  
where \(\overline{\kappa}\) is defined as \(-1/\underline{\lambda}\). \(J\) is the highest rank of the under-constrained eigenvalues and is set to 50 in this work. Similar to the displacement and stress constraints, the stability constraints in Equation (28) are condensed into a global measure using the same aggregation factor of \(p=4\), which can be expressed as  
\[P_{\text{Eig}}=\left[\sum_{j=1}^{J}\left(G_{j}^{\text{Eig}}\right)^{p}\right] ^{1/p}\leq 1 \tag{29}\]  
The global measure of stability constraints is normalised to enhance its approximation of the true maximum value, employing a similar approach as applied to the displacement and stress constraints. However, for the sake of simplicity, the expression of this normalisation is not provided here.