1 Introduction

In recent decades, topology optimization has emerged as an indispensable tool in structural design, facilitating the design of high-performance structures using minimal material (Bendsøe & Sigmund, 2004; Ma et al., 2021; Zhang et al., 2024). Initially, topology optimization focused on minimizing structural compliance, laying a foundational approach in this area (Bendsøe & Kikuchi, 1988; Rozvany et al., 1992; Xie & Steven, 1993). Over time, the field has evolved to incorporate a broader range of principles to address diverse and practical engineering requirements, which include considerations such as natural frequency (Huang et al., 2010), stress control (Amir, 2017; Chen et al., 2021; Le et al., 2010), and additive manufacturability (Bi et al., 2020, 2022).

Addressing buckling has become increasingly crucial in topology optimization to ensure structural stability. However, incorporating buckling constraints presents challenges, primarily due to the emergence of 'pseudo buckling modes' in intermediate-density elements (Ferrari & Sigmund, 2019). Various strategies have been developed to mitigate the issue of pseudo buckling modes in topology optimization. Neves et al. (1995) introduced a technique to artificially cut off the stress stiffness of low-density elements. Bendsøe and Sigmund (2004) employed two distinct material interpolation schemes for the stiffness and stress stiffness matrices. This method, aimed at artificially increasing the stiffness of intermediate-density elements, has gained widespread acceptance and application in numerous studies (Dalklint et al., 2021; Ferrari et al., 2021; Munk et al., 2017; Yi et al., 2019). Gao and Ma (2015) developed a method to identify and eliminate pseudo buckling modes by assessing the modal strain energy in low-density regions and the overall structure. Another noteworthy approach by Zhang et al. (2023) involves a matrix-construction strategy that assigns minimal pseudo masses to the degrees of freedom surrounded by only low-density elements, while maintaining an identity matrix for regions of solid material. Recent studies suggest that pseudo buckling modes stem from inappropriate measurements of stress distribution, and that stress relaxation functions can effectively eliminate these modes (Xu et al., 2023a). Besides, considering that a significant number of pseudo buckling modes emerge in intermediate-density elements due to the penalization in material models, the bi-directional evolutionary structural optimization (BESO) method benefits from having only two discrete states (solid and void) for the design variables, therefore naturally avoiding pseudo buckling modes in intermediate-density elements (Xu et al., 2023b).

Topology optimization techniques have been widely used in designing civil structures (Ma et al., 2023; Xu et al., 2022). However, stability criteria have rarely been considered in these design processes. This study employs the BESO method to enhance the buckling resistance performance of civil structures while maintaining high structural stiffness. Specifically, this study focuses on three common design cases in civil engineering: the first case involves maximizing the buckling load factor (BLF) of a compressed column, an essential element in civil structures. The second case addresses buckling-constrained optimization of a frame structure featuring one structural member under tension and another under compression. Finally, the study tackles a practical engineering challenge by improving the buckling resistance of a high-rise building structure. To address this problem, a novel buckling-constrained BESO method for multiple load cases is proposed.

The structure of the paper is organized as follows. In Sect. 2, the problem statement and the principal formulas of buckling analysis are given. The material interpolation schemes and sensitivity analysis are presented in Sect. 3. The optimization procedures are shown in Sect. 4. The effectiveness and robustness of the algorithm are demonstrated through three numerical examples in Sect. 5. Lastly, concluding remarks are given in Sect. 6.

2 Problem statement and buckling analysis

2.1 Problem statement

The mathematical model for topology optimization for maximizing the critical BLF is formulated as

$$\begin{gathered} {\text{max}}:\lambda_{1} \\ {\text{s.t}}{.}:\left\{ \begin{gathered} {\mathbf{F}} = {\mathbf{Ku}} \hfill \\ V_{f} = \frac{{\sum\nolimits_{e} {x_{e} V_{e} } }}{{\sum\nolimits_{e} {V_{e} } }} \le V_{f}^{*} \hfill \\ x_{min} \le x_{e} \le 1 \hfill \\ \end{gathered} \right. \hfill \\ \end{gathered}$$
(1)

where λ1 is the critical BLF. F is the load applied to the structure. K and u are the global stiffness matrix and the displacement vector, respectively. Vf and Vf* denote the volume fraction of the structure and its constraint value. xe (e = 1, 2, …) is the design variable, and Ve is the volume of the corresponding element. xmin is a minimal positive value, e.g., 10−3 to 10−9, to avoid the singularity. For the discrete BESO method, xe is the binary design variable, which equals either xmin (void) or 1 (solid).

The buckling-constrained topology optimization is determined as

$$\begin{gathered} {\text{min}}:C = \frac{1}{2}{\mathbf{u}}^{T} {\mathbf{Ku}} \hfill \\ {\text{s.t.}}:\left\{ \begin{gathered} {\mathbf{F}} = {\mathbf{Ku}} \hfill \\ V_{f} = \frac{{\sum\nolimits_{e} {x_{e} V_{e} } }}{{\sum\nolimits_{e} {V_{e} } }} \le V_{f}^{*} \hfill \\ \lambda_{1} \ge \underline{\lambda } \hfill \\ x_{min} \le x_{e} \le 1 \hfill \\ \end{gathered} \right. \hfill \\ \end{gathered}$$
(2)

where C is the mean compliance, and \(\underline{\lambda}\) denotes the predetermined buckling constraint.

The adaptation of the BESO method to address multiple load cases is straightforward. Specifically, the optimization challenge can be expressed as minimizing a weighted average of the mean compliances across all load cases, while ensuring that the minimum BLF in all load cases satisfies the buckling constraint value. Thus, the topology optimization problem for multiple load cases can be described as follows

$$\begin{gathered} {\text{min}}:\sum\limits_{m = 1}^{L} {w_{m} C_{m} } \hfill \\ {\text{s.t.}}:\left\{ \begin{gathered} {\mathbf{F}} = {\mathbf{Ku}} \hfill \\ V_{f} = \frac{{\sum\nolimits_{e} {x_{e} V_{e} } }}{{\sum\nolimits_{e} {V_{e} } }} \le V_{f}^{*} \hfill \\ \min \left[ {\lambda_{1}^{1} ,\lambda_{1}^{2} ,...,\lambda_{1}^{L} } \right] \ge \underline{\lambda } \hfill \\ x_{min} \le x_{e} \le 1 \hfill \\ \end{gathered} \right. \hfill \\ \end{gathered}$$
(3)

where L is the total number of load cases, and wm is the prescribed weighting factor for the m-th load case, which should satisfy \(\sum\nolimits_{m = 1}^{L} {w_{m} C_{m} }\).

2.2 Buckling analysis

For computational efficiency, this study employs the commonly used linear buckling analysis, defined as

$$({\mathbf{K}} + \lambda_{i} {\mathbf{G}}){{\varvec{\Phi}}}_{i} = 0$$
(4)

where λi is the i-th BLF, and Φi denotes the corresponding buckling mode vector. The global stress stiffness matrix, G, is assembled from the element stress stiffness matrix, as shown in Eq. (5).

$${\mathbf{G}}_{e} = {\mathbf{B}}_{g}^{T} {\mathbf{SB}}_{g}$$
(5)

where Bg signifies the derivatives of the shape function. For plane stress problems, the stress matrix S is given by

$${\mathbf{S}} = \left[ {\begin{array}{*{20}c} {\sigma_{x} } & {\tau_{xy} } & 0 & 0 \\ {\tau_{xy} } & {\sigma_{y} } & 0 & 0 \\ 0 & 0 & {\sigma_{x} } & {\tau_{xy} } \\ 0 & 0 & {\tau_{xy} } & {\sigma_{y} } \\ \end{array} } \right]$$
(6)

where σx, σy, and τxy are the components of element stress σe, expressed as

$${{\varvec{\upsigma}}}_{e} = \left[ {\begin{array}{*{20}c} {\sigma_{x} } & {\sigma_{y} } & {\tau_{xy} } \\ \end{array} } \right]^{T} = {\mathbf{D}}_{1} {\mathbf{Bu}}_{{\mathbf{e}}}$$
(7)

where B is the strain–displacement matrix, which is given by

$${\mathbf{B}} = \left[ {\begin{array}{*{20}l} {\partial_{x} N_{1} } & 0 & {\partial_{x} N_{2} } & 0 & {\partial_{x} N_{3} } & 0 & {\partial_{x} N_{4} } & 0 \\ {\partial_{y} N_{1} } & 0 & {\partial_{y} N_{2} } & 0 & {\partial_{y} N_{3} } & 0 & {\partial_{y} N_{4} } & 0 \\ 0 & {\partial_{x} N_{1} } & 0 & {\partial_{x} N_{2} } & 0 & {\partial_{x} N_{3} } & 0 & {\partial_{x} N_{4} } \\ 0 & {\partial_{y} N_{1} } & 0 & {\partial_{y} N_{2} } & 0 & {\partial_{y} N_{3} } & 0 & {\partial_{y} N_{4} } \\ \end{array} } \right]$$
(8)

where D1 represents the elasticity matrix for solid elements, and ue denotes the element displacement vector.

3 Material interpolation schemes and sensitivity analysis

This section introduces material interpolation schemes applied to stiffness (EK) and stress stiffness (EG) matrices in the BESO method. Besides, to quantify the influence of design variables on the overall structural performance, sensitivity analysis is performed in this section.

3.1 Material model with penalization

In the BESO method, a material penalization scheme is implemented, which may lead to pseudo buckling modes in void elements. To mitigate these pseudo buckling modes, two distinct material interpolation schemes are employed for stiffness and stress stiffness matrices:

$$\left\{ \begin{gathered} E_{K} (x_{e} ) = \left[ {\frac{{x_{min} - x_{min}^{p} }}{{1 - x_{min}^{p} }}(1 - x_{e}^{p} ) + x_{e}^{p} } \right]E \hfill \\ E_{G} (x_{e} ) = x_{e}^{p} E \hfill \\ \end{gathered} \right.$$
(9)

where p represents the penalty exponent, which is consistently set to 3 in this study. E is Young’s modulus of the solid element. Through these two schemes, it is ensured that the stiffness matrix exceeds the stress stiffness matrix when xe = xmin, effectively suppressing pseudo modes.

3.2 Sensitivity analysis

The sensitivity of compliance with respect to the change in the design variable can be easily derived using the adjoint method

$$\frac{\partial C}{{\partial x_{e} }} = - {\mathbf{u}}_{e}^{T} \frac{{\partial {\mathbf{K}}}}{{\partial x_{e} }}{\mathbf{u}}$$
(10)

The minimum BLF λ1 is equal to its reciprocal value μ1, allowing Eq. (4) to be reformulated as

$$({\mathbf{G}} + \mu_{i} {\mathbf{K}}){{\varvec{\Phi}}}_{i} = 0$$
(11)

where μi is the i-th eigenvalue of the equation, calculated as

$$\mu_{i} = - \frac{{{{\varvec{\Phi}}}_{i}^{T} {\mathbf{G\Phi }}_{i} }}{{{{\varvec{\Phi}}}_{i}^{T} {\mathbf{K\Phi }}_{i} }}$$
(12)

The corresponding eigenvectors Φi satisfy the following orthonormalization condition.

$${{\varvec{\Phi}}}_{i}^{T} {\mathbf{K\Phi }}_{k} = \delta_{ik}$$
(13)

where δik is the Kronecker delta. Subsequently, the multiple BLFs are approximated using the KS aggregation function as (Kreisselmeier & Steinhauser, 1979)

$$\mu_{KS} = \mu_{1} + \frac{1}{\rho }\ln \left( {\sum\limits_{i = 1}^{q} {\exp \left( {\rho \left( {\mu_{i} - \mu_{1} } \right)} \right)} } \right)$$
(14)

In this study, the number of calculated eigenvalues (q) and the aggregation factor (ρ) are set to 12 and 160 respectively. The sensitivity of approximated BLFs is derived from the derivative of Eq. (14):

$$\frac{{\partial \mu_{KS} }}{{\partial x_{e} }} = \frac{{\sum\nolimits_{i = 1}^{q} {\left( {\exp \left( {\rho \left( {\mu_{i} - \mu_{1} } \right)} \right)\frac{{\partial \mu_{i} }}{{\partial x_{e} }}} \right)} }}{{\sum\nolimits_{i = 1}^{q} {\exp \left( {\rho \left( {\mu_{i} - \mu_{1} } \right)} \right)} }}$$
(15)

where the sensitivity of the i-th BLF is calculated as

$$\frac{{\partial \mu_{i} }}{{\partial x_{e} }} = - \left[ {{{\varvec{\Phi}}}_{i}^{T} \left( {\frac{{\partial {\mathbf{G}}}}{{\partial x_{e} }} + \mu_{i} \frac{{\partial {\mathbf{K}}}}{{\partial x_{e} }}} \right){{\varvec{\Phi}}}_{i} - {{\varvec{\upnu}}}_{i}^{T} \frac{{\partial {\mathbf{K}}}}{{\partial x_{e} }}{\mathbf{u}}} \right]$$
(16)

where the i-th adjoint vector υi is solved by

$${\mathbf{K\nu }}_{i} = {{\varvec{\Phi}}}_{i}^{T} \frac{{\partial {\mathbf{G}}}}{{\partial {\mathbf{u}}}}{{\varvec{\Phi}}}_{i}$$
(17)

In the BESO method, the volume is updated by the evolutionary ratio during the optimization process; therefore, volume sensitivity is not explicitly calculated.

The overall sensitivity of each element can be calculated by adding the buckling sensitivity to the compliance sensitivity, using an augmented Lagrangian multiplier Λ as

$$\alpha_{e} = - \frac{\partial f}{{\partial x_{e} }} = - \frac{\partial C}{{\partial x_{e} }} - \Lambda \frac{{\partial \mu_{KS} }}{{\partial x_{e} }}$$
(18)

where the detailed calculation of the augmented Lagrangian multiplier Λ is determined as (Xu et al., 2023b)

$$\Lambda = \left\{ {\begin{array}{*{20}c} 0 & {\lambda_{1} > \underline {\lambda } {\text{ and }}\varpi = 0} \\ {\frac{{\gamma^{k} \times \underline {\lambda } - \lambda_{1} }}{{\underline {\lambda } }}} & {\lambda_{1} \le \underline {\lambda } {\text{ or }}\varpi = 1} \\ \end{array} } \right.$$
(19)

where \({\gamma }^{k}\) presents the augmentation of the Lagrangian multiplier at the \(k\)-th iteration. The variable \(\varpi\) tracks the activation status of buckling constraints: \(\varpi =0\) indicates that buckling constraints have not been activated, whereas \(\varpi = 1\) signifies that buckling constraints have been activated at some point during the optimization. This setup ensures the continuity of the multiplier throughout the process. \({\gamma }^{k}\) is updated using the following scheme.

$$\gamma^{k + 1} = \left\{ {\begin{array}{*{20}l} {\gamma^{k} \times \eta } & {\Delta \lambda_{1} \le \xi } & {{\text{when}}\frac{{\left| {\underline {\lambda } - \lambda_{1} } \right|}}{{\underline {\lambda } }} > 5\% } \\ {\gamma^{k} + \delta_{\eta } } & {\Delta \lambda_{1} \le \xi {\text{ and }}error \le \tau } & {{\text{when}}\frac{{\left| {\underline {\lambda } - \lambda_{1} } \right|}}{{\underline {\lambda } }} \le 5\% } \\ {\gamma^{k} } & {} & {{\text{elsewise}}} \\ \end{array} } \right.$$
(20)

where \(\eta\) is a predefined update coefficient. \({\gamma }^{0}={1}\) and \(\eta =\text{1.03}\) are set as default values, which have been numerically tested as suitable for most cases. The value of \(\eta\) can be adjusted smaller or larger to decrease or increase the update step, respectively. The difference, \({\delta }_{\eta }\), is calculated as \({\delta }_{\eta }=\eta -{1}\). The change in \({\lambda }_{1}\) over the last two iterations is denoted by \(\Delta {\lambda }_{1}\). An update threshold, \(\xi\), typically set at \(\xi ={10}^{-3}\), is used. The convergence criterion, referred to as \({\text{error}}\), is the convergence criterion. To enhance computational efficiency and ensure convergence, two updating criteria and schemes for \({\gamma }^{k}\) are determined as follows.

  1. 1.

    When the difference between \({\lambda }_{1}\) and \(\underline{\lambda}\) is large (\(\left|\underline{\lambda }-{\lambda }_{1}\right|/\underline{\lambda }>{5}\%\)), the updating criterion is relaxed (\(\Delta {\lambda }_{1}\le \xi\)), resulting in a larger increment of \({\gamma }^{k}\).

  2. 2.

    Conversely, when \({\lambda }_{1}\) is close to \(\underline{\lambda }\) (\(\left|\underline{\lambda }-{\lambda }_{1}\right|/\underline{\lambda }\le {5}\%\)), the updating criterion is tightened (\(\Delta {\lambda }_{1}\le \xi\) and \({\text{error}}\le \tau\)), leading to a smaller increment of \({\gamma }^{k}\).

To avoid a mesh-dependent solution, the sensitivity values are averaged using a filtering scheme defined as (Huang & Xie, 2007)

$$\tilde{\alpha }_{e} = \sum\nolimits_{j} {w_{ej} \alpha_{j} }$$
(21)

where wej is the weight factor of the filtering scheme based on the distance (rej) between element e and element j. By defining a circle at the center of element e with a specified radius rmin, a sub-domain Ωj is generated. The weight factor wej is calculated as

$$w_{ej} = \left\{ {\begin{array}{*{20}c} {\frac{{r_{min} - r_{ej} }}{{\sum\nolimits_{j} {\left( {r_{min} - r_{ej} } \right)} }}} & {{\text{if }}j \in \Omega_{j} } \\ 0 & {{\text{if }}j \notin \Omega_{j} } \\ \end{array} } \right\}$$
(22)

To improve optimization stability and convergence, the sensitivity value is averaged by the previous three historical information as

$$\tilde{\alpha }_{e}^{k} = \frac{{\tilde{\alpha }_{e}^{k} + \tilde{\alpha }_{e}^{k - 1} + \tilde{\alpha }_{e}^{k - 2} }}{3}$$
(23)

where k represents the current iteration number.

4 Optimization procedures

Once sensitivities are obtained, the design variables are updated accordingly. The optimization procedures for the BESO and FPTO methods are outlined in this section.

The buckling-constrained BESO method typically starts with a stiffness design to ensure optimization stability. The element addition or removal follows the subsequent steps (Xu et al., 2023b).

  1. 1.

    The proportion (δs) of solid elements transitioning to void states is calculated using the bisection algorithm.

  2. 2.

    If δs is less than or equal to the evolutionary ratio (ER), move to the next iteration. If not, recalculate the threshold sensitivity values for both removing (\({\alpha }_{th}^{del}\)) and adding (\({\alpha }_{th}^{add}\)) elements in Step 3.

  3. 3.

    The sensitivity values of the solid elements are organized in ascending order. \({\alpha }_{th}^{del}\) is the sensitivity number of the m-th element in this ordered sequence, where m is the multiplication of \(ER\) by the number of solid elements. Similarly, \({\alpha }_{th}^{add}\) corresponds to the sensitivity number of the m-th element ranked in the descending order of sensitivity values of void elements.

The optimization is performed continuously until buckling constraints, the volume constraint and the convergence criterion are all satisfied. The convergence criterion is defined in terms of the change in the objective function as

$$\frac{{\left| {\sum\nolimits_{i = 1}^{M} {C_{k - i + 1} } - \sum\nolimits_{i = 1}^{M} {C_{k - M - i + 1} } } \right|}}{{\sum\nolimits_{i = 1}^{M} {C_{k - i + 1} } }} \le \tau$$
(24)

where \(k\) is the current iteration number, \(\tau\) is an allowable convergence tolerance, and \(M\) is an integer number. In this study, \(M={5}\) is employed, denoting that the change in the mean compliance over the last 10 iterations is sufficiently small, e.g., \(\tau ={10}^{-3}\) to 10−5.

The overall procedure for the buckling-constrained BESO method is illustrated in Fig. 1. The evolutionary iteration procedure of the presented buckling-constrained BESO method is given as follows.

  1. Step 1.

    Establish finite element model, define boundary conditions and assign initial parameters, including volume fraction \({V}^{*}\), evolutionary ratio \(ER\), material penalty exponent \(p\), filter radius \({r}_{min}\), buckling constraint \(\underline{\lambda }\), and update coefficient \(\eta\);

  2. Step 2.

    Obtain displacement u, stiffness matrix K, and compliance C by static analysis;

  3. Step 3.

    Obtain the BLFs \({\lambda }_{j}\), buckling mode vector \({\mathbf{\varphi }}_{j}\), and geometric stiffness matrix G by linear buckling analysis;

  4. Step 4.

    Determine the augmented Lagrangian multiplier;

  5. Step 5.

    Calculate the sensitivity numbers of all elements;

  6. Step 6.

    Improve the sensitivity numbers by using the filter scheme;

  7. Step 7.

    Stabilize the evolutionary process by averaging the sensitivity numbers of the past three iterations;

  8. Step 8.

    Update design variables by using the proposed update scheme;

  9. Step 9.

    Return to Step 2 if the volume constraint, buckling constraints, or the convergence criterion is not satisfied.

Fig. 1
figure 1

Flowchart of the buckling-constrained BESO method

5 Numerical examples

In this section, three numerical examples are presented to demonstrate the effectiveness of both algorithms. These examples include the BLF maximization problem, buckling-constrained topology optimization problem, and the multiple load cases problem. Plane stress elements with a uniform thickness are used in all numerical examples. The parameter settings for the numerical implementations of both methods are consistent with those suggested by Xu et al., (2023b).

5.1 BLF maximization for a compressed column

Buckling often occurs in structural components under compression, especially in slender components. Here, the BLF maximization is conducted on a compressed column example, as shown in Fig. 2. The rectangular design domain with dimensions Lx = Ly/2 = 1 is discretized into 240 × 480 elements. At the top of the design domain, a downward force of magnitude F = 1 × 10−3 is uniformly applied over a length of l/Lx = 1/15. Beneath the applied force, an area extending to a depth of l/2 is designated as the non-design domain, while the bottom of the design domain is fixed.

Fig. 2
figure 2

Design domain and boundary conditions of the compressed column

The target volume fraction is set at Vf* = 25%, and the filter size rmin = 4 × the element side length. The optimization process using the BESO method is shown in Fig. 3. The BESO method requires a stiffness design serving as the initial design domain, which is a simple column, as shown in Fig. 3a-1. During the optimization process, the initial column is separated into two bars connected by thin cross-like bars, with the distance between the separated bars incrementally increasing (Fig. 3a). The first buckling load factor (λ1) increases from 0.89 of the initial column to 9.21 of the final design (Fig. 3b).

Fig. 3
figure 3

BESO optimization process: a structural topologies at different iterations; and b evolutionary histories of the first four BLFs (Xu et al., 2023b)

5.2 Buckling-constrained optimization of a frame structure

This section addresses the buckling-constrained topology optimization problem for a frame structure, as per Eq. (2). The boundary conditions and design domain of the structure are illustrated in Fig. 4a, where the domain is discretized into 90 × 210 elements. A downward force F = 2 × 10–2 is evenly distributed over a length of l = b/10, located at the midpoint of the right side. The left side of the domain is fixed near the upper and lower ends with a length of l.

Fig. 4
figure 4

The frame example: a design domain and boundary conditions; and b the stiffness design obtained by the BESO method

Set Vf* = 20%, and rmin = 2 × the element side length, and ER = 1%. The initial stiffness design obtained through the BESO method features symmetric upper and lower bars (Fig. 4b), with the lowest BLF λ1 = 0.89, indicating the occurrence of buckling in the lower bar under the specified load.

In the optimization using the BESO method, where the ER is reduced to 0.4% for the stability concern, different buckling constraints are applied. The resultant optimized designs are depicted in Fig. 5. The optimization leads to a redistribution of material from the upper bar to the lower bar, which is split into two separate bars connected by slender members to enhance buckling resistance. Notably, a new bar forms between the upper and lower bars, and its thickness and length increase as the buckling constraint escalates (see the bars highlighted by red circles in Fig. 5b–f). The formation of this connecting bar significantly increases the moment of inertia of the entire structure. This augmentation is crucial in preventing rotational movement near the junction of the upper and lower bars.

Fig. 5
figure 5

Optimized designs of the two-bar frame using the BESO method (Xu et al., 2023b)

5.3 Buckling-resistant building structure with multiple load conditions

This example emphasizes the critical need to account for buckling effects in civil engineering structures. As illustrated in Fig. 6, a high-rise building with a width of 20 m and a height of 100 m is considered. It is assumed that the building is subjected to equivalent wind loads at five different heights, where the wind load P at the height of 20 m is 1000 kN and increases linearly with height. Two wind load cases are considered. In the first case, the building is subjected to the wind load from the left, while in the second case, it experiences the wind load from the right. The design domain is discretized into 80 × 400 elements.

Fig. 6
figure 6

High-rise building: a boundary conditions; b stiffness design; c first buckling mode under left wind load; and d first buckling mode under right wind load. Buckling modes are colored from blue to red, corresponding to the logarithm of normalized strain energy density from low to high

The stiffness optimization is first conducted using the BESO method with Vf* = 50%, rmin = 1 m, and ER = 1%. The corresponding stiffness design is presented in Fig. 6b. The design exhibits a concentration of material in the lower part of the structure, while the upper part features thinner structural members. Upon applying the wind load on both sides, the first buckling modes are observed in Fig. 6c and d, where a localized buckling is clearly evident at the top of the structure (indicated by the red circle). Additionally, a high level of strain energy density is observed in the upper part of the structure, while the lower part possesses relatively low strain energy density. The lowest BLF \({\lambda }_{1}^{C}\) of the stiffness design is only 0.127, corresponding to a critical load \(P_{cr} = \lambda_{1}^{C} \times P = 127 {\text{kN}}\). Therefore, the obtained stiffness design cannot be used in practical applications, as it may be susceptible to severe buckling issues.

The buckling-constrained optimization is conducted using the BESO approach in this example. The parameters employed in the optimization include ER = 0.1%, rmin = 0.75 m, and \(\underline {\lambda } = 10 \times \lambda_{1}^{C} = 1.27\). The resulting buckling-reinforced structure is shown in Fig. 7a, where the material is relocated from the lower part of the structure to the upper part. Thin members in the upper part are separated, and additional members are generated to resist buckling (as indicated by the red circle). The first buckling modes, illustrated in Fig. 7b and c, show that the buckling-reinforce structure exhibits a more global buckling mode, and the strain energy density distributes more evenly compared to that of the stiffness design (Fig. 6c and d). The lowest BLF \({\lambda }_{1}^{B}\) of the buckling-reinforced design is increased to 1.27, corresponding to a much higher critical load \(P_{cr} = \lambda_{1}^{B} \times P = 1270 {\text{kN}}\). Moreover, the stiffness of the buckling-reinforced structure is decreased by only 1.0% compared to that of the stiffness design.

Fig. 7
figure 7

Buckling-constrained optimization: a optimization result and b first buckling mode under left wind load; and c first buckling mode under right wind load. Buckling modes are colored from blue to red, corresponding to the logarithm of normalized strain energy density from low to high

This example clearly illustrates the vital necessity of accounting for buckling effects in architectural design. Stiffness designs may be prone to severe buckling issues, which can compromise the structural safety of civil constructions. In contrast, the implementation of the proposed buckling-constrained topology optimization algorithm offers a robust solution for achieving more efficient and stable designs in civil engineering. By integrating buckling constraints into the optimization process, this algorithm ensures that the resulting designs are not only structurally sound but also aesthetically appealing.

6 Conclusions

This study has comprehensively explored the application of topology optimization considering buckling through the use of the BESO method. The focus on buckling considerations is a critical advancement for enhancing the reliability and safety of civil structures. Through a series of detailed numerical examples, including a compressed column, a frame structure, and a high-rise building, the study has demonstrated the effectiveness of the BESO method in significantly enhancing structural stability with minimal compromises to compliance. These examples not only underscore the algorithm’s capability in maximizing the buckling load factor and addressing buckling-constrained problems but also highlight its practical applicability in real-world scenarios. The detailed mathematical modeling, sensitivity analyses, and optimization procedures presented provide a robust framework for engineers and researchers aiming to effectively integrate buckling considerations into structural design. This approach not only ensures structural integrity but also optimizes material usage, making it a sustainable choice for future engineering projects. For future research, extending the current algorithm to 3D structures and exploring parallel computing for large-scale applications is essential for broader practical use in real-world engineering problems.