yuanming-hu / spgrid_topo_opt

Narrow-Band Topology Optimization on a Sparsely Populated Grid, ACM Transactions on Graphics (SIGGRAPH Asia 2018)
185 stars 37 forks source link

Narrow-Band Topology Optimization on SPGrid

[Paper] [Video]

Narrow-Band Topology Optimization on a Sparsely Populated Grid, ACM Transactions on Graphics (SIGGRAPH Asia 2018).

By Haixiang Liu (University of Wisconsin-Madison),

Yuanming Hu (MIT CSAIL),

Bo Zhu (Dartmouth College),

Wojciech Matusik (MIT CSAIL),

Eftychios Sifakis (University of Wisconsin-Madison).

Installation (Tested on Ubuntu 16.04/18.04/Arch Linux. Windows/OS X not supported.)

TopoOpt.init

TopoOpt.populate_grid

Set Boundary Conditions

Utilities

Visualization

ti vd [mode] [file/folder name]

mode can be fem (default, contains BCs, solver parameters and density field only) or snapshots (basically everything). vd stands for visualize_density.

This can be called directly at the output folder (say, bridge_v6_r1024), or the fem, or snapshots folder (bridge_v6_r1024/snapshots), or a single tcb file (bridge_v6_r1024/fem/00001.tcb).

Use H and L to switch between frames. Use J and K to change threshold in voxel rendering. Transparent volume rendering is also supported, press T (for a while, like 1 second) and R to switch.

From snapshots (generated with verbose_snapshot=True), press C to switch channels between density, sensitivity, smoothed_sensitivity, and displacement.

For symmetric domain, press 1, 2, 3 to mirror x, y, z axes.

Bibtex

Please cite our paper if you use this code for your research:

@article{liu2018narrow,
  title={Narrow-Band Topology Optimization on a Sparsely Populated Grid},
  author={Liu, Haixiang and Hu, Yuanming and Zhu, Bo and Matusik, Wojciech and Sifakis, Eftychios},
  journal={ACM Transactions on Graphics (TOG)},
  volume={37},
  number={6},
  year={2018},
  publisher={ACM}
}