LevelOpt Manual

Welcome to the Topology Optimization Plugin for Grasshopper and Rhino, where cutting-edge level set optimization technology meets the flexibility of Grasshopper. For those looking to generate high-performance concepts quickly, the plugin offers automated optimization, creating strong, efficient designs with ease.

But what truly sets this plugin apart is its customization capability. Built to complement Grasshopper’s computational design flexibility, the plugin lets you open the loop of optimization—interjecting design changes, incorporating starting designs, and fine-tuning settings at any stage. This gives you the freedom to adaptively adjust feature sizes, wall thicknesses, and preserved functional regions as optimization progresses, making it ideal for tailored, intricate designs. With this plugin, you’re not just optimizing; you’re crafting designs that push the boundaries of performance and adaptability.

Current Features

  • Optimization for Compliance: Maximize stiffness for a specified weight target.

  • Supports Both Isotropic and Orthotropic Materials

  • Component-Level Flexibility: Optimize individual components or maintain interface connectivity in assemblies.

  • Functional Region Preservation: Ensure critical zones remain intact during optimization.

  • Custom Optimization: Provide a starting design and adjust settings between iterations.

Grasshopper Block Documentation

LevelOpt Block

Input

1. LevelOpt Advanced Setting: (See next block)
2. Component (C): Component that specifies design domain and material.
3. Stress Simulation (Ss): Provides boundary conditions and assembly components, including the design domain.
4. Iterations (N): Number of design iterations (more details).
5. Volume Fraction (V): Desired volume fraction (more details).
6. Starting Design Geometry (SG): Initial design (more details).
7. Solver Mode (SM): Manual or Auto mode for LevelOpt.

Output

1. Optimized Designs (OD): Resulting optimized geometry.
2. Iteration Log (I): Log of each iteration.
3. Design sensitivity (Ds): Boundary sensitivity and Velocity Feedback.

LevelOpt Block Image

Advanced Settings Block

Input

1. Level Set Cell Size (S): Controls resolution of level set (more details).
2. Move Limit (M): Controls the change per iteration (more details).
3. Smoothing Iterations (T): Number of smoothing iterations (more details).
4. Fix Thickness (F): Width of region around boundary condition to remain unchanged (more details).
5. Retain Interfaces (R): Preserves the interface between design and non-design components (more details).

Output

Input for LevelOpt Block

Advanced Settings Image

Settings Description

Regular Settings

Setting

Description

Recommended/Default Values

Effect

Volume Fraction Constraint (V)

Sets the target volume of the final design as a fraction of the initial volume.

user-defined based on design requirements (fraction of initial volume) defaults to 0.5

Lower values remove more material, resulting in lighter designs.

Number of design iterations (N)

Sets the maximum number of iterations for the optimization process. Each iteration refines the design by updating the topology based on the objective function and constraints.

0 to 100 (iterations), 10 default ( N = 0 skips automated iteration but provides sensitivity feedback for user-driven design changes).

Higher values allow for more refined designs but increase computation time. Lower values result in quicker completion, but the design may be less optimized.

Resolution (Res) or Finite Element Cell Size (S)

Sets the resolution of the finite element mesh used in the analysis.

user-defined based on problem complexity

Smaller values provide more accurate analysis but at a higher computational cost. Influences Level Set Cell Size.

Starting Design Geometry (SG)

Allows users to begin optimization from an existing design or custom geometry.

User-defined

Uses a starting point to refine or enhance an existing design, rather than starting from a blank slate. (See Example 🖼️)

Advanced Settings

Advanced Setting

Description

Recommended/Default Values

Effect

Level Set Cell Size (LS)

Determines the size of the level set grid cells relative to the FEA grid.

0.25 to 1.0 (fraction of FEA grid size), 0.5 default

Smaller values create finer, more detailed features but slower convergence; larger values speed up the process. (See Example 🖼️)

Move Limit (M)

Controls the extent of changes per optimization step, as a factor of the level set cell size.

0.5 to 2.0 (factor of level set cell size), 1.0 default

Higher values lead to faster convergence but may be unstable; lower values provide more gradual, stable changes. (See Example 🖼️)

Smoothing Iterations (T)

Defines how often the geometry is smoothed during the optimization process.

1 to 10 (iterations), 1 default

Frequent smoothing (lower values) results in smoother designs; less frequent smoothing preserves finer details. (See Example 🖼️)

Fix Thickness (F)

Specifies the width around load and boundary conditions that remains unchanged.

Varies as needed (factor of level set cell size), 4 default

Preserves critical regions around loads/supports, ensuring they are not altered during optimization. (See Example 🖼️)

Retain Interfaces between Components (R)

Allows users to specify if the interface between the design domain (optimized) and non-design domain should be fully preserved.

True or False, True is default

True fully preserves the interface, maintaining a solid connection. False allows optimization of the interface, where physics will ensure connectivity between components.

Examples

Below are examples which go over the LevelOpt workflow setup, post-processing, and results.

Example: GE Bracket Optimization

alt text

To download the demo files for this workflow download the zip file here.

GE Bracket Workflow
Intact’s LevelOpt workflow can be broken into three core steps:
  1. Run an Intact stress simulation (See this documentation for more details/examples)

    • specify the component(s) geometry & material

    • reference the surfaces/meshes and specify inputs for restraints and loads

    • set the fidelity for the solver via the settings (resolution/cell size)

    • solve

    • (optional) visualize quantities such as displacement or von Mises stress

  1. Specify the LevelOpt input parameters:

    • LevelOpt Advanced Settings block

      • level set cell size = 0.75

      • move limit = 1.0

      • smoothing period = 1

    • design domain component to optimize (from the stress simulation)

    • Intact stress simulation output

    • max iterations = 50 (1 iteration used in video starting from the final iteration for brevity)

    • volume fraction constraint = 0.25

  2. Solve LevelOpt & post-process

    • click ‘solve’ after all inputs are connected

    • (optional) visualize velocities/sensitivities

    • (optional) bake/view final mesh in Rhino

    • (optional) view iteration log output to see volume fraction and compliance

Example: NASA EXCITE Bracket Assembly

alt text

To download the demo files for this workflow download the zip file here.

NASA EXCITE Bracket Workflow
  1. Run an Intact stress simulation (See this documentation for more details/examples)

    • specify the component(s) geometry & material

    • reference the surfaces/meshes and specify inputs for restraints and loads

    • set the fidelity for the solver via the settings (resolution/cell size)

    • solve

    • (optional) visualize quantities such as displacement or von Mises stress

  1. Specify the LevelOpt input parameters:

    • LevelOpt Advanced Settings block

      • level set cell size = 0.50

      • move limit = 1.0

      • smoothing period = 1

    • design domain component to optimize (from the stress simulation) note that this corresponds to the bracket geometry component, not the block component to which the load is applied

    • Intact stress simulation output

    • max iterations = 100 (1 iteration used in video starting from the final iteration for brevity)

    • volume fraction constraint = 0.20

  2. Solve LevelOpt & post-process

    • click ‘solve’ after all inputs are connected

    • (optional) visualize velocities/sensitivities

    • (optional) bake/view final mesh in Rhino

    • (optional) view iteration log output to see volume fraction and compliance