topology_optimize_submit
Submit a topology optimization job to maximize stiffness for a 2D or 3D design domain under a mass constraint, returning a job ID for asynchronous polling.
Instructions
Minimum-compliance topology optimization (in-house SIMP; NO external solver),
asynchronous because each iteration solves an FE system. Optimizes a 2-D
rectangular design domain (nelx×nely unit cells) — or, when nelz is set, a
3-D nelx×nely×nelz grid of trilinear hexahedra — to the stiffest layout that
holds Σdensity = keep_fraction (the Optimality-Criteria update holds it exactly);
penal is the SIMP penalty (≈3), rmin the cone filter radius. Default BCs
(both): the whole left face clamped + a unit downward load at the right-face
centre. 2-D overrides: fixed_dofs / load=[dof_index, value]. 3-D overrides:
loads=[[i,j,k,axis,value],...] point loads at node grid coords (axis 'x'|'y'|'z'),
fixed_nodes=[[i,j,k],...] clamped nodes, and keep_out/keep_in lists of
half-open element-index boxes [i0,i1,j0,j1,k0,k1] forced void / forced solid
(keep-out regions and must-keep pads).
Returns immediately {job_id, status, cache_hit}; poll job_result for {density
(2-D: nely×nelx grid; 3-D: nelz×nely×nelx voxel field, density[k][j][i] with j=0
at the bottom — this IS geometry), mass_fraction (==keep_fraction), compliance,
compliance_initial, iterations, converged, gray_fraction, solver (3-D: which
linear-solve backend ran)}. Threshold + voxel→solid back in the modeller with
topology_to_solid, then gate with mass_properties (mass ≤
keep_fraction·original) and interference_check vs keep-outs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tol | No | ||
| load | No | ||
| nelx | No | ||
| nely | No | ||
| nelz | No | ||
| rmin | No | ||
| loads | No | ||
| penal | No | ||
| keep_in | No | ||
| keep_out | No | ||
| max_iter | No | ||
| fixed_dofs | No | ||
| fixed_nodes | No | ||
| keep_fraction | No |