Skip to main content

Crate topopt

Crate topopt 

Source
Expand description

build Crates.io docs.rs

§About

This package performs 2-dimensional topology optimization and is a port of “A 99 line topology optimization code written in Matlab”.

§Basic Usage

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),
);

Modules§

cookbook
The Cookbook: Start Here for Examples, Demos, and Tips

Structs§

Settings
A settings struct, used to define boundary conditions, loads, and elements.

Functions§

solve
Solve the topology optimization problem specified in settings.