1 Introduction

A mechanical or structural component subjected to a high compressive load often leads to a sudden failure by two major categories: material failure and instability or loss of stability of structures. The latter is often known as the buckling phenomenon. This phenomenon may cause a failure in structures even if the strength limitation of material is not exceeded. Linear buckling analysis is significant in the structural topology optimization to obtain the optimal designs of structure that may resist the given applied loads without buckling failure. For continuum topology optimization, the low prescribed volume of material often generates the slenderness for compressed structures, especially columns. Non-consideration of buckling may lead to an inappropriate design when the design results could rely excessively on the compression and produce an unstable design.

In discrete truss structures topology optimization designs, besides the stiffness constraints [1], the Euler buckling constraints on loads can be simply applied to individual structural members to avoid buckling effects [2]. However, in continuum topology optimization, the discrete structural members are identified uneasily because of the geometric instabilities of structures depending on design variables, i.e., element relative densities determined from material properties, loading and support conditions [3]. To consider the geometric instabilities in continuum structures, one may make the structures a linear elastic system and then set the critical buckling load calculated by linear buckling analysis as an objective function or design constraints [4,5,6]. The maximization of buckling load factor is formulated as objective function to analyze the stabilities of structures in many problems using different methods such as dealing with snap-through behavior of static geometrically nonlinear structures for 2D curved beam [7]; investigation of thin-walled structures using a moving iso-surface threshold (MIST) method [8]; buckling load factor investigation of laminated multi-material composite shell structures using the so-called Discrete Material Optimization (DMO) approach [9]. In the continuum structure field, topology optimization design for structural stability with buckling constraints has been studied and achieved certain successes using many different methods of topology optimization such as the design optimization of structures with buckling constraints using the Evolutionary Structural Optimization (ESO) method [10]; a node-based design variable method [11]; topology optimization of many linear buckling constraints using level-set method [12]; in designing optimal trusses under buckling constraints and other constraints: stress, displacement, eigenfrequencies [13,14,15,16]; topology optimization of continuum structures under buckling constraints [17].

However, buckling constraints for continuum structures have not been dealt with in multi-material topology optimization, and therefore this study presents a buckling-constrained topology optimization method for multi-material structures analysis. The optimal topology designs which are obtained by using the present method indicates the advantages of utilizing multiple materials in the structure. Multi-material structures with maximized stiffness and buckling load factor are achieved by an investigation of buckling constraint parameter. This investigation verifies the efficiency of the present method. In this study, only the stiffness aspect of the multi-material structure is considered. For a real design, further research considering material and manufacturing cost is needed [18].

In the field of topology optimization, multi-material topology optimization is an attractive part to find the optimal distribution of many distinct materials in a given design domain [19, 20]. It has been taking attention to engineers and designers in problems of structural science research and industrial applications [21, 22]. Zhou and Wang [23, 24] introduced a phase-field method for the multi-material structural topology optimization with a generalized Cahn–Hilliard model. Sigmund and Torquato [25] introduced the design of materials with extreme thermal expansion using three-phase topology optimization method. A multi-material topology optimization method based on alternating active phase algorithm was proposed by Tavakoli and Mohseni [26]. Nowadays, the multi-material field is applied to many structures and is strongly developed [27,28,29,30,31]. This study concentrates on analyzing continuum structures under buckling constraints based on multi-material topology optimization using the alternating active-phase algorithm. The Method of Moving Asymptotes (MMA) is used as optimizer because it can deal with a large number of constraints and give a fast solution. To associate with update scheme of the optimizer, Jacobi version of the alternating active-phase algorithm is used instead of Gauss–Seidel version.

A specific numerical situation in topology optimization considering buckling eigenproblem is the appearance of eigenmodes in void regions. These eigenmodes are known as localized modes, pseudo modes, or spurious modes [32, 33]. The void regions contain a very small density instead of being material free due to the material singularity. This is the reason why spurious modes occur. Because they are active in the regions containing material, which are also the void regions in this case. The spurious modes are found in both eigenfrequency analysis and stability analysis when eigenfrequency and first buckling load factor are assigned as objective function or constraints [3, 17, 34]. In topology optimization, when geometrical stiffness is not penalized sufficiently, it may cause the instabilities in the structure. This problem can be avoided by applying an appropriate interpolation scheme to the elasticity properties of structural stiffness and geometric stiffness. This study uses a modified material interpolation scheme for multi-material structures based on the scheme proposed by Bendsoe and Sigmund [35]. This scheme efficiency is verified by numerical examples in this study.

Using additional high strength material in design could produce a stiffer optimal design. However, confliction often happens between stiffness and stability requirements [17]. This issue is observed and clarified in an investigation of the influence of buckling constraints on the stiffness of the structure. The investigation also gives optimal designs satisfying both stiffness and stability requirements. Moreover, it verifies the efficiency of multi-material in improving the stiffness and stability of the structure.

This study is organized as follows. The formulations of multi-material topology optimization are shown in Sect. 2. Two versions of the active-phase algorithm which are Gauss–Seidel and Jacobi and multi-material interpolation scheme are presented. Section 3 presents the formulations of linear elastic buckling problem. The sensitivity filtering method is described in Sect. 4. The consideration of the removal of spurious buckling modes is discussed in Sect. 5. Section 6 presents the computational procedure of multi-material topology optimization considering buckling constraints. Numerical examples of two different types of structures which are compression only and tension–compression structures for single and multi-material cases are discussed in Sect. 7. A brief discussion on multi-material manufacturing methods is presented in Sect. 8. In Sect. 9, finally, conclusions and remarks are described.

2 Formulations of the multi-material topology optimization problem

2.1 Optimization model: multi-phase topology optimization

In the topology optimization problem, the buckling load factor can be considered as an objective or as a constraint. Buckling load constraint implementation aims to find maximal stiffness of structures adhering to the requirements of volume and buckling constraints. The goal of this problem is to find the optimal distribution of distinct materials in continuum structures considering buckling affection. Design space schematic of multi-material topology optimization is described in Fig. 1 where \(\varOmega_{\text{v}}^{\text{m}}\) and \(\varOmega_{\text{s}}^{\text{m}}\) are void and solid design domain of material, respectively. m is the number of materials in the design domain.

Fig. 1
figure 1

Design space schematic of multi-material topology optimization

When compressive stresses occur in a slender structure, the buckling behavior should be a significant concern in safety designs which have not only high stiffness but also prevent structural instabilities. Slender continuum components often occur in topology optimization design when material volume fraction is a small value. Besides material volume constraint, the stability requirement is also considered as one among the constraints in the topology optimization problem. To find a high stiffness structure, it is an alternative to consider the use of more than one material in the structure. Therefore, a continuum body with the distribution of distinct materials is analyzed by using multi-material topology optimization. The mathematical formulations of minimum compliance multi-material topology optimization problem under buckling constraints are as follows:

$$\begin{aligned} \mathop {\text{minimize:}}\limits_{{\alpha_{i} }} & \quad C\;(\varvec{\alpha},{\mathbf{u}}) = {\mathbf{u}}^{\text{T}} {\mathbf{Ku}} \\ \text{subject}\;\text{to:} & \quad {\mathbf{K}}(\varvec{\alpha}){\mathbf{u}} = {\mathbf{f}} \\ & \quad \sum\limits_{i = 1}^{p} {\alpha_{i} } = 1 \\ & \quad \int\limits_{\varOmega } {\alpha_{i} dx} \le V_{i} ,\quad (i = 1, \ldots ,p) \\ & \quad \mathop {\hbox{min} }\limits_{j \in J} \left| {\lambda_{j} } \right| \ge \lambda^{*} > 0 \\ & \quad 0 < \alpha_{i\,\hbox{min} } \le \alpha_{i} \le 1\quad (i = 1, \ldots ,p) \\ \end{aligned}$$
(1)

where C denotes the objective function, which is the structural compliance. K is the global stiffness matrix. u and f are the global displacement and load vector, respectively.\(\alpha_{i}\) are the design variables describing the relative element density of each different material with i = 1, …, p the number of the material.\(\alpha_{{i\text{min}}}\) limits the lower value of design variables to avoid the numerical singularity, e.g. \(\alpha_{{i\text{min}}} = 0.001\).\(V_{i}\) and \(\lambda^{*}\) are the volume fraction constraint for material phase i and the buckling constraint, respectively; Ω is the design domain of the structure.\(\lambda_{j}\) describes the jth buckling load factor within the buckling mode index set J. Assume that the load direction is not changed during the optimization process. Therefore, negative buckling load factors are not considered which means only positive buckling load factors should be included in set J. It should be noted that the Poisson’s ratio is applied as ν = 0.3 which is for steel material.

In this problem, two constraints are considered. First, a constraint on the volume the structure occupies in the prescribed design domain, Ω. This constraint is considered because the weight of the structures needs to be controlled. Second, a constraint on the lowest buckling load \(\lambda^{*}\) is a factor yielding the expected maximum load of the structure, with a certain safety margin to be obtained by using different minimum buckling factor values.

The buckling constraints are varied with respect to the first or smallest buckling load factor obtained from the buckling eigenproblem. Buckling constraint parameter ps is the incremental percentage of the first buckling load factor to control the variation of buckling constraints. Now the buckling constraint in Eq. (1) can be expressed as

$$\lambda^{*} = (1 + p_{s} )\lambda_{1ini} > 0$$
(2)

where\(\lambda^{*}\) is the buckling constraint.\(\lambda_{1ini}\) is the first buckling load factor archived from ordinary optimization case or initial first buckling load factor without buckling consideration. In this case, buckling constraint \(\lambda^{*}\) is set to 0. In this study, the choice of ps depends on each problem to illustrate the changing of optimal topologies corresponding to the stability requirement of structures. The buckling constraint \(\lambda^{*}\) is proportional to ps. Thus all investigations related to buckling constraints are described through ps.

2.2 Multi-material interpolation scheme

The optimal design structures could have the intermediate design elements containing non-physical materials caused by an inappropriate material interpolation scheme [35]. The critical requirement in analyzing a multi-material as well as the single material topology optimization problem is to present the material properties satisfied the physical properties. The difference of multi-material problem is that the materials are presented at each phase, in some cases, including the void phase.

This study uses a modification of SIMP proposed by Zhou and Wang [36]. It is an applicable linear interpolation for an arbitrary number of material phases with respect to mass concentration. According to Zhou and Wang [36], this interpolation scheme is efficiently used for multi-phases topology optimization problems, elasticity tensor is described in terms of material relative density α as follows.

$${\mathbf{E}} = \mathop \sum \limits_{i = 1}^{p} \alpha_{i}^{q} {\mathbf{E}}_{i}^{0}$$
(3)

where p is the number of phases. E0 denotes constant elasticity tensor of isotropic elastic material corresponding to ith phase. q is a penalization factor, q ≥ 1. The presence of material densities in each element is the design variables α.

2.3 Alternating active-phase algorithm with Gauss–Seidel and Jacobi procedure

According to the alternating active phase algorithm [26], the multiple phases are converted into p(p − 1)/2 binary phases. It leads to a modified version of the binary phase topology optimization algorithm. The modification is executed to replace the binary phase operator by a corresponding multi-phase counterpart and to modify the structure of admissible design space.

The binary phase material densities are modified to \(\alpha_{ab}^{{}}\), where “a” and “b” are two active phases a and b. At each point x ∈ Ω, the density summation of two active phases is written as

$$\alpha_{a} (x) + \alpha_{b} (x) = 1 - \mathop \sum \limits_{i = 1,i \ne a,b}^{p} \alpha_{i} (x).$$
(4)

where the overlaps are not allowed in the optimal design and the total densities at each element should be equal to unity as written in Eq. (5).

$$\mathop \sum \limits_{i = 1}^{p} \alpha_{i} (x) = 1\quad (i = 1, \ldots ,p)$$
(5)

Therefore, the summation of volume fraction Vi should be equal to unity over the design domain.

$$\mathop \sum \limits_{i = 1}^{p} V_{i} (x) = 1\quad (i = 1, \ldots ,p)$$
(6)

Gauss–Seidel procedure [26] is used to perform the alternating active-phase algorithm. In this procedure, internal binary phase topology optimization is solved sequentially, in other words, it is solved step by step. Every time an object phase which is phase “a” in every binary phase is optimized, the relevant phase (phase “b”) is calculated with respect to phase a. The results of one binary active phase are used for the next active phase optimization.

The Gauss–Seidel procedure is presented to show how the alternating active-phase algorithm solves a normal multiphase topology optimization by using Optimality Criteria (OC) method to update design variables. In the present optimization problem, two constraints are considered which are volume and buckling constraints. The problem requires a fast and efficient optimization solver to deal with a large number of routines. The OC method was not proven to be an appropriate optimizer for a multiple constraints problem [35]. In that case, the Method of Moving Asymptotes (MMA) is chosen as an alternative solver in this study [37]. By giving a quick and accurate result, MMA is an efficient optimizer for the multi-constraint problem.

However, one problem comes up when using MMA in the alternating active-phase algorithm. That is the confliction between the variable-updating process of MMA and the Gauss–Seidel procedure. The MMA updates the design variables αi in every main loop through lower and upper moving asymptotes (Lj, Uj). While the Gauss–Seidel procedure sequentially updates the design variables in each binary phase sub-problem which is inside the main loop. In this procedure, an active phase is denoted by \(\Re (\alpha_{a} ,\alpha_{a + i} )\), where \(\alpha_{a}^{{}}\) is targeted phase and \(\alpha_{a + i}^{{}}\) is relevant background phase. Results of the current active phase are used to calculate the following active phase as an initial input. And the final result of the inner loop is used for the next iteration of the main loop. That means (Lj, Uj) of the MMA is updated sequentially during the inner loop. It can produce an improper design variable for the next iteration of the main loop.

In order to deal with this problem, Jacobi procedure which is performed independently, i.e., in parallel, is used for the alternative active phase algorithm. With Jacobi procedure, the result of the first active phase \(\Re (\alpha_{a} ,\alpha_{a + 1} )\), \(\alpha_{a}^{1}\) is not used for the next active phase \(\Re (\alpha_{a} ,\alpha_{a + 2} )\) but is assigned to an interpolation variable ζ. This variable is set as 0 at the beginning of each main loop and updated at the end of inner loop by the cumulative summation of all active phase results such as \(\Re (\alpha_{a} ,\alpha_{a + 2} )\),\(\Re (\alpha_{a} ,\alpha_{a + 3} )\),…,\(\Re (\alpha_{a} ,\alpha_{a + i} )\) which are independently calculated. ζ is expressed as follows.

$$\zeta = \zeta + \alpha_{ab}^{k}$$
(7)

where \(\alpha_{ab}^{k}\) describes the design variable solution of kth active phase in the inner loop.

After that ζ is used to calculate the new variable at the end of the main loop through Eq. (8) written as follows.

$$\alpha^{new} = \frac{\zeta }{p(p - 1)/2}$$
(8)

where p is the number of distinct materials. And \(\alpha^{new}\) is used as an initial input of the next iteration of the main loop. The detail mechanisms of Gauss–Seidel and Jacobi procedure are presented in Fig. 2. With itermax and changemax are the maximum number of iteration and the maximum change of design variables, respectively. They are defined by the user to ensure the convergence of compliance. As can be seen, the independent calculation of Jacobi procedure does not violate the updating scheme of MMA. Therefore, more reasonable topology results are obtained in this study as shown in numerical results in Sect. 7.

Fig. 2
figure 2

Characteristics comparison between Gauss–Seidel and Jacobi procedure of the alternative active-phase algorithm

3 Formulations of linear buckling problem

3.1 Analysis model: linear buckling analysis

In this study, linear buckling analysis is considered. The structure is assumed to have perfect geometry. The stresses depend linearly on the load which is independent of displacements. Displacements at buckling state are small. The buckling load factors may be obtained by solving a linear eigenvalue problem as follows.

$$({\mathbf{K}} + \lambda_{j} {\mathbf{K}}_{\sigma } ){\varvec{\Phi}}_{j} = 0$$
(9)

where K and Kσ are global stiffness matrix and stress stiffness matrix, respectively. They are symmetric and matrices. K is assumed to be positive-definite. λj denotes the j-th buckling load factor with corresponding mode shape or eigenvector Φj.

The stability eigenproblem Eq. (9) is appropriate for the generalized symmetric algebraic eigenproblem of linear algebra and is rewritten as

$${\mathbf{Av}}_{j} = \lambda_{j} {\mathbf{Bv}}_{j}$$
(10)

where AK and B ≡ − Kσ are both symmetric, and vjΦj is the corresponding buckling eigenvector.

The stress stiffness matrix Kσ describes how the stiffness is reduced or increased when a force is applied and depends on both stresses in the structure as well as the geometry. However, it is calculated in the same manner as the stiffness matrix with an element and a global matrix. Element stress stiffness matrix \({\mathbf{k}}_{\sigma }^{e}\) is defined by the integration of the strain–displacement matrix G, and the initial stress matrix S0 subjected to stress submatrix \({\tilde{\mathbf{s}}}\) and stress vector \(\varvec{\sigma}_{e}\) as follows

$${\mathbf{k}}_{\sigma }^{e} = \int\limits_{V} {{\mathbf{G}}^{\text{T}} {\mathbf{S}}^{0} {\mathbf{G}}dV}$$
(11)
$${\mathbf{S}}^{0} {\mathbf{ = }}\left[ {\begin{array}{*{20}c} {{\tilde{\mathbf{s}}}} & 0 \\ 0 & {{\tilde{\mathbf{s}}}} \\ \end{array} } \right]$$
(12)
$${\mathbf{\tilde{s} = }}\left[ {\begin{array}{*{20}c} {\sigma_{x}^{0} } & {\tau_{xy}^{0} } \\ {\tau_{xy}^{0} } & {\sigma_{y}^{0} } \\ \end{array} } \right]$$
(13)
$$\varvec{\sigma}_{e} = \left\{ {\begin{array}{*{20}c} {\sigma_{x}^{0} } \\ {\sigma_{y}^{0} } \\ {\tau_{xy}^{0} } \\ \end{array} } \right\} = {\mathbf{D\varepsilon }}_{e} = {\mathbf{D}}{\mathbf{B}}{\mathbf{u}}_{e}$$
(14)

where D denotes constitutive matrix corresponding to a plane stress problem with isotropic material. B is the strain–displacement matrix that defines the relation between the strain ε and the displacement d for an element. ue is the displacement of all degree of freedom at every node in an element.

3.2 Sensitivity analysis of linear elastic buckling problem

Since MMA is a gradient-based optimizer, sensitivities of compliance and constraints with respect to design variables are needed in this study. The sensitivities of compliance, volume constraint, and buckling load factor with respect to element density of phase “a” in each active phase are derived in this section.

3.2.1 Compliance sensitivity formulation

The sensitivities of structural compliance are derived from the compliance of Eq. (1) with respect to design variables as follows.

$$\frac{\partial C}{{\partial \alpha_{i} }} = - {\mathbf{U}}^{\text{T}} \frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}{\mathbf{U}} = - \sum\limits_{e = 1}^{N} {{\mathbf{u}}_{e}^{\text{T}} \frac{{\partial {\mathbf{k}}^{e} }}{{\partial \alpha_{i} }}} {\mathbf{u}}{}_{e}$$
(15)

where ke and ue are element stiffness matrix and element displacement vector, respectively. N is the number of elements in the given design domain. αi are the element density of phase “a” in the active phase.

3.2.2 Volume constraint sensitivity formulation

The total volume of material may be generated from the volume of all phases at each element, so it is formulated as

$$V = \sum\limits_{e = 1}^{N} {\sum\limits_{i = 1}^{p} {V_{i}^{e} } } = t\sum\limits_{e = 1}^{N} {\int\limits_{\varOmega } {\alpha_{i} } d\varOmega }$$
(16)

As an assumption, the summation of densities at each point in a given design domain and the summation of each material volume fraction constraints Vi are equal to unity. The sensitivities of the volume constraint are written as

$$\frac{\partial V}{\partial \alpha } = \sum\limits_{e = 1}^{N} {\frac{{\partial V^{e} }}{{\partial \alpha_{i} }}} = 1$$
(17)

3.2.3 Buckling load factor sensitivity formulation

In the present linear buckling problem, the buckling load factor is derived by differentiation of Eq. (9) with respect to current design variables α as follows.

$$\frac{\partial }{{\partial \alpha_{i} }}(({\mathbf{K}} + \lambda_{j} {\mathbf{K}}_{\sigma } ){\varvec{\Phi}}_{j} ) = 0$$
(18)

By setting \(\xi_{j} = 1/\lambda_{j}\), Eq. (9) can be rewritten as

$$([ - {\mathbf{K}}_{\sigma } ] - \xi_{j} {\mathbf{K}}){\varvec{\Phi}}_{j} = 0$$
(19)

Using the adjoint method [17, 35], the general sensitivity of the buckling load factor is now expressed as

$$\frac{{\partial \xi_{j} }}{{\partial \alpha_{i} }} = {\varvec{\Phi}}_{j}^{\text{T}} \left( {\frac{{\partial [ - {\mathbf{K}}_{\sigma } ]}}{{\partial \alpha_{i} }} - \frac{1}{{\lambda_{j} }}\frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}} \right){\varvec{\Phi}}_{j} - {\mathbf{v}}_{j}^{\text{T}} \frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}{\mathbf{U}}$$
(20)

where \({\mathbf{v}}\) is the adjoint displacement vector which is the solution of the following adjoint problem

$${\mathbf{Kv}} = {\varvec{\Phi}}_{j}^{\text{T}} \frac{{\partial {\mathbf{K}}_{\sigma } }}{{\partial {\mathbf{U}}}}{\varvec{\Phi}}_{j}$$
(21)

The sensitivity of the geometric stiffness matrix can be obtained as

$$\frac{{\partial {\mathbf{K}}_{\sigma } }}{{\partial \alpha_{i} }} = \sum\limits_{e = 1}^{N} {\frac{{\partial {\mathbf{k}}_{\sigma }^{e} }}{{\partial \alpha_{i} }}} = \sum\limits_{e = 1}^{N} {\int\limits_{{A_{e} }} {{\mathbf{G}}_{e}^{\text{T}} \frac{{\partial {\mathbf{S}}_{e}^{0} (\alpha )}}{{\partial \alpha_{i} }}{\mathbf{G}}_{e} dA_{e} } }$$
(22)
$$\frac{{\partial {\mathbf{S}}_{e}^{0} (\alpha )}}{{\partial \alpha_{i} }} = {\mathbf{S}}\left( {\left[ {\frac{{\partial \sigma_{e}^{0} (\alpha )}}{{\partial \alpha_{i} }}} \right]} \right)$$
(23)

The sensitivity of the stiffness matrix is usually computed analytically at the element level as

$$\frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }} = \sum\limits_{e = 1}^{N} {\frac{{\partial {\mathbf{k}}^{e} }}{{\partial \alpha_{i} }}} = \sum\limits_{e = 1}^{N} {\frac{{\partial {\mathbf{E}}\text{(}x,y\text{)}}}{{\partial \alpha_{i} }}{\mathbf{k}}^{e} }$$
(24)

The buckling load factor sensitivities are expressed through the auxiliary variables \(\xi_{j} = 1/\lambda_{j}\). Therefore, they are finally computed by using a chain rule as follows

$$\frac{{\partial \lambda_{j} }}{{\partial \alpha_{i} }} = \frac{{\partial \lambda_{j} }}{{\partial \xi_{j} }}\frac{{\partial \xi_{j} }}{{\partial \alpha_{i} }} = - \frac{1}{{\xi_{j}^{2} }}\frac{{\partial \xi_{j} }}{{\partial \alpha_{i} }} = - \lambda_{j}^{2} \frac{{\partial \xi_{j} }}{{\partial \alpha_{i} }}$$
(25)

In the research literature, many other researches has been also studied to efficiently analyze the sensitivity of buckling load based on FEM-approach which can be found in [38,39,40].

3.3 Sensitivity analysis of multiple eigenvalues

When the multiple eigenvalues [41] appear in the optimization process, the differential of single eigenvalue cannot be applied due to the non-unique eigenvectors. This non-differentiability of eigenvalue results in the complication of sensitivity analysis and optimization process. In such problem, an efficient method described by Jensen and Pedersen [42] can be used. In the case of double eigenvalues, \(\overline{\lambda } = \lambda_{1} = \lambda_{2} or\,\,\overline{\xi } = \xi_{1} = \xi_{2} ;{\varvec{\Phi}}_{1} ,{\varvec{\Phi}}_{2}\), the linear combination of two corresponding eigenvectors is described as

$$\begin{aligned} &\overline{\varPhi } = \text{c}_{1} {\varvec{\Phi}}_{1} + \text{c}_{2} {\varvec{\Phi}}_{2} \hfill \\ &\text{c}_{1}^{2} + \text{c}_{2}^{2} = 1\,\,\, = > \,\,\overline{\varPhi }^{\text{T}} {\mathbf{K}}_{\sigma } \overline{\varPhi } = 1 \hfill \\ \end{aligned}$$
(26)

With this relation, the Eq. (20) can be expressed as

$$\frac{{\partial \overline{\xi } }}{{\partial \alpha_{i} }} = \text{c}_{1}^{2} \frac{{\partial \overline{\xi }_{11} }}{{\partial \alpha_{i} }} + \text{c}_{2}^{2} \frac{{\partial \overline{\xi }_{22} }}{{\partial \alpha_{i} }} + 2\text{c}_{1} \text{c}_{2} \frac{{\partial \overline{\xi }_{12} }}{{\partial \alpha_{i} }}$$
(27)

in which

$$\begin{aligned} &\frac{{\partial \overline{\xi }_{11} }}{{\partial \alpha_{i} }} = {\varvec{\Phi}}_{1}^{\text{T}} \left( {\frac{{\partial [ - {\mathbf{K}}_{\sigma } ]}}{{\partial \alpha_{i} }} - \frac{1}{{\overline{\lambda } }}\frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}} \right){\varvec{\Phi}}_{1} - {\mathbf{v}}_{1}^{\text{T}} \frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}{\mathbf{U}} \hfill \\ &\frac{{\partial \overline{\xi }_{22} }}{{\partial \alpha_{i} }} = {\varvec{\Phi}}_{2}^{\text{T}} \left( {\frac{{\partial [ - {\mathbf{K}}_{\sigma } ]}}{{\partial \alpha_{i} }} - \frac{1}{{\overline{\lambda } }}\frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}} \right){\varvec{\Phi}}_{2} - {\mathbf{v}}_{2}^{\text{T}} \frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}{\mathbf{U}} \hfill \\ &\frac{{\partial \overline{\xi }_{12} }}{{\partial \alpha_{i} }} = {\varvec{\Phi}}_{1}^{\text{T}} \left( {\frac{{\partial [ - {\mathbf{K}}_{\sigma } ]}}{{\partial \alpha_{i} }} - \frac{1}{{\overline{\lambda } }}\frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}} \right){\varvec{\Phi}}_{2} - {\mathbf{v}}_{12}^{\text{T}} \frac{{\partial {\mathbf{K}}}}{{\partial \alpha_{i} }}{\mathbf{U}} \hfill \\ &where\,\,\,{\mathbf{Kv}}_{12} = {\varvec{\Phi}}_{1}^{\text{T}} \frac{{\partial {\mathbf{K}}_{\sigma } }}{{\partial {\mathbf{U}}}}{\varvec{\Phi}}_{2} \, \hfill \\ \end{aligned}$$
(28)

It leads to a sub-eigenvalue problem and the sensitivity of double buckling load factor is given directly by the solution of the following problem

$$\begin{aligned} \left[ {\begin{array}{*{20}c} {\frac{{\partial \overline{\xi }_{11} }}{{\partial \alpha_{i} }}} & {\frac{{\partial \overline{\xi }_{12} }}{{\partial \alpha_{i} }}} \\ {\frac{{\partial \overline{\xi }_{21} }}{{\partial \alpha_{i} }}} & {\frac{{\partial \overline{\xi }_{22} }}{{\partial \alpha_{i} }}} \\ \end{array} } \right]\left\{ \begin{aligned} \text{c}_{1} \hfill \\ \text{c}_{2} \hfill \\ \end{aligned} \right\} = \left\{ \begin{aligned} 0 \hfill \\ 0 \hfill \\ \end{aligned} \right\} \hfill \\ \left( {\xi_{a} ,\left\{ \begin{aligned} \text{c}_{11} \hfill \\ \text{c}_{12} \hfill \\ \end{aligned} \right\}} \right),\left( {\xi_{b} ,\left\{ \begin{aligned} \text{c}_{21} \hfill \\ \text{c}_{22} \hfill \\ \end{aligned} \right\}} \right) \hfill \\ \end{aligned}$$
(29)

Finally, the sensitivity with respect to design variables is obtained as

$$\frac{{\partial \overline{\xi } }}{{\partial \alpha_{i} }} = \left\{ \begin{aligned} \xi_{a} \,\,\text{with}\,\,\overline{\varPhi }_{1} = \text{c}_{11} {\varvec{\Phi}}_{1} + \text{c}_{12} {\varvec{\Phi}}_{2} \hfill \\ \xi_{b} \,\,\text{with}\,\,\overline{\varPhi }_{2} = \text{c}_{21} {\varvec{\Phi}}_{1} + \text{c}_{22} {\varvec{\Phi}}_{2} \hfill \\ \end{aligned} \right.$$
(30)

In the research literature, many other methods are described and applied to handle with the multiple eigenvalues problem which can be found in [5, 41, 43].

4 Sensitivity filtering

In topology optimization, the checkerboard pattern may appear in the design result and cause the overestimation on stiffness calculation [35]. The restriction of checkerboard phenomenon needs to be applied to ensure the existence of optimal topology design [44, 45]. In this study, the common sensitivity filtering method used in [46] is applied to avoid checkerboard pattern. It is expressed through the compliance sensitivity as follows

$$\frac{{\partial \hat{C}}}{{\partial \alpha_{e} }} = \frac{1}{{\hbox{max} \left(\varsigma ,\sum\limits_{i = 1}^{p} {\alpha_{ei} } \right)\sum\limits_{m = 1}^{N} {H_{m} } }}\sum\limits_{m = 1}^{N} {H_{m} } \sum\limits_{i = 1}^{p} {\alpha_{mi} } \frac{\partial C}{{\partial \alpha_{m} }}$$
(31)

where p is the number of the participating materials. N is the set of element m. ς = 10−3 is the proposed term for avoiding division by zero. Hem is the weight factor defined as

$$H_{m} = \hbox{max} (0,r_{\hbox{min} } - \text{dist}(e,m))$$
(32)

The center-to-center distance from element m to element e, dist(e, m) is assigned smaller than the filter radius rmin.

5 The consideration of removal of spurious buckling modes

Spurious buckling modes are well-known as a fundamental problem in stability topology optimization problem. These modes often occur in void regions of the structure during the optimization process. That because the void regions are assigned a low density to avoid the numerical singularity in the computation. To obtain a proper design, they should be removed from the optimal design. Many different interpolation schemes are proposed to deal with this problem [3, 35, 47]. The utilization of an interpolation scheme is required to satisfy the requirements of multiple material interpolation schemes. In this study, an efficient scheme which is developed for the multi-material problem is used to avoid the spurious buckling modes occurring in multi-material topology optimal design [48]. The scheme is expressed as follows

$${\text{Proposed }}\;{\text{scheme}}\;{\text{ with}}\;{\text{ spurious}}\;{\text{ buckling}}\;{\text{ treatment:}}\quad \begin{array}{*{20}l} {{\mathbf{E}}_{e}^{{\mathbf{K}}} = \sum\limits_{i = 1}^{p} {\left[ {\alpha_{\hbox{min} } + \left( {1 - \alpha_{\hbox{min} } } \right)\alpha_{i}^{q} } \right]{\mathbf{E}}_{i}^{0} } } \hfill \\ {{\mathbf{E}}_{e}^{{{\mathbf{K}}_{G} }} = \sum\limits_{i = 1}^{p} {\alpha_{i}^{q} {\mathbf{E}}_{i}^{0} } } \hfill \\ \end{array}$$
(33)

where the parameter σmin is used to treat the densities, which are lower or around the lower bound constraint. However, the void element may have a high stiffness which is unrealistic if σmin is great. On the other hand, a very small chosen value may be insufficient for avoiding the spurious modes. The investigation for the choice of σmin is discussed in [17, 47].

6 Computational procedures of the present method

The present multi-material topology optimization algorithm is shown in Fig. 3. These computational procedures describe the alternating active-phase algorithm using the Jacobi iteration version including non-spurious mode scheme of multi-material.

Fig. 3
figure 3

Computational procedures of multi-material topology optimization using the alternating active-phase algorithm with the Jacobi iteration version

This flowchart gives an obvious view of a multi-material topology optimization problem considering buckling constraints. The detailed procedure of finite element analysis, sensitivity analysis, and stress stiffness matrix calculation are described. In the finite element analysis in Step 2, linear deformation, structural stiffness matrix, stress stiffness matrix, the buckling load factors λj and corresponding eigenvector Φj and the compliance C are all determined. The detailed procedure of Step 2 including calculation of stress stiffness matrix is given. Step 3 describes the sensitivity analysis of objective and constraint functions with respect to element design variables. The detailed procedure of calculation sensitivity of buckling load factor is presented. In Step 4, the sensitivity filtering is applied. The design variables of a binary sub-problem are updated in Step 5 using MMA. In Step 6, the solution of design variables is stored and then calculated in Step 7 after finishing the internal loop.

7 Numerical implementations and discussion

7.1 Compression only structures

In this Section, an example of a continuum structure subjected to compressive load is carried out. Buckling constraints in multi-material topology optimization are applied for one, two and three-material structures. Buckling load factors and compliance of structures are considered. For each example, topology optimization results of the single material (binary phase) case are first provided then followed by multiple material results (multiphase). The penalization factor is 3 for interpolating elasticity properties of both physical stiffness and stress stiffness. In multi-material problem, Poisson’s ratio is chosen ν = 0.3 for all materials. All quantities including the size of the given design domain and applied load in examples are assumed to be dimensionless. In the case of only compression behavior occurring on the structure, linear buckling analysis normally leads to only positive buckling load factor. In this structure, the discrete elements tend to be displaced in the one compressive direction. Therefore, the first value of the buckling load vector which is the smallest positive value is constrained and investigated. In this example, a column standing for compression only structure which is clamped-supported column is considered.

This example executes the multi-material topology optimization of a continuum clamped-free column-like structure with a concentrated load at the center of the supported end. The loading and boundary conditions are shown in Fig. 4.

Fig. 4
figure 4

Problem definition of the clamped-free column

The bottom of the structure is fixed, and the top is supported. A vertical downward unit force (P = 1) is applied at the center of the top end. The design domain is modeled as a rectangular space of unit thickness and is discretized into a 16 × 80 (W × H) finite element mesh corresponding to width and height of the structure by unit-sized four-node elements. The specific volume fraction of each phase is chosen in each problem. However, the total volume fraction is prescribed equal to 0.5. Young’s modulus, the volume of each material and the first buckling load factor obtained from ordinary minimum compliance multi-material topology optimization λ1ini are shown in Table 1.

Table 1 The properties of each material combination case

The interaction among compliance, buckling constraint parameter and the first buckling load factor of single material, two-material and three-material composite cases are described in Figs. 5, 6, and 7, respectively. The optimal topologies changing according to different buckling constraints λ* are presented. As can be seen, the topology optimization designs with respect to structural stability constraint tend to distribute material over a large area to prevent unstable behavior. While the maximum structural stiffness topology optimization tends to distribute material along the load transfer path. For multiple material cases, with a fixed amount of materials, topology optimization produces an optimal design, which may not only satisfy the stability requirement but also improves the stiffness of structure by using additional stiff materials. These materials are often distributed in load concentration areas. For example, in the two-material case and three-material case, high strength material which is the red-color material is distributed around the applied load position. And the medium strength material which is blue-color material in the three-material case is distributed around the support area. Because of the pin on the top, the topology changes and tends to have an intersection at about 1/3 height of the column to prevent the buckling. This distribution enhances the persistence of structure in the stress concentration area.

Fig. 5
figure 5

Interaction among compliance, buckling constraint parameter and the first buckling load factor for the single material problem

Fig. 6
figure 6

Interaction among compliance, buckling constraint parameter and the first buckling load factor for the two-material problem

Fig. 7
figure 7

Interaction among compliance, buckling constraint parameter and the first buckling load factor for the three-material problem

In the investigation, depends on the changing amount of topology design, small or great intervals of ps are executed. In the two-material case, the compliance dramatically increases from ps = 0.2–0.3. This indicates that the structure stiffness tends to be reduced when the optimal design attempts to meet the stability requirements. And then the compliance remains stable afterward until ps = 1.0. After this point, the buckling constraint condition is not satisfied. At the point ps = 0.25 of the two-material case and after the point ps = 2.0 of the single material case, the compliance significantly increases because the optimal shape is changed into a less stiff topology shape to prevent the buckling of structure when the stability requirement increases. In the three-material case, the result at ps = 0.2 is not eligible since the first buckling load factor is lower than its lower bound as can be seen in Fig. 7b. In the numerical results of this study, this phenomenon sometimes happens in the early stage of increasing the buckling constraints due to the confliction between the stiffness and the stability requirement of the structure. It can be dealt with by using the computational technique proposed by Gao and Ma [17]. However, in this study, it does not affect the general investigation results. Therefore, the optimal results in these cases can be ignored. It can be seen from all cases that in general, compliance increases when buckling constraint parameter ps increases.

In general, the buckling load factor may be treated as an objective function to find the maximum value of buckling load factor without structural stiffness consideration [8, 9]. This optimization purely produces an optimal topology which is highly capable of resisting structural instability, when the maximum buckling load factor is found. In minimum compliance topology optimization in this study, the buckling load factor is set as a constraint, and only the stiffness of the structure is optimized. However, the maximum first buckling load factor λ1 may be yielded in the current minimum compliance problem by increasing the buckling constraint parameter until getting an optimal buckling load factor value. This value can be obtained at an optimal point where the buckling constraint line and the first buckling load factor line intersects as shown in Figs. 5b, 6b, and 7b. The optimal points of the single material, two-material and three-material case are at ps= 2.3, 1.0, 0.7, respectively. As can be seen, after this point, the stability constraint \(\lambda_{\,1} \ge \lambda^{*}\) is not satisfied. The compliance and corresponding topology design shape are overestimated due to the failure of buckling. Those topology results are consequently not taken as the final design. Before the optimal point, a convergent value of λ1 may be obtained when buckling constraint parameter ps reaches a specific value, e.g. at ps = 0.3 in the single material case, and then remains stable regardless of the increasing of ps. The topology design shape also does not change much when the buckling constraint increases. At the optimal point of every case, the optimal topology designs are obtained with maximum stiffness and the most capable configuration resisting to instability behavior. To distinguish these designs from optimized designs before the optimal point, they are so-called final optimized designs. After this point, the compliance decreases or the structural stiffness increases, significantly. Nevertheless, topology designs are not reliable due to buckling constraint non-satisfaction.

In multi-material design, stiff materials are added into the composite to increase the global stiffness of structure while keeping the total design material volume. In this study, besides, stiffening the structure, stiff material also used to increase the stability of the structure. As can be clearly seen, compliance of three material and two material are lower than one material. Moreover, the stability of two and three material structures is higher than single material structure. It is presented through the first buckling load factor obtaining from linear buckling analysis. With a similar shape of structure with the single material case, multi-material optimization provides useful information in stability design using the material distribution result from this study.

The converged history of compliance among single material, two-material and three-material cases with buckling constraint parameter ps = 1.0 are shown in Fig. 8. The chosen intervals of buckling constraint parameter ps depend on each case and describe the change of topology design shape under stability requirement. The intervals are small when the compliance changes significantly and are large when the compliance converges or slightly changes. As can be seen from Fig. 8, the use of multi-material composite including one or two more stiff materials obviously leads to an optimal design satisfying the buckling constraints, which is stiffer than using a single material. In addition, compliances of three cases with respect to buckling constraint parameters from ps= 0–1.5 are illustrated in Fig. 9. As can be seen in Fig. 10, the first-mode eigenvalue of the multi-material case are larger than the case of the single material. Moreover, the three-material buckling eigenvalue is larger than the two-material one. This comes into a remark that if only considering the stiffness aspect, the multi-material structures may have more capability to prevent structural instability when subjecting to a compressive load. The results open further design research in the possibility of applying multi-material in finding stiff and stable structures. In that case, material and manufacturing cost which is out of this study scope need to be considered.

Fig. 8
figure 8

Iteration history of compliance for the single material, two-material and three-material cases with ps = 1.0

Fig. 9
figure 9

Compliance versus buckling constraint parameter of the single material, two-material and three-material cases from 0.0 to 1.5 of ps

Fig. 10
figure 10

The first buckling load factor versus buckling constraint parameter of the single material, two-material and three-material cases from 0.0 to 1.5 of ps

7.2 Compression–tension structures

In this case, we consider some beams subjected to a gravity load. Normally, the structure has two deformation states which are compression and tension corresponding to the compressive and tensile bar. Thus, elements are displaced following two contrasting directions in the design domain. This causes both positive and negative buckling load factor in linear buckling analysis. The negative buckling factor can be obtained when the structure is buckled that the directions of the applied loads are all reversed. However, in this case, the load direction is fixed in the entire optimization process. Therefore, the negative should be excluded from the set of buckling load factor. In this example, we take only the first positive buckling load factor to be constrained.

A short cantilever beam subjected to a concentrated gravity load is considered with different load positions which are top, middle and bottom positions of beam’s right edge as defined in Fig. 11. The design domain of the beams is discretized into a 20 × 40 mesh (W × H). The input material properties of the example are shown in Table 2. The example is implemented with 40% participating materials over the total volume including 20% of stiff material and 20% of soft material. The three loading conditions cause different compressive areas occurring in the beam. The compressive parts are vulnerable to buckling and are considered in the present method. Thus, these examples are implemented to evaluate the effect of buckling on a multi-material beam when the compressive parts are changed. And then proving the efficiency of the present method by analyzing the topology distribution of multiple materials in preventing buckling effect.

Fig. 11
figure 11

Short cantilever beam with different gravity load positions. a Load at the top of the beam; b load at the middle of the beam; c load at the bottom of the beam

Table 2 The material properties and input parameters of three beam cases.beam cases

The optimal topology shape of the beam with three load positions subjected to buckling constraints and the first three mode shapes of them are shown in Figs. 12, 13, and 14 corresponding to the top load position, middle load position, and bottom load position, respectively. As can be seen, the stiff material tends to be distributed to reinforce the compressive parts of the beam when the buckling constraint increases. In the top load case, when the buckling constraint is low, the soft material in the compressive part is replaced by stiff material as can be seen in Fig. 12 when ps = 0.1, 0.3. When buckling constraint increases, i.e. ps = 0.5, the materials around the supported edge of the beam tends to be distributed at a closer range than the non-buckling topology shape of the beam. Moreover, the compressive bar tends to have a bigger size than the tensile bar that is to prevent the buckling effect. This material changing can also be seen in the middle load and bottom load case. This is different from the column case with only compression behavior in which the material is distributed over a large area around the supported edge. In addition, the buckling range is clearly be observed in the first three mode shape of the beam in each buckling constraint level. The buckling range of three cases are different from each other, e.g. the bottom load case has a smaller buckling range than others. It is because the smaller compressive range is generated in the bottom load case. Therefore, the bottom load case is less affected by the buckling effect. It always has a higher buckling load factor comparing with other cases as shown in Fig. 15, in another word, it is more stable. Although different optimal topology shapes and buckling mode shapes are generated between three load position cases, the similar trend of material distribution preventing buckling effect is obtained. This result validates the effectiveness of the present method in analyzing the buckling effect of the multi-material problem.

Fig. 12
figure 12

Optimized topologies of two-material beam with the top load for different buckling constraints

Fig. 13
figure 13

Optimized topologies of two-material beam with the middle load for different buckling constraints

Fig. 14
figure 14

Optimized topologies of two-material beam with the bottom load for different buckling constraints

Fig. 15
figure 15

Comparison of the 1st buckling load factor corresponding to the buckling constraint parameter of three

8 Multi-material manufacturing methods

Nowadays, producing a multi-material structure or composite structure is an attractive and challenging research field. Most of the researches revolve around two common manufacturing methods which are molding method [49,50,51] and additive manufacturing method or 3D printing [52,53,54,55,56]. The molding method can simplify the mold design to easily create many complex interfaces connecting multiple materials. This method is very useful for simple compliant mechanism structure. However, it is difficult to design the mold or molding procedure for a very complex structure [57]. The 3D printing method holds many advantages such as material and resource efficiency, part and production flexibility, reduced production lead time, increased performance, etc. [58, 59]. The components made by 3D printing can have multiple materials with complex geometries and added functionality. This method has a large application in many different fields such as machine detail, medical equipment, bio-printing technology, construction, etc. Especially, I can be applied in the structural design field like the optimal multi-material topology design in this study. However, so far, the manufacturing method of multi-material design is still challenging. The manufacturing process often make the production cost of the multi-material structure higher than single material structure. Therefore, the manufacturing cost may be studied using multi-objective optimization in further research.

9 Conclusions

This study presents the analysis and implementation of continuum structures under buckling constraints based on multi-material topology optimization using Jacobi active-phase algorithm. The present multi-material interpolated scheme in this study prevents the spurious buckling modes in multi-material topology optimization for the buckling problem. Optimized multi-material topology designs and corresponding mode shapes of the structures with a single material and multi-material for different buckling lower bounds are evaluated with the topology changes. In the numerical examples, the distribution of multiple materials on compression and compression-tension structures are presented to show the effectiveness of the present method.

In the investigating of buckling constraint parameter in this study, the structures with two objectives are obtained which are maximized structural stiffness and maximized stability with respect to buckling. It reveals the potential of further topological design for a stiff and stable structure.