Skip to main content
Log in

Stress-constrained topology optimization using the constrained natural element method

  • Research Paper
  • Published:
Structural and Multidisciplinary Optimization Aims and scope Submit manuscript


This paper presents a topology optimization framework to achieve volume minimization with crossland fatigue constraints under proportional loading using the constrained natural element method. The local minimization problem is solved by means of the augmented Lagrangian method to deal with a large number of evaluation points. To suppress the numerical instabilities, a neighbor-based filter is proposed and compared to the widely used density filter. Furthermore, to circumvent the problem of stress singularity, several different relaxations of the constraints are also investigated. Compared with the topology optimization procedure based on the finite element method, the proposed method has the advantage of showing greater flexibility and convenience in discretization of complex design domains and the ability to maintain stable output under various discretization conditions.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others


Download references


The authors acknowledge the financial support from “‘China Scholarship Council (CSC)” under the project titled “Topology optimization of additive manufactured parts including fatigue behavior.”

Author information

Authors and Affiliations


Corresponding author

Correspondence to Yanda Chen.

Ethics declarations

Conflict of interest statement

On behalf of all authors, the corresponding author states that there is no Conflict of interest.

Replication of results

To reproduce the optimized results described above, the equilibrium equation can be solved by CNEM in Sect. 2. The local minimum problem can be solved using the modified AL formula (Giraldo-Londoño and Paulino 2021). The sensitivities are derived in Appendices 1 and 2 and the relevant parameters are given in Table 1.

Additional information

Responsible Editor: Jianbin Du

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.


Appendix 1: Sensitivity analysis of stress-constrained topology optimization

The sensitivity of the AL function in Eq. 19 at k-th iteration can be obtained as follows:

$$\begin{aligned} \frac{\partial J}{\partial \rho _{i}}=\sum _{j=1}^{N}\left( \frac{\partial f}{\partial \tilde{\rho }_{j}} \frac{\text{{d}}\tilde{\rho }_{j}}{\text{{d}}\rho _{i}}+\frac{1}{N} \frac{\partial P}{\partial \tilde{\rho }_{j}} \frac{\text{{d}} \tilde{\rho }_{j}}{\text{{d}}\rho _{i}}\right), \end{aligned}$$


$$\begin{aligned} P^{(k)}(\overline{\varvec{\rho }}, \varvec{u})=\sum _{j=1}^{N}\left[ \lambda _{j}^{(k)} h_{j}(\overline{\varvec{\rho }}, \varvec{u})+\frac{\mu ^{(k)}}{2} h_{j}(\overline{\varvec{\rho }}, \varvec{u})^{2}\right] \end{aligned}$$

is the penalization term.

For the first item on the right side of Eq. 29, \(\text{{d}}\tilde{\rho }_{j}/\text{{d}}\rho _{i}=\mathcal {F}_{j i}\) is obtained from the filter relation in Eq. 10 and the term \(\text{{d}}f /\text{{d}} \tilde{\rho }_{j}\) is given by

$$\begin{aligned} \frac{\partial f}{\partial \tilde{\rho }_{j}}=\frac{\partial }{\partial \tilde{\rho }_{j}} \frac{\sum _{i=1}^{N} \bar{\rho }_{i} V_{i}}{|\Omega |}=\frac{V_{j}}{|\Omega |} \frac{\text{{d}}\bar{\rho }_{j}}{\text{{d}} \tilde{\rho }_{j}}=\frac{V_{j}}{|\Omega |} \frac{\beta \left[ 1-\tanh \left( \beta \left( \tilde{\rho }_{j}-\eta \right) \right) \right] ^{2}}{\tanh (\beta \eta )+\tanh [\beta (1-\eta )]}. \end{aligned}$$

The calculation of the second term \(\partial P/\partial \tilde{\rho }_{i}\) in Eq. 29 is expressed as follows:

$$\begin{aligned} \frac{\partial P^{(k)}}{\partial \tilde{\rho }_{j}}=\sum _{i=1}^{N}\left[ \lambda _{i}^{(k)}+\mu ^{(k)} h_{i}\right] \frac{\partial h_{i}}{\partial \tilde{\rho }_{j}}. \end{aligned}$$

Based on Eqs. 20 and 23e, the nonzero part of Eq. 32 is determined as follows:

$$\begin{aligned} \begin{aligned} \frac{\partial h_{i}}{\partial \tilde{\rho }_{j}}&= p(1-\epsilon ) \bar{\rho }_{i}^{p-1} \delta _{i j} g_{i}\left( g_{i}^{2}+1\right) \frac{\text{{d}}\bar{\rho }_{i}}{\text{{d}}\tilde{\rho }_{i}} \\&\quad +\frac{\epsilon +(1-\epsilon ) \bar{\rho }_{i}^{p}}{\sigma _{l i m}}\left( 3 g_{i}{ }^{2}+1\right) \left( \frac{\partial \sigma _{vm}^{i}}{\partial \varvec{u}}\right) ^{T} \frac{\partial \varvec{u}}{\partial \tilde{\rho }_{j}}, \end{aligned} \end{aligned}$$

when \(\widetilde{g_{i}}(\overline{\varvec{\rho }}) \ge -\lambda _{i}^{(k)} / \mu ^{(k)} \), otherwise \(\partial h_{i}/\partial \tilde{\rho }_{j}=0\).

The adjoint method is used here to reduce the cost of sensitivity evaluation, then \(\partial P^{(k)} / \partial \tilde{\rho }_{j}\) is calculated as follows:

$$\begin{aligned} \frac{\partial P^{(k)}}{\partial \tilde{\rho }_{j}}=\left[ \lambda _{j}^{(k)}+\mu ^{(k)} h_{j}\right] p(1-\epsilon ) \bar{\rho }_{j}^{p-1} g_{j}\left( g_{j}^{2}+1\right) \frac{d \bar{\rho }_{j}}{\text{{d}}\tilde{\rho }_{j}}+\varvec{\eta }^{T} \frac{\partial \varvec{K}}{\partial \tilde{\rho }_{j}} \varvec{u} \end{aligned}$$

with the adjoint problem:

$$\begin{aligned} \varvec{\eta }^{T} \varvec{K}=-\sum _{i=1}^{N}\left[ \lambda _{i}^{(k)}+\mu ^{(k)} h_{i}\right] \frac{\epsilon +(1-\epsilon ) \bar{\rho }_{i}^{p}}{\sigma _{l i m}}\left( 3 g_{i}{ }^{2}+1\right) \left( \frac{\partial g_{i}}{\partial \varvec{u}}\right) \end{aligned}.$$

Since the stiffness matrix is constructed through Eq. 13, the second part on the right of Eq. 34 can be calculated as follows:

$$\begin{aligned} \varvec{\eta }^{T} \frac{\partial K}{\partial \tilde{\rho }_{j}} \varvec{u}=\varvec{\eta }_{j}^{T} \frac{\partial \varvec{K}_{j}}{\partial \tilde{\rho }_{j}} \varvec{u}_{j}=p(1-\epsilon ) \bar{\rho }_{j}^{p-1} \varvec{\eta }_{j}^{T} \varvec{K}_{j 0} \varvec{u}_{j} \frac{\text{{d}}\bar{\rho }_{j}}{\text{{d}}\tilde{\rho }_{j}} \end{aligned}.$$

The sensitivity of von Mises stress to the Cauchy stress vector is equal to

$$\begin{aligned} \frac{\partial \sigma _{vm}^{j}}{\partial \varvec{\sigma }}=\frac{\varvec{M} \varvec{\sigma }}{\sigma _{vm}^{j}}. \end{aligned}$$

The term \(\partial \varvec{\sigma } / \partial \varvec{u}\) can be deduced through Eq. 6:

$$\begin{aligned} \frac{\partial \varvec{\sigma }}{\partial \varvec{u}}=\varvec{C} \varvec{B} \end{aligned}.$$

Finally, we obtain the following

$$\begin{aligned} \begin{aligned} \frac{\partial J}{\partial \rho _{i}}&= \left( \varvec{\mathcal {F}}^{T}\right) _{i}\left\{ \frac{V_{i}}{|\Omega |}+\frac{1}{N}\left[ \left( \lambda _{i}^{(k)}+\mu ^{(k)} h_{i}\right) p(1-\epsilon ) \bar{\rho }_{i}^{p-1} g_{i}\left( g_{i}^{2}+1\right) \right. \right. \\&\quad + \left. \left. p(1-\epsilon ) \bar{\rho }_{i}^{p-1} \varvec{\eta }_{i}^{T} \varvec{K}_{i 0} \varvec{u}_{i}\right] \right\} \frac{\beta \left[ 1-\tanh \left( \beta \left( \tilde{\rho }_{j}-\eta \right) \right) \right] ^{2}}{\tanh (\beta \eta )+\tanh [\beta (1-\eta )]} \end{aligned} \end{aligned},$$

where \(\varvec{\mathcal {F}}_{i}\) is the ith row of the filter matrix.

Appendix 2: Sensitivity analysis of fatigue-constrained topology optimization

The AL-based method for topology optimization with fatigue constraints is similar to that with stress constraints, the main difference being that the load is cyclic in this case. Since the solid mechanics problem is linear elastic in this study, the relationships between the displacements and stresses obtained at each moment are also linear. Therefore, the equilibrium equation at any time point multiplied by an arbitrary adjoint vector \(\varvec{\eta }\) is added to the penalization term when the adjoint method is used for sensitivity analysis:

$$\begin{aligned} \frac{\partial P^{(k)}}{\partial \tilde{\rho }_{j}}=\left[ \lambda _{j}^{(k)}+\mu ^{(k)} h_{j}\right] p(1-\epsilon ) \bar{\rho }_{j}^{p-1} g_{j}\left( g_{j}^{2}+1\right) \frac{\text{{d}}\bar{\rho }_{j}}{d \tilde{\rho }_{j}}+\varvec{\eta }^{T} \frac{\partial \varvec{K}}{\partial \tilde{\rho }_{j}} \varvec{u}_{r e f}, \end{aligned}$$

where \(\varvec{u}_{r e f}\) represents the reference displacement vector at any predetermined loading moment. The adjoint problem then becomes:

$$\begin{aligned} \varvec{\eta }^{T} \varvec{K}=-\sum _{i=1}^{N}\left[ \lambda _{i}^{(k)}+\mu ^{(k)} h_{i}\right] \left( \frac{\partial h_{i}}{\partial \varvec{u}_{r e f}}\right) \end{aligned},$$

when \(\widetilde{g_{i}}(\overline{\varvec{\rho }}) \ge -\lambda _{i}^{(k)} / \mu ^{(k)} \), \(\partial h_{i} / \partial \varvec{u}_{r e f}\) is expressed as follows:

$$\begin{aligned} \frac{\partial h_{j}}{\partial \varvec{u}_{r e f}}=\frac{\partial \widetilde{g_{i}}}{\partial \sqrt{J_{2, a}^{j}}} \frac{\partial \sqrt{J_{2, a}^{j}}}{\partial \varvec{\sigma }_{a}} \frac{\partial \varvec{\sigma }_{a}}{\partial \varvec{u}_{r e f}}+\frac{\partial \widetilde{g_{i}}}{\partial \sigma _{H, \text{ max } }^{j}} \frac{\partial \sigma _{H, \text{ max } }^{j}}{\partial \sigma _{H, r e f}^{j}} \frac{\partial \sigma _{H, r e f}^{j}}{\partial \varvec{\sigma }_{r e f}} \frac{\partial \varvec{\sigma }_{r e f}}{\partial \varvec{u}_{r e f}} \end{aligned},$$

where \(\varvec{\sigma }_{H,ref}\) and \(\varvec{\sigma }_{ref}\) respectively represent the reference hydrostatic stress vector and the reference stress vector at any given reference time. Based on Eqs. 14 and 23e, the sensitivity of the constraint \(\varvec{g}\) to the \(\sqrt{J_{2, a}^{j}}\) and the \(\varvec{\sigma }_{H,max}\) of Voronoi cell j are

$$\begin{aligned} \left\{ \begin{array}{c} \frac{\partial \widetilde{g_{i}}}{\partial \sqrt{J_{2, a}^{j}}} = \frac{p(1-\epsilon ) \bar{\rho }_{j}^{p-1}\left( 3 g_{j}^{2}+1\right) }{\beta _{c}} \\ \frac{\partial \widetilde{g_{i}}}{\partial \sigma _{H, \max }^{j}} = \frac{\alpha _{c} p(1-\epsilon ) \bar{\rho }_{j}^{p-1}\left( 3 g_{j}^{2}+1\right) }{\beta _{c}} \end{array}\right. \end{aligned}$$

The term \(\partial \sqrt{J_{2, a}^{j}} / \partial \varvec{\sigma }_{a}\) in Eq. 43 is similar with Eq. 37, where \(\partial \sqrt{J_{2, a}^{j}} / \partial \varvec{\sigma }_{a}=\varvec{M}_{c} \varvec{\sigma }_{a} / \sqrt{J_{2, a}^{j}}\).

The sensitivity of the stress amplitude to the reference displacement can be expressed as follows:

$$\begin{aligned} \begin{aligned} \frac{\partial \varvec{\sigma }_{a}}{\partial \varvec{u}_{r e f}}&=\frac{1}{2}\left( \frac{\partial \varvec{\sigma }_{max}}{\partial \varvec{u}_{r e f}}-\frac{\partial \varvec{\sigma }_{min}}{\partial \varvec{u}_{r e f}}\right) =\frac{1}{2}\left( \frac{\partial \varvec{\gamma }_{1} \varvec{\sigma }_{r e f}}{\partial \varvec{u}_{r e f}}-\frac{\partial \varvec{\gamma }_{2} \varvec{\sigma }_{r e f}}{\partial \varvec{u}_{r e f}}\right) \\&=\frac{1}{2}\left( \varvec{{\gamma }_{1}-\varvec{\gamma }_{2}}\right) \varvec{C} \varvec{B}, \end{aligned} \end{aligned}$$

where \(\varvec{\gamma }_{1}=\varvec{\sigma }_{max} / \varvec{\sigma }_{ref}\) and \(\varvec{\gamma }_{2}=\varvec{\sigma }_{min} / \varvec{\sigma }_{ref}\) are coefficient vectors.

For 2D plane stress state, \(\partial \varvec{\sigma }_{H, r e f}^{j} / \partial \varvec{\sigma }_{r e f}^{j}=\left[ \begin{array}{lll} 1 / 3&1 / 3&0 \end{array}\right] ^{T}\).

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chen, Y., Monteiro, E., Koutiri, I. et al. Stress-constrained topology optimization using the constrained natural element method. Struct Multidisc Optim 67, 65 (2024).

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: