1 Introduction

Ever since topology optimization was introduced by Bendsøe and Kikuchi (1988), it has usually been used to determine the stiffest structure by minimizing the compliance. However, this is not the objective for most practical structural design problems. A more realistic objective would be to minimize the mass, while satisfying the stress constraints.

Enforcing stress constraints in topology optimization presents some challenges. Topology optimization problems typically have a large number of elements, so satisfying the stress constraints at multiple points in each element would result in a large-scale optimization problem. Furthermore, convergence problems have been observed in areas of low density, due to the stress singularity, in which the stress is undefined as the density approaches zero.

This singularity phenomenon was first observed by Sved and Ginos (1968) and Kirsch (1990) in the optimization of truss topology designs subject to stress constraints. They observed that the optimal topology can be obtained only by removing one of the trusses completely, thus violating the stress constraint for that truss. The singularity results from the appearance of degenerate regions. These are caused by the discontinuous nature of the stress constraint when the cross-section area is zero, which is often where the global optimum lies. Optimizers are unable to identify these degenerate regions and thus converge to a local optimum instead. These regions can be eliminated by relaxing the stress constraints. The ϵ-relaxation approach proposed by Cheng and Guo (1997) allows for higher stresses in areas of low density. However, this approach is not unique, and many other authors have adopted variations of stress relaxation (Bruggi and Venini 2008; Duysinx and Sigmund 1998; París et al. 2009; Pereira et al. 2004).

One of the simplest ways to apply stress constraints in a structural topology optimization problem is to limit the stress at given points in the elements; this is known as the local constraint approach. Some authors have used this method, for example Duysinx and Bendsøe (1998) and Pereira et al. (2004), with the former choosing to reduce the computational cost by calculating the sensitivity of the active constraints only. Another approach is to transform these constraints into a single global constraint, using some aggregating function such as the p-norm or the Kreisselmeier–Steinhauser (KS) function; see Duysinx and Sigmund (1998; Guilherme and Fonseca (2007), and Yang and Chen (1996). However, this leads to weaker control of the local stresses. A third approach is to group the elements into blocks and use a single aggregated constraint per block (París et al. 2010); this is known as the block aggregated constraint approach. This reduces the number of constraints dramatically compared to the local-constraint approach while retaining control of the stress behaviour.

This paper investigates the effect of enforcing stress constraints in design-dependent loading problems, where the structural loading changes in magnitude, direction, and location as the design changes. The most common design-dependent loads are self-weight and pressure, and these loads have been previously considered in compliance minimization problems. Bruyneel and Duysinx (2005) noted a few difficulties that arise with self-weight, specifically the nonmonotonous behaviour of the compliance function and the appearance of low-density artifacts. Ansola et al. (2006) applied self-weight to a few structures and solved the problem using evolutionary structural optimization.

In pressure loading, the most difficult task is to identify the material boundary location on which the pressure acts. Many different methods have been proposed, including simulating the pressure loading with a fictitious thermal loading (Chen and Kikuchi 2001) and applying a fictitious electric field (Zheng et al. 2009). Some authors use a multiphase approach to identify the material, void, and fluid regions (Bourdin and Chambolle 2003; Bruggi and Cinquini 2009; Sigmund and Clausen 2007). Other authors identify the material boundary directly, either by connecting points of equal density (Du and Olhoff 2004; Zhang et al. 2008) or with the use of splines (Fuchs and Shemesh 2004; Hammer and Olhoff 2000); the load can then be directly applied to the finite elements.

Although stress-constrained topology optimization has been investigated in previous work (Le et al. 2010; Pereira et al. 2004; Sigmund and Clausen 2007), the problems considered involve predefined fixed loads. Likewise, some research has been done on topology optimization under design-dependent loading. However, the objective has always been to obtain the stiffest structure by minimizing the compliance.

The goal of this paper is to determine the effect of enforcing stress constraints in structural topology optimization problems with design-dependent loads. A comparison with the compliance minimization results is also provided. The solid isotropic material with penalization (SIMP) approach (Bendsøe 1989; Zhou and Rozvany 1991) is used along with the block aggregation technique. For pressure loading, an approach to connecting the points of equal pressure is proposed. The differences between the results from compliance minimization and stress-constrained problems are explained, and the relative merits of these two approaches are discussed.

This paper is organized as follows. Section 2 gives an overview of the SIMP formulation that is used to solve the topology optimization problem. The problem statements for mass-constrained compliance minimization and stress-constrained mass minimization are presented in Section 3 and Section 4, respectively. The methods for applying self-weight and pressure loads are described in Section 5. The numerical examples are given in Section 6, where the differences between compliance minimization solutions and stress-constrained solutions are analyzed. Section 7 provides concluding remarks.

2 Problem formulation

The goal of topology optimization is to distribute material within a certain region in the most favourable way, for a given objective function, while satisfying a set of constraints. The results show the locations in space where there should be material and the locations that should be void. With the design domain Ω discretized by N finite elements, each element can be assigned a design variable ρ e  ∈ (0,1] to represent its relative density, with e = 1,...,N. These design variables can be combined into a vector \(\boldsymbol{\rho} \in {\cal R}^N\). The assembled global stiffness matrix \(\mathbf{K}(\rho_e) \in {\cal R}^{d \times d}\) depends on the design variables, where d is the number of degrees of freedom. With the external load given by the vector \(\mathbf{f} \in {\cal R}^d\), the displacement vector \(\mathbf{u} \in {\cal R}^d\) can be determined by the governing equilibrium equations

$$ \mathbf{K}(\rho_e) \mathbf{u} = \mathbf{f}. $$
(1)

Assuming linear elasticity, the strain and stress tensors can be related to the displacement vector through the kinematic and constitutive equations as

$$ \mathbf{\epsilon}_{ij} = \frac{1}{2} (\mathbf{u}_{i,j} + \mathbf{u}_{j,i}), $$
(2)
$$ \mathbf{\sigma}_{ij} = \mathbf{D}_{ijkl} \mathbf{\epsilon}_{kl}, $$
(3)

where D is the constitutive matrix and depends on the material’s Poisson’s ratio μ and Young’s modulus E 0.

The density design variable should attain one of the limiting values, such that the discretized domain results in a black-and-white solution, giving a rough description of the continuum structure boundaries. Many methods, including the solid isotropic material with penalization (SIMP) approach (Bendsøe 1989; Zhou and Rozvany 1991), penalize the intermediate densities by expressing the material properties E e in each element as

$$ \mathbf{E}_e = \rho_e^p \mathbf{E_0}, $$
(4)

where E 0 is the Young’s modulus of the solid material, and p is the penalization power. For a penalization power greater than 1, the intermediate values of the densities are penalized, since the material gives little stiffness when 0 < ρ < 1, while the cost in volume decreases only linearly with ρ (Bendsøe 1989; Eschenauer and Olhoff 2001). The result is a 0–1 solution.

By using a penalized Young’s modulus, the assembled stiffness matrix has an explicit dependence on each density design variables, with

$$ \mathbf{K}(\boldsymbol{\rho}) = \sum\limits_{e=1}^N{ \rho_e^p } \mathbf{k}_0, $$
(5)

where k 0 is the element stiffness matrix that uses the solid material’s Young’s modulus E 0.

3 Mass-constrained compliance minimization

The most common formulation for topology optimization is to find the stiffest structure by minimizing the compliance subject to a given amount of material. This is equivalent to minimizing the energy of deformation at the equilibrium state of the structure. This problem can be stated as

$$ \begin{array}{rll} {\rm minimize} && C(u) = \mathbf{u}^T \mathbf{K} \mathbf{u} \\ {\rm w.r.t.} && \rho_e \\ {\rm such that} && \mathbf{K} \mathbf{u} = \mathbf{f} \\ && m(\boldsymbol{\rho}) = \displaystyle\sum\limits_{e=1}^N{ \rho_e } \leq m_0 \\ && 0 < \rho_{\min} \leq \rho_e \leq 1, \end{array} $$

where u and K are the global displacement vector and stiffness matrix respectively, m 0 is the maximum mass constraint, and ρ min is the minimum relative density (typically set to \({\cal O}(10^{-3})\)). The minimum density is nonzero to avoid singularities in the stiffness matrix, and a value of ρ e  = ρ min effectively represents a void element (Bendsøe and Sigmund 2003; Sigmund 2001).

4 Stress-constrained mass minimization

Despite the well-developed mathematical background of a compliance minimization topology optimization problem, the problem statements are usually not representative of the practical requirements. A more intuitive problem would be to determine the lightest structure that does not fail. One of the simplest failure criteria is that the stresses do not exceed the yield stress of the material. With the stress tensor formalized using the constitutive relationship (3), the material failure function F(σ) can be defined as a function of the stress tensor. Thus, the optimization problem can be written

$$ \begin{array}{rll} {\rm minimize} && m(\boldsymbol{\rho}) = \displaystyle\sum\limits_{e=1}^N{ \rho_e } \\ {\rm w.r.t.} && \rho_e \\ {\rm such that} && \mathbf{K} \mathbf{u} = \mathbf{f} \\ && \displaystyle\frac{F(\sigma_e)}{\sigma_y} \leq 1 \\ && 0 < \rho_{\min} \leq \rho_e \leq 1, \end{array} $$

where σ y is the material yield strength, and failure occurs when F(σ) > σ y . For isotropic materials, the von Mises failure criterion is the most widely used failure function; it is given by

$$ \begin{array}{rll} \sigma_{vm}^2 &=& \frac{1}{2} \left[ \left(\sigma_{11} - \sigma_{22}\right)^2 + \left(\sigma_{22} - \sigma_{33}\right)^2 + \left(\sigma_{33} - \sigma_{11}\right)^2 \right] \\ &&+ 3 \left( \sigma_{12}^2 + \sigma_{23}^2 + \sigma_{31}^2 \right). \end{array} $$
(6)

However, it has been recognized that topology optimization with stress constraints may encounter singularities; see Sved and Ginos (1968) and Kirsch (1990). In both cases, a three-bar truss problem was analyzed, and it was pointed out that a global optimum can be obtained only if one of the trusses is removed completely, which would in effect violate that member’s stress constraint. This phenomenon is caused by the discontinuous nature of the stress function: as ρ→0, the stress approaches infinity, and when ρ = 0, the stress is undefined. As the truss area approaches zero, the stress approaches a large value and the constraint may be violated. However, this stress constraint is removed when the area is exactly zero. A stress-constrained structural topology optimization approach that does not treat this singularity appropriately would prevent material from being removed completely.

4.1 Stress-constraint relaxation

To generate a smooth feasible design space in the truss optimization problem, Rozvany et al. (1995) used a smooth KS function, while Cheng and Guo (1997) presented a relaxation approach to allow for higher stresses in elements of low density. In a typical optimization problem, the design domain may include a degenerate region, and the global minimum may be located in that region. To ensure that the stress constraint is always satisfied when the area (or the density in a topology optimization) is zero, this constraint can be stated as

$$ (\sigma_{vm} - \sigma_y)\rho_e \leq 0. $$
(7)

However, as the density approaches zero, the stress remains finite and the constraint is violated. The relaxation approach perturbs the stress constraint and the variable lower bounds by a small parameter ϵ > 0 to remove the degenerate region. This relaxation modifies (7) to

$$ (\sigma_{vm} - \sigma_y)\rho_e \leq \epsilon, $$
(8)

which allows the constraint to be satisfied when ρ e is sufficiently small, thus removing the degenerate region. However, Stolpe and Svanberg (2001) showed that although the global optimum can be obtained, there is no guarantee that the solution will in general converge to the global optimum of the original problem.

Many relaxation approaches have been proposed for element-based topology optimization, based on the ϵ-relaxation (Bruggi and Venini 2008; Guilherme and Fonseca 2007; Pereira et al. 2004). The stress constraint definition needed to resolve the singularity was revisited by Le et al. (2010) who proposed a more general approach that could give a number of viable stress, stiffness, and mass interpolation schemes. The stress constraint is first rewritten as η(ρ e ) σ vm  ≤ σ y , where η(ρ e ) is a weighting factorFootnote 1 on the stress (the SIMP approach similarly weights the stiffness using ρ p). A smooth design space is generated provided η(ρ e ) is continuous and η(0) = 0. For the other restrictions that η(ρ e ) must satisfy, see Le et al. (2010).

In the following stress-constrained topology optimization problems, a simple weighting factor of \(\eta(\rho_e) = \rho_e^{1/2}\) is used, and thus the material failure function is

$$ F(\sigma) = \rho_e^{1/2} \sigma_{vm}. $$
(9)

This weighting factor was also used by Le et al., and it was shown to give acceptable results.

4.2 Stress constraint aggregation

Ideally, the stress constraint at each finite element should be enforced individually. However, this leads to a large number of constraints. Combined with the large number of design variables, this would result in a large-scale optimization problem. Since a gradient-based topology optimization requires the sensitivities of each constraint function with respect to all the design variables, this would also create a prohibitively costly sensitivity analysis. To address this problem, the stress constraints can be aggregated into a single function. This drastically reduces the computational effort of the sensitivity analysis and also reduces the amount of data that must be stored. However, this approach provides poor control over the stress distribution within the domain and typically yields overly conservative results.

A compromise between these two extremes is to use the block aggregation approach (París et al. 2010), where the elements are grouped into a number of blocks, each with n elements, and a single aggregated stress constraint is enforced in each block. Each constraint can be written as the maximum stress ratio in the block,

$$ \sigma_{\max} = \max \left( \frac{F(\sigma_e)}{\sigma_y} \right). $$
(10)

Since this is not differentiable, the aggregating p-norm function

$$ \sigma_{PN} = \left[ \sum\limits_{e=1}^n \left(\frac{F(\sigma_e)}{\sigma_y} \right)^p \right]^{1/p} $$
(11)

or the KS function (Kreisselmeier and Steinhauser 1979; Poon and Martins 2007)

$$ \sigma_{KS} = \frac{1}{p} \ln \left[ \sum\limits_{e=1}^n \exp \left( p \frac{F(\sigma_e)}{\sigma_y} \right) \right] $$
(12)

is preferable. Both functions are smooth and differentiable. The aggregation parameter p controls the level of smoothness, with p → ∞ yielding the original max function. In the examples that follow, p-norm is used as the aggregating function.

4.3 Optimization problem statement

To further penalize the intermediate densities that might occur, the mass function is redefined to become

$$ m(\boldsymbol{\rho}) = \displaystyle\sum\limits_{e=1}^N{ \rho_e + \alpha \rho_e (1 - \rho_e) }, $$
(13)

where α is a penalty coefficient. This results in a nonzero second term when the density is at an intermediate value. Other versions of the penalized mass function exist, and they are used widely by various authors (Guilherme and Fonseca 2007; París et al. 2009; Pereira et al. 2004).

Combining the above, the problem statement for a stress-constrained, mass minimization optimization becomes

$$ \begin{array}{rll} {\rm minimize} && m(\boldsymbol{\rho}) = \displaystyle\sum\limits_{e=1}^N{ \rho_e + \alpha \rho_e (1 - \rho_e) } \\ {\rm w.r.t.} && \rho_e \\ {\rm such that} && \mathbf{K} \mathbf{u} = \mathbf{f} \\ && g_i\left( \displaystyle\frac{\rho_e^{1/2} \sigma_{vm}}{\sigma_y} \right) \leq 1 \\ && 0 < \rho_{\min} \leq \rho \leq 1 , \end{array} $$

where g i (ρ e , σ y ) is the aggregating function used to combine the relaxed stresses within a block.

5 Design-dependent loading

This section presents detailed formulations for the application of design-dependent loads, self-weight and pressure, in the finite-element framework. The difficulties with these design-dependent loads are also discussed, including the determination of the material surface boundary for the pressure load and the numerical problems that can be encountered when applying self-weight with an SIMP formulation.

5.1 Pressure loading

To allow pressure to act on the structure, a method to determine the material surface boundary is needed, and this surface must be tracked as the design changes. The method used is based on an iso-density line that iteratively connects points of equal relative density; it is described in detail in Lee and Martins (2011). A predefined voided area, where ρ e  = ρ min for all iterations, is used to ensure that an intermediate density will exist in the first iteration, and it also forms a starting point for the line search.

By a linear interpolation from the corner densities, the line segment, on which the pressure load acts, intersects the element boundary at (s 1, t 1) and (s 2, t 2), s,t ∈ [ − 1,1]. The equivalent and consistent nodal load f e through the element nodes can be determined using the element shape function N, with

$$ \mathbf{f_e} = P \begin{Bmatrix} -\Delta y / L \\ \Delta x / L \end{Bmatrix} \int_L{ \mathbf{N}^T dl}, $$
(14)

which, with Gaussian quadrature and a change in the interval of integration, becomes

$$ \mathbf{f_e} = \frac{1}{2} P \begin{Bmatrix} -\Delta y \\ \Delta x \end{Bmatrix} \sum_i{ w_i \mathbf{N(g'_i)}^T}, $$
(15)

where \(L = \sqrt{ \left(x_2-x_1\right)^2 + \left(y_2-y_1\right)^2} = \sqrt{ \Delta x^2 + \Delta y^2 }\) is the physical length of the segment within the element, and P is the magnitude of the pressure. Letting Δs = s 2 − s 1, \(\bar{s} = \frac{1}{2}(s_2 + s_1)\), and likewise for t, the physical distances are Δx = Δxs) and Δy = Δyt). With Gaussian quadrature, w i is the weight of the i th node, and g i is the modified Gauss point, taking into account the change of integration bounds

$$ g'_i = \begin{Bmatrix} \displaystyle\frac{1}{2} g_i \Delta s + \bar{s} \\ \displaystyle\frac{1}{2} g_i \Delta t + \bar{t} \end{Bmatrix}. $$

The magnitude of the pressure is equal to P L, and the direction of loading is always 90° clockwise from the direction of the isoline segment. Using equivalent loading ensures that the original load and f e are statically equivalent, with the same resultant force and moment about any point (Cook et al. 1989).

5.2 Self-weight

The gravity load is simply a linear function of the element relative density ρ e and the area of the element A, which is assumed to be constant for a rectangular mesh, applied along the x 2 direction. The equivalent nodal load vector f e can be determined from the element shape functions

$$ \mathbf{f_e} = \int_{-1}^1{ \int_{-1}^1{ \mathbf{N}^T \begin{Bmatrix} 0 \\ f_g \end{Bmatrix} d\xi } d\eta }, $$
(16)

where f g  = g A ρ e , and the matrix of shape functions is

$$ \mathbf{N} = \begin{bmatrix} N_1 & 0 & N_2 & 0 & \cdots & N_i & 0 \\ 0 & N_1 & 0 & N_2 & \cdots & 0 & N_i \end{bmatrix}. $$
(17)

For the four-node quadrilateral element that is commonly used (Ansola et al. 2006; Bruyneel and Duysinx 2005), this simplifies to \(\frac{1}{4} f_g\) for each node. For the nine-node biquadratic quadrilateral element used here, it simplifies to \(\frac{1}{36} f_g\) for the four corner nodes, \(\frac{1}{9} f_g\) for the four edge-centered nodes, and \(\frac{4}{9} f_g\) for the cell-centered node.

With this approach, intermediate densities often appear in locations where the densities are close to zero, as shown in Fig. 1a. Bruyneel and Duysinx (2005) attributed this to the ratio between the force and the stiffness becoming infinite as the density approaches zero, since f ∝ ρ and K ∝ ρ p, which causes the displacement to be unbounded. Therefore, the optimizer allows some material to be present to reduce the displacements to finite values. An approach proposed by Bruyneel and Duysinx to address this was to modify the SIMP formulation such that the stiffness is linearly dependent on the design variables, for elements with densities below a certain cutoff, ρ C , such that

$$ \mathbf{E}_e = \begin{cases} \rho_e^p \mathbf{E_0} & \rho_C < \rho_e \leq 1 \\ \rho_e \left(\rho_c^{p-1} \mathbf{E_0} \right) & 0 < \rho_{\min} \leq \rho_e \leq \rho_C \end{cases}. $$
(18)
Fig. 1
figure 1

Comparison of optimized topology for arch problem, with and without SIMP modification

Using this modified SIMP formulation, the intermediate density artifacts can be removed, as shown in Fig. 1b.

6 Numerical examples

This section present several examples to compare the solutions obtained for a mass-constrained compliance minimization problem and a stress-constrained mass minimization problem, with the structural loading changing in magnitude, direction, and location as the design changes. Structural analysis is performed using the in-house solver, Toolkit for the Analysis of Composite Structures (TACS) by Kennedy and Martins (2010). Optimization problems are solved using SNOPT (Gill et al. 2005), a sequential quadratic programming optimizer, which is used within pyOpt, an object-oriented framework for nonlinear optimization (Perez et al. 2011).

The design domain is discretized with nine-node biquadratic rectangular plane-stress elements. Node-based design variables are used, located at the four corner nodes of the element, and the stiffness of the element is interpolated from the four corner nodes using the bilinear element shape function N. Therefore, all the element relative densities in the formulation can be replaced by

$$ \rho_e = \mathbf{N}^T \mathbf{\rho}, $$
(19)

where \(\mathbf{\rho} = [ \begin{array}[t]{cccc}\rho_1 \quad \rho_2 \quad \rho_3 \quad \rho_4\end{array} ]^T\) is a vector of the relative densities at the four corners.

By using this Q9/Q4 (9-node quadratic displacement interpolation with 4-node linear density interpolation) implementation, the design variables are guaranteed to be C 0 continuous, thus preventing the checkerboarding phenomenon that often occurs with element-based design variables (Rahmatalla and Swan 2004; Sigmund and Petersson 1998). Also, in the extensive study done by Jog and Haber (1996), the Q9/Q4 implementation was found to be stable, whereas for a lower-order displacement interpolation, such as Q4/Q4, the analysis was found to be unstable. Therefore, although gray regions may appear in the following examples, this is due to the density interpolation and all the results have been fully converged.

To compare the mass-minimization solutions with those of compliance-minimization, the stress-constrained problem was first solved to determine the optimal mass. This mass was then used as the maximum mass constraint for the compliance minimization problem. Thus, although the two problems might result in very different topologies, the results have the same mass, thereby giving a fair comparison.

The penalization value p for the material properties is set to 3, and the minimum density is set to \(\rho_{\min} = 10^{-3}\) to avoid singularities in the global stiffness matrix. For the block aggregation of the stress constraints, p-norm with a parameter of p = 10 is used. The mass function (13) uses α = 0.9 for the penalization of intermediate densities.

6.1 Self-weight arch

The following example is a self-weight problem with no fixed loading imposed. A rectangular domain of 2 m ×1 m is discretized by 2,048 elements, as shown in Fig. 2. Boundary conditions are applied at the bottom two corners. Other than the self-weight due to the material density ρ 0 and gravitational constant g, no external loads are applied. The material properties are \(\rho_0 = 2780.0~{\mathrm{kg/m^3}}\), E = 73.1 GPa, ν = 0.3, and σ y  = 75.8 MPa. Since a self-weight problem is subject to the intermediate-density artifact observed by Bruyneel and Duysinx (2005), a linear density switch limit of ρ C  = 0.25 was imposed in the Young’s modulus redefinition (18).

Fig. 2
figure 2

Self-weight arch: geometry

Since decreasing the load would decrease the compliance, C = f T u, and the stress, the optimizer would choose to remove material. Hence, in the minimization of compliance, unless a very low volume fraction is given, the problem becomes unconstrained. For the solution in Fig. 3a, the volume constraint was set to 40%; however, the final solution has a volume fraction of 8.144%, with a final compliance of C = 0.054. Rozvany analytically derived the 2D solution through the optimization of trusses. This degenerates into a single layer of arches, commonly known as a Prager structure (Rozvany and Prager 1979). The solution shown in Fig. 3a is in excellent agreement with the analytical solution obtained by Rozvany (1989, p. 339).

Fig. 3
figure 3

Self-weight arch: optimized topologies

For the stress-constrained problem, there is a tradeoff between reducing the nodal densities, thus reducing the self-weight load, and increasing the densities, thus decreasing the resultant stresses. Since this is a mass minimization problem, it is preferable to decrease the densities in order to reduce the load, which also decreases the stress. However, with a nonzero lower bound on the densities, some material is still required to support the structure. Therefore, the final solution is not a true black-and-white solution. Instead, it is another arch-shaped solution, as shown in Fig. 3b, with a maximum relative density of 0.13 and a mass of m = 73.856 kg.

6.2 Self-weight column

The next example is a self-weight problem with a fixed load. In this case, a rectangular domain of 1.0 m by 0.6 m is meshed with 6,000 elements. The entire bottom edge is constrained, and a total load of F = 100 kN is distributed over 0.08 m at the center of the top edge, in addition to the self-weight, shown in Fig. 4. The material properties are \(\rho_0 = 7800~{\mathrm{kg/m^3}}\), E = 210 GPa, ν = 0.3, and σ y  = 6.5 MPa.

Fig. 4
figure 4

Self-weight column: geometry and loading

Again, the stress-constrained problem is optimized first, which results in a final mass of m = 420.92 kg (9.0% volume) and the geometry shown in Fig. 4. This mass is then used as the constraint for the compliance minimization problem. The topologies of the two solutions are vastly different, with the compliance minization resulting in a single column, whereas the mass minimization solution yields a two-column geometry joined at the top, with a horizontal truss midway (Fig. 5).

Fig. 5
figure 5

Self-weight column: optimized topologies

Figure 6 shows the stress distributions. Although the von Mises stresses are within the yield stress limit in the compliance solution, once again the stress-constrained result exhibits a more fully stressed design, even though the two solutions have the same mass.

Fig. 6
figure 6

Self-weight column: relaxed stress distributions

Since the two topologies are dissimilar, the solution from the stress-constrained problem was used to initialize another compliance minimization problem, and the compliance minimization solution was used to initialize another stress-constrained problem. The mass constraint is left unchanged for the compliance minimization problem, and therefore it also equals the mass from the initial solution. The results are shown in Fig. 7. The single-column solution retains its topology until close to the top, where it forks out to support the applied load, when stress constrains are applied. This results in a lower mass of m = 386.37 kg, indicating that the earlier solution is a local minimum. For compliance minimization, the optimizer merely refined the stress-constrained solution, which gives a higher compliance of C = 1.928, compared to C = 1.689 corresponding to Fig. 5a.

Fig. 7
figure 7

Self-weight column: initialized from converged solutions

One approach for avoiding local minima is a continuation method. The concept of continuation methods was first introduced by Allaire and Francfort (1993). The idea is to begin the optimization with no penalization of the intermediate densities (i.e., p = 1) and then to gradually increase the SIMP penalization parameter until an acceptable black-and-white solution is obtained. This works because the penalization of the intermediate densities greatly increases the number of local minima present in the design space. Therefore, delaying the penalization prevents the optimizer from prematurely converging to a suboptimal solution.

More recently, James et al. (2009) demonstrated that a similar strategy could be used to avoid local minima in problems involving constraint aggregation. In that study, the authors sought to minimize the maximum compliance of structures subject to multiple load cases by treating the compliance due to each load case as a constraint using the bound formulation (Olhoff 1989). The resulting constraint functions were aggregated using the KS function, and it was shown that if the aggregation parameter was gradually increased, the process converged to better optima.

The same principle applies to the case of stress constraints, where the local von Mises stress values within a designated block are aggregated to form a single constraint. By starting with a low aggregation parameter, it avoids the situation where the sensitivity contributions from the lower stress regions are overwhelmed and the optimization is dominated by the stress values in a small number of elements. This has the effect of stabilizing the optimization process and avoiding premature convergence to an undesirable local minimum.

In this approach, the p-norm parameter was initially set to p = 1.0 and the problem was optimized using a relaxed tolerance of 10 − 3. The p-norm parameter was then doubled and the problem was optimized again. This was repeated until p = 16.0, at which point the convergence tolerance was set to 10 − 6 to obtain the final solution. Since decreasing the aggregation parameter also overstates the maximum stress, the yield stress must be gradually decreased to the final value in order to obtain a feasible solution at every stage. The solution obtained using this continuation method is shown in Fig. 8; it has a mass lower than that of the previous two results: m = 315.78 kg. However, the topology also differs, with two angular trusses supporting the load, as opposed to a single truss or a pair of vertical trusses.

Fig. 8
figure 8

Self-weight column: solution obtained with continuation method (m = 315.78)

The relatively strong performance of the minimum-weight, stress-constrained design shown in Fig. 7b is consistent with this result. Because both the compliance and the von Mises stress are directly proportional to the strain in the element, the compliance objective initially used for the result in Fig. 7b behaves similarly to a constraint on the aggregated von Mises stress with the p-norm parameter set to p = 1. Therefore, the procedure of minimizing compliance and then switching to weight minimization with stress constraints is analogous to a two-stage continuation method.

Figure 9 shows the convergence history of the optimality and feasibility for the continuation method, with the dotted vertical lines indicating restarts in the optimization with a increased aggregation parameter. This optimized result indicates that although an optimal stress-constrained solution may be harder to obtain without a continuation method, the optimal topology can be vastly different from that obtained by minimizing compliance.

Fig. 9
figure 9

Self-weight column: convergence history of continuation method result

6.3 Pressurized arch

The next two examples present cases where the structure to be optimized is subjected to pressure loading. Because of the need to determine an isoline at every iteration, an optimizer with smooth convergence behaviour is preferable to one with fast convergence. Therefore, instead of using SNOPT, the method of moving asymptotes (Svanberg 1987), MMA, is used. Since MMA can exhibit slow convergence behaviour near the solution (Zuo et al. 2007), once a reasonable solution is found, SNOPT is then used to fully optimize the problem.

Pressure loading proves to be more difficult in a stress-constrained mass-minimization problem than in a compliance minimization problem. This is because in a mass-minimization problem, the optimizer tends to remove material, and therefore a smooth boundary on which to apply the pressure can be more difficult to find. Thus, it is preferable to use a low threshold, such as 0.2 or even lower, to determine the material boundary. As the optimizer converges to the solution, this threshold can be increased.

The following example is a common benchmarking problem for topology optimization with pressure loading (Bruggi and Cinquini 2009; Chen and Kikuchi 2001; Sigmund and Clausen 2007). A rectangular domain of 2.0 m ×1.4 m is meshed with 1120 elements and fixed at the bottom two corners. The pressure originates from the middle of the bottom edge, where the design variables contained within a 1.6 m ×0.28 m region are set to void, with the geometry shown in Fig. 10. The pressure is P = 2 MPa, and the material parameters are ρ = 2780 kg/m3, E = 73.1 GPa, ν = 0.3, and σ y  = 75.8 MPa.

Fig. 10
figure 10

Pressurized arch: geometry

The compliance minimization problem converged to an arch shape as shown in Fig. 11a, which is expected. However, the stress-constrained problem converged to a different geometry, where smaller secondary arches are introduced to reinforce the top part of the arch, as seen in Fig. 11b.

Fig. 11
figure 11

Pressurized arch: optimized topologies

The stress contour plots in Fig. 12 show that the stress constraints are violated at the points where the structure intersects the corners of the rectangular void. Although the stress-constrained solution resulted in a different topology, all the stresses are within the yield stress limit.

Fig. 12
figure 12

Pressurized arch: relaxed stress distributions

Note that if the area of the initial void were reduced by lowering the height, the corner stresses for the compliance-minimization solution would be reduced, and the resultant stress-constrained solution would more closely resemble a simple arch. However, this particular size for the initial void was chosen to illustrate that with stress constraints, sharp corners can be rounded to reduce the stress concentration; this would not be possible for a compliance-minimization problem. This particular initial void also demonstrates again that stress-constrained problems can converge to unexpected local optima.

The minimum compliance problem was used as a starting point to optimize the stress-constrained problem again, in an attempt to obtain the arched solution. The result is shown in Fig. 13b, and in contrast to the other stress-constrained solution (Fig. 11b) the arch shape was recovered. This result is also a “better” optimum, with a mass of 1217.7 kg, compared to 1469.0 kg in Fig. 11b, a 17% decrease in mass.

Fig. 13
figure 13

Pressurized arch: initialized from converged solutions

When the compliance is minimized with the stress-constrained solution (Fig. 11a), the secondary structures remain. This is partly because when transforming a convex structure to a concave structure, the optimizer must produce some intermediate solutions that are highly inefficient for supporting a pressure load. These intermediate solutions can be skipped if faster convergence behaviour is observed, but islands and nonconnecting structures will likely appear, making the formation of the surface boundary difficult. The resulting compliance, C = 6185.43, shows that this is indeed a local minimum: it is 45% higher than the value for the original arch structure (C = 4266.25).

To investigate this local-optimum convergence behaviour, a slice in the validFootnote 2 design space was analyzed. Three valid solutions were used to define the plane, with two solutions being the stress-constrained solutions obtained previously, Figs. 11b and 13b, and the third being the initial setup with the rectangular void and a relative density of 0.9. Two parameters, κ 1 and κ 2, were used to choose among the three solutions: \((\kappa_1, \kappa_2) = \left\{ (0,0), (1,0), (0,1) \right\}\). The solution of Fig. 13b, the best local optimum found, is located at (0,1).

Both the mass and the relaxed stress were determined along the plane defined by the three points, and their contour is plotted in Fig. 14. For the relaxed stress contour plot, the feasibility contour of 1 is also plotted, to differentiate between feasible and infeasible points in the domain. This contour plot shows that the optimum is surrounded by a discontinuity. Two points are taken on either side of this “cliff” (indicated in the detailed plot), and the density distribution and stress contours corresponding to these two designs are plotted in Figs. 15 and 16. Although the density distributions are almost identical, the stress contours are vastly different. This is due to the method used to determine the boundary to apply the pressure. The difference in the density between the two points causes two different boundaries to be used, leading to the difference in the stress distribution.

Fig. 14
figure 14

Pressurized arch: contour slice between local minima, with optimum located at (κ 1, κ 2) = (0,1). thick contour in stress plot indicates boundary where constraint is active, where it is satisfied on outside

Fig. 15
figure 15

Pressurized arch: densities of the two points shown in detailed plot of Fig. 14b

Fig. 16
figure 16

Pressurized arch: stress distributions of the two points shown in detailed plot of Fig. 14b

In an attempt to obtain an optimal stress-constrained solution without using a compliance solution as a starting point, the continuation method of the self-weight column problem shown in Fig. 8 is applied. However, this resulted in a final mass of m = 1449.42 kg, which is lower than that obtained without the continuation method, but higher than that obtained with the compliance solution as a starting point. This result is shown in Fig. 17; it has the same topology as the case without the continuation method but a slightly different shape. Although the continuation method may result in a better optimum, there is no guarantee that the stress-constrained optimization with the continuation method will yield the global optimum.

Fig. 17
figure 17

Pressurized arch: solution obtained with continuation method (m = 1449.42)

6.4 Piston

The last example has a piston structure and is similar to the problem solved by Sigmund and Clausen (2007) and Bruggi and Cinquini (2009), with the design domain illustrated in Fig. 18. A pressure of P = 1 MPa originates from the top surface, and the domain is extended vertically to create the void along the top. The left and right sides of the domain are constrained in the x-direction, and the center of the bottom edge is fully constrained, representing the piston rod. Because of symmetry, only the right half of the domain is modelled, and it is discretized by 2,400 elements.

Fig. 18
figure 18

Piston: geometry and loading

With the given pressure load and boundary conditions, it is easy to imagine that the ideal solution would be a dense ball of structure around the constrained node, with a maximum volume under compliance minimization, or a point at the constrained node with a finite volume under stress constraints, with the pressure acting from the outside. To prevent the structure from collapsing onto itself, a small, fixed load of 10 kN is applied at the top right corner, also shown in Fig. 18. At 0.3%, the fixed load can be considered to be negligible compared to a minimum pressure force of \(F = PL_x = 3\times10^6\) N per unit depth, but it is just large enough to prevent the structure from disappearing.

The material properties are \(\rho_0 = 2780{~\mathrm{kg/m^3}}\), E = 32.0 GPa, ν = 0.3, and σ y  = 75.8 MPa. The mass minimization, stress-constrained solution resulted in a final mass of m = 2577.8 kg, shown in Fig. 19b. Minimizing the compliance, using the value above for the maximum mass constraint, resulted in a final compliance of C = 27592.9 as shown in Fig. 19a.

Fig. 19
figure 19

Piston: optimized topologies

Although the topology of the two solutions is comparable, the stress contour plots show that the compliance solution has an infeasible structure with regard to permissible stress: the stress constraints are violated near the bottom support. In the stress-constrained solution, all the von Mises stress values satisfy the constraints (Fig. 20).

Fig. 20
figure 20

Piston: relaxed stress distributions

The compliance minimization solutions obtained by Sigmund and Clausen (2007) and Bruggi and Cinquini (2009) are similar to the compliance solution obtained herein, but with thicker members due to the higher volume fraction of 30%. Furthermore, their methods did not require the additional fixed load, since the pressure boundaries were forced to terminate at one of the sides of the domain. However, their approach required an additional volume fraction of the fluid region to be enforced, whereas the current examples specified only the magnitude of the pressure.

7 Conclusion

A comparison of mass-constrained compliance minimization solutions and stress-constrained mass minimization solutions have been provided, with both fixed loading and design-dependent loading. In general, optimizations subject to material failure constraints are difficult to solve because of the large number of nonlinear constraints that form highly nonlinear and discontinuous feasible regions. However, it is important to investigate these problems, since minimizing mass subject to failure constraints is the objective of many structural design problems.

The structural topology optimization problems were solved using the SIMP approach, together with node-based density design variables to avoid the need for a filtering algorithm. Because of the stress singularities, a stress-relaxation approach was adopted. Instead of enforcing stress constraints at every point of each element, a block aggregation method was used to group the local constraints. In each group, a p-norm function was used to approximate the maximum stress with a smooth function. This reduced the number of constraints in the optimization, thus reducing the computational time required.

The numerical examples presented herein showed that mass minimization subject to stress constraints generally resulted in a more fully stressed design, when compared to a compliance minimization with the same mass, where stress constraints are violated. However, problems with stress constraints were likely to converge to local minima, especially for problems with design-dependent loading. For the self-weight column problem, the convergence to local minima was avoided through the use of a continuation method, in which the aggregation parameter was gradually increased. However, the use of a continuation method does not guarantee that a global optimum can be found; the pressurized arch problem demonstrates this. Moreover, the results of the piston example show that the compliance minimization and mass minimization problems can result in considerably different topologies. Thus, a compliance minimization followed by a sizing optimization with failure constraints may not result in an optimum. Therefore, the stress-constrained approach is important in topology optimization.