/eigenvector-aggregate-buckling

Topology Optimization for Buckling using an Eigenvector Aggregate

Primary LanguagePython

Eigenvector Aggregate in Buckling Topology Optimization

Description

Eigenvector aggregate is a method to impose eigenvector constraints used in topology optimization. The method is described in the following paper:

B. Li, and G. Kennedy. Topology Optimization for Buckling using an Eigenvector Aggregate. Computer Methods in Applied Mechanics and Engineering, 2024 (Submitted).

Contents

  • demo.py contains the code for a demo to show exact eigenvector derivatives and approximate eigenvector derivatives described in paper section 3.
  • topo_opt.py is the main file for the topology optimization for the beam, column, and square plate.
  • settings.py contains the default parameters and input arguments for the topology optimization.
  • domain.py contains the beam, column, and square plate domain definitions.
  • jobs.sbatch is the SLURM script used to run the code on Georgia Tech's PACE cluster.
  • run.sh is the bash script used to run the code.
  • output folder used to save the output figures and log files.
  • src folder contains the source code rewritten using the Kokkos library for parallel computation. The code is written in C++ and can be compiled using the CMakeLists.txt file.
  • other folder contains the code for generating the figures in the paper, helper functions,

Usage

The code is written in Python 3. To run the code, you need to install the following packages:

To run the code, simply run the bash script run.sh:

./run.sh

by modifying the bash script run.sh, the user can run the code with different parameters. The output figures and log files will be saved in the output folder.

Citation

If you find this code useful in your research, please consider citing:

To be added

Contact

If you have any questions, please contact Bao Li, or Graeme J. Kennedy.