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.
|
|
2 years ago | |
|---|---|---|
| 3rd/mma | 2 years ago | |
| assets | 2 years ago | |
| cmake | 2 years ago | |
| docs/imgs | 2 years ago | |
| examples | 2 years ago | |
| ref | 2 years ago | |
| src | 2 years ago | |
| .gitignore | 2 years ago | |
| CMakeLists.txt | 2 years ago | |
| README.md | 2 years ago | |
README.md
Thermo-elastic Topology Optimization
(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 libraryassets/: user-defined assetsexamples/: several teaching examplesoutput/: output directoryref/: reference materialsrc/: source codecmake/: 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):
- install SuiteSparse.
- Set
ENABLE_AMGCLtoOFFand setENABLE_SUITESPARSEtoONin CMakeLists.txt.
Otherwise, it is recommended to choose an iterative solver (e.g. AMGCL),in CPU:
- install OpenMP and AMGCL.
- Set
ENABLE_AMGCLtoON,ENABLE_AMGCL_CUDAtoOFFandENABLE_SUITESPARSEtoOFFin CMakeLists.txt.
Further, CUDA can be used to speed up the iterative solver:
- install OpenMP, CUDA Toolkit and AMGCL.
- Set
ENABLE_AMGCLtoON,ENABLE_AMGCL_CUDAtoONandENABLE_SUITESPARSEtoOFFin 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
- See
example/top-thermoelastic-BiclampedStructureorexamples/top-thermoelastic-Lshape-condition. - If CUDA version is selected, see
examples/top-thermoelastic-BiclampedStructure-cudaas a template.
NOTE:
"//*"inexamples/*/config.jsonfile mean comments.- you can modify
CONFIG_FILE,OUTPUT_DIRandASSETS_DIRinexamples/*/CMAKEList.txt. - you can modify the linear solver arguments
prm.solver.tolandprm.solver.maxiterinsrc/LinearSolver/Amgcl.horsrc/LinearSolver/AmgclCuda.h.