LevelOpt¶
LevelOpt is a level set structural topology optimization simulation (compliance minimization) which requires the topopt.exe to run and supports different CLI arguments. The scenario JSON file has a similar format to standard LinearElastic scenario JSON files with additional scenario "shape_exploration_data": {} information. A LevelOpt optimization performs a linear elasticity simulation and uses "Type": "LinearElasticity".
$ topopt --help
will produce output that looks like:
$ topopt --help
A command line interface for Intact.Simulation topoology optimizer.
Usage:
topopt [OPTION...]
-h, --help Print program usage
--version Print the software version
--sample-sensitivity Sample the sensitivity on the provided sampling
points
-s, --scenario arg Scenario json file
Materials¶
Supports all the same materials as linear elasticity.
Metadata¶
Supports all the same metadata as linear elasticity.
Because LevelOpt always first performs a linear elasticity simulation,
the solver_override and integrator_override metadata provides control of the solver for the linear
elasticity simulation.
Boundary Conditions¶
LevelOpt scenarios support the same boundary conditions as linear elasticity. Note additional load_case_id can be used for setting up multiple load cases
"boundary_conditions": [
{
"boundary": "fixed1.stl",
"type": "fixed",
"load_case_id": 0
}
]
Shape Exploration Data¶
"shape_exploration_data": {
"enable_fixed_interfaces": true,
"opt_max_iter": 50,
"vol_frac_cons": 0.2,
"level_set_cell_size": 1.0,
"move_limit": 1.0,
"component_id": 0,
"smooth_iter": 1,
"fix_thickness": 4.0,
"num_load_cases": 13,
"starting_design_file": "" //"starting_design_file": "starting_design.ply"
}
vol_frac_cons¶
Sets the target volume of the final design as a fraction of the initial volume. (volume fraction constraint)
level_set_cell_size¶
Determines the size of the level set grid cells as a fraction of the FEA grid cell size. (level set cell size)
move_limit¶
Controls the extent of changes per optimization step, as a factor of the voxelSize.
component_id¶
Specifies which component id in the "components": [] list is to be used as the design domain for assembly optimization.
opt_max_iter¶
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. (optimization max iterations)
fix_thickness¶
Specifies the region around boundary conditions that remains unchanged as a factor of level set grid cell size.
smooth_iter¶
Defines the frequency the geometry is smoothed during the optimization process as a number of iterations.
enable_fixed_interfaces¶
Allows specifying if the interface between the design domain (optimized) and non-design domain should be fully preserved. A true input preserves the interface and false allows material to be removed at the interface.
num_load_cases¶
An input required for an optimization scenario with multiple load_case_id. This enables individual load cases to be considered separately during optimization instead of single net load.
starting_design_file¶
Optional geometry file input to start optimizing from, used to continue from final output of a previous optimization step for example.