This package performs 2-dimensional topology optimization and is a port of "A 99 line topology optimization code written in Matlab".
Running the solve function with default settings will find a solution to the Messerschmitt–Bölkow–Blohm simply supported beam (enforcing symmetry).
topopt::solve(topopt::Settings::default());In an interactive terminal, each iteration redraws the density visualization and
shows aligned Iteration, Objective, Volume, and Change values. Redrawing
clears the display without resetting terminal settings. When stdout is redirected
to a file or pipe, or TERM=dumb, output is one plain-text progress line per
iteration, without a visualization or terminal control codes:
Iteration: 1 Objective: 123.457 Volume: 0.500 Change: 0.123
Alternatively, we could set up with the same simulation explicitly:
topopt::solve(
topopt::Settings::new(60, 20, 0.5)
.with_left_bc(true, false)
.with_bottom_right_bc(false, true)
.with_top_left_load(0.0, -1.0),
);