Level-set topology optimization with many linear buckling constraints using an efficient and robust eigensolver

Peter D. Dunning, Evgueni Ovtchinnikov, Jennifer Scott, H. Alicia Kim

Research output: Contribution to journalArticle

19 Citations (Scopus)
12 Downloads (Pure)

Abstract

Linear buckling constraints are important in structural topology optimization for obtaining designs that can support the required loads without failure. During the optimization process, the critical buckling eigenmode can change; this poses a challenge to gradient-based optimization and can require the computation of a large number of linear buckling eigenmodes. This is potentially both computationally difficult to achieve and prohibitively expensive. In this paper, we motivate the need for a large number of linear buckling modes and show how several features of the block Jacobi conjugate gradient (BJCG) eigenvalue method, including optimal shift estimates, the reuse of eigenvectors, adaptive eigenvector tolerances and multiple shifts, can be used to efficiently and robustly compute a large number of buckling eigenmodes. This paper also introduces linear buckling constraints for level-set topology optimization. In our approach, the velocity function is defined as a weighted sum of the shape sensitivities for the objective and constraint functions. The weights are found by solving an optimization sub-problem to reduce the mass while maintaining feasibility of the buckling constraints. The effectiveness of this approach in combination with the BJCG method is demonstrated using a 3D optimization problem. Copyright © 2016 John Wiley & Sons, Ltd.
Original languageEnglish
Pages (from-to)1029-1053
Number of pages25
JournalInternational Journal for Numerical Methods in Engineering
Volume107
Issue number12
Early online date5 Feb 2016
DOIs
Publication statusPublished - 21 Sep 2016

    Fingerprint

Keywords

  • topology optimization
  • buckling constraints
  • level-set method
  • block conjugate gradient eigensolver
  • sparse direct linear solver

Cite this