You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
cflin 48cfb27a3b add readme 2 years ago
3rd/mma before sim 2 years ago
assets before sim 2 years ago
cmake add readme 2 years ago
da-sha before clear 2 years ago
docs/imgs add readme 2 years ago
examples add readme 2 years ago
output before sim 2 years ago
ref add readme 2 years ago
src add readme 2 years ago
.gitignore add readme 2 years ago
CMakeLists.txt add readme 2 years ago
README.md add readme 2 years ago

README.md

Thermo-elastic Topology Optimization

Screenshot from 2023-07-02 13-57-29.png (Optional) temperature limits, optimization of voxel mesh.

This is the implementation of the paper Thermo-elastic topology optimization with stress and temperature constraints.

Files

  • 3rd/: third-party library
  • assets/: user-defined assets
  • examples/: several teaching examples
  • output/: output directory
  • ref/: reference material
  • src/: source code
  • cmake/: CMake files

Dependencies

A inside library:

  • mma: constrained optimization algorithm

Most dependancies are downloaded through CMake:

  • Eigen: linear algebra
  • json: parsing input JSON scenes
  • libigl: basic geometry functions
  • spdlog: logging information

The remaining libraries require user installation:

  • OpenMP: CPU parallel processing. Optional
sudo apt install libomp-dev
  • SuiteSparse: Linear solver. Optional, NOTE: Use of the Intel MKL BLAS is strongly recommended.
  • boost: Use filesystem
  • AMGCL: Linear solver. Optional.
  • CUDA Toolkit: CUDA support. Optional.

Select a Linear solver

If your matrix has less than 50w of freedom, then it is recommended to choose a direct solver (e.g. SuiteSparse):

  1. install SuiteSparse
  2. Set ENABLE_AMGCL to OFF and set ENABLE_SUITESPARSE to ON in CMakeLists.txt

Otherwise, it is recommended to choose an iterative solver (e.g. AMGCL),in CPU:

  1. install AMGCL, OpenMP
  2. Set ENABLE_AMGCL to ON, ENABLE_AMGCL_CUDA to OFF and ENABLE_SUITESPARSE to OFF in CMakeLists.txt

Further, CUDA can be used to speed up the iterative solver:

  1. install AMGCL, OpenMP, CUDA Toolkit
  2. Set ENABLE_AMGCL to ON, ENABLE_AMGCL_CUDA to ON and ENABLE_SUITESPARSE to OFF in CMakeLists.txt

Finally, if all options are set to OFF, then the Eigen build-in iterative solver will be chosen.(not recommended)

Build

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

Usage

  1. See example/top-thermoelastic-BiclampedStructure or examples/top-thermoelastic-Lshape-condition.
  2. If CUDA version is selected, see examples/top-thermoelastic-BiclampedStructure-cuda as a template.

NOTE: "//*" in config.json file mean comments.