By the way, this procedure realized the thermo-elastic TO(topology optimization)([Thermo-elastic topology optimization with stress
and temperature constraints.](ref%2FThermo-elastic%20topology%20optimization%20with%20stress%0Aand%20temperature%20constraints), mechanical TO([top3d.pdf](ref%2Ftop3d.pdf)) and corresponding simulations.
1. Use `example/defined_model_writer` to generate a user-defined voxel mesh/model as TO input.
2. Use `example/top_mechanical` to run mechanical TO.
3. Use `example/top_thermoelastic` to run thermo-elastic TO.(`||Fth|| / ||Fm||` means the ratio of the thermal force to the mechanical force, the value suggested is `0.1-10`).
4. Use `example/clamped_model_writer` to clamp the optimized density to 0 or 1(select a suitable threshold) as SIM input.
5. Use `example/sim_mechanical` to run mechanical simulation.
6. Use `example/sim_thermoelastic` to run thermo-elastic simulation.
Note:
1. open `*.vtk` via [Paraview](https://www.paraview.org/download/).
2. Input
1. Set parameters in *.json. see comments in `assets/top-thermoelastic-*.json`(see comments in `assets/config_biclamed.json` and ref paper for MeTh parameters; see comments in `assets/top/config_Lshape.json`)
2. Redirect in `main.cpp` or `main.cu` if ENABLE_AMGCL_CUDA is ON:
3.`"//*"` in `config_*.json` file mean comments.
3. Output see `output/txt/${example_name}`, `output/txt/${example_name}/${clamed_example_name*}/` and `output/vtk/${example_name}/${clamed_example_name*}/`.
4. you can modify `OUTPUT_DIR` and `ASSETS_DIR` in `CMAKEList.txt`.
5. you can modify the linear solver arguments `prm.solver.tol` and `prm.solver.maxiter` in `src/LinearSolver/Amgcl.h` or `src/LinearSolver/AmgclCuda.h`.
6. you should modify example content in `*.cpp` rather than `*.cu`, the latter is copied from the former by cmake.