This page is a complete reference for every parameter accepted by the deFlex solvers. Parameters are grouped by category. Each entry includes the parameter name, data type, default value, valid range, and a description of its effect on the optimization.
All solvers (Compliant Mechanism 2D, Compliant Mechanism 3D, and Decoupled Flexure) share the core parameter set. Parameters specific to a single analysis type are marked accordingly.
Optimization parameters
These parameters control the design optimization process -- how much material is used, how cleanly the solver produces solid-or-void designs, and how the optimizer converges.
| Parameter | Type | Default | Range | Analysis | Description | Effect |
|---|
| Volume fraction | float | 0.3 | 0.01 -- 0.99 | All | Target fraction of the design domain to fill with material. | Lower values produce lighter, more flexible designs. Values below 0.1 may cause convergence difficulties. Values above 0.7 leave little room for the optimizer to remove material. |
| Penalization | float | 5.0 (Compliant 2D/3D), 3.0 (Flexure/Decoupled) | 1.0 -- 10.0 | All | Controls design sharpness -- how cleanly the solver produces solid-or-void results. | At low values the design may contain ambiguous regions. At the default value of 5 (compliant), the result is sharp and well-defined. Values above 5 risk premature convergence to local minima. |
| Filter radius | float | 1.5 x element size | > 0 | All | Feature size control radius, in mm. | Controls minimum feature size and prevents numerical artifacts. Larger values yield smoother designs with fewer thin members. Too large and the optimizer cannot form detailed features. |
| Iterations | int | 20 (Compliant/Flexure), 60 (Decoupled) | 1 -- 1000 | All | Maximum number of optimization iterations. | Most problems converge in 15--20 iterations. Set higher if the design is still evolving at the iteration limit. Each iteration involves one full structural analysis pass and a design update computation. |
| Convergence tolerance | float | 1e-5 (Compliant), 4e-3 (Flexure), 0.01 (Decoupled) | > 0 | All | Maximum change in any design value between iterations that triggers early stop. | Smaller values demand tighter convergence but may require many more iterations. A value of 0.01 gives rough results quickly; 1e-5 produces highly refined designs. |
| Formulation mode | enum | Nuanced (2D), Robust (3D) | Robust, Nuanced | 2D, Flexure | Solver formulation strategy. | Nuanced (default for 2D): Fine-tuned stiffness control mode. Preferred when precise control over mechanism stiffness is needed. Robust (default for 3D): General-purpose mode. Reliable for a wide range of compliant mechanisms. |
Mesh parameters
These parameters define the solver mesh that discretizes the design domain.
| Parameter | Type | Default | Range | Analysis | Description | Effect |
|---|
| Element size | float | 2.0 | > 0 | All | Edge length of each mesh cell in mm. | Halving the element size quadruples the cell count (2D) or octuples it (3D). Smaller cells resolve finer features but increase solve time and memory. |
| Design domain width | float | (from part) | > 0 | All | Width of the design domain in mm (X direction). | Defines the physical extent of the optimization region. |
| Design domain height | float | (from part) | > 0 | All | Height of the design domain in mm (Y direction). | Defines the physical extent of the optimization region. |
| Design domain depth | float | (from part) | > 0 | 3D only | Depth of the design domain in mm (Z direction). | Only applicable to 3D analyses. |
| Thickness | float | 1.0 | > 0 | 2D, Flexure | Out-of-plane thickness in mm. | Affects absolute force and stiffness values but not the optimized design shape. |
| Design domain mode | enum | Manual | Manual, Automatic | Flexure | How the domain bounds are determined. | Manual: User specifies width and height. Automatic: Domain is computed from the bounding box of all bolt pads and preserves, with padding. |
| Design domain padding | float | 0.2 | 0.1 -- 0.5 | Flexure | Fractional padding when design domain mode is Automatic. | 0.2 means 20% padding on each side beyond the bounding box. Increase if bolt pads are near domain edges. |
Material parameters
| Parameter | Type | Default | Range | Analysis | Description | Effect |
|---|
| Material | string | None | See Materials | All | Selected material from the database. When set, overrides Young's modulus and Poisson's ratio. | Selects a full material record including hardening curve, yield stress, and thermal expansion coefficient. |
| Young's modulus | float | 3.5e9 Pa (3500 MPa) | > 0 | All | Young's modulus in Pa. Used as fallback when no material is selected. | Stiffer materials require higher forces to produce the same displacements. Does not change the optimized design when only a single material is used (the solver depends on ratios). |
| Poisson's ratio | float | 0.36 | 0.0 -- 0.5 | All | Poisson's ratio. | Affects lateral contraction under load. Most engineering materials fall between 0.25 and 0.40. Values approaching 0.5 indicate near-incompressibility and can cause element locking. |
| Density | float | 1000 | > 0 | All | Material density in kg/m^3. | Used for mass calculation and display. Does not affect the optimization (which is stiffness-driven). |
Convergence parameters
| Parameter | Type | Default | Range | Analysis | Description | Effect |
|---|
| Convergence tolerance | float | 1e-5 (Compliant), 4e-3 (Flexure), 0.01 (Decoupled) | > 0 | All | Primary stop criterion: max design value change. | See Optimization section above. |
| Mean diff convergence tolerance | float | (disabled) | > 0 | All | Secondary stop criterion: mean design value change. | When set, convergence requires both max and mean change to fall below their respective tolerances. |
| Gray convergence tolerance | float | (disabled) | > 0 | All | Grayness criterion: fraction of mesh cells with intermediate material values (between 0.1 and 0.9). | Stops iteration when the fraction of ambiguous (non-binary) cells drops below this threshold. Useful for ensuring a manufacturable solid-or-void result. |
Compliant mechanism parameters
These parameters are specific to the compliant mechanism formulation and control how input-output force/motion relationships are optimized.
| Parameter | Type | Default | Range | Analysis | Description | Effect |
|---|
| Mechanical advantage (J*) | float | -1.0 | any | 2D | Desired ratio of output to input displacement. | Negative values produce inverting mechanisms (output moves opposite to input). A value of -1.0 is a unit inverter. Larger magnitudes amplify displacement. |
| Max characteristic stiffness (K_p) | float | 10.0 | > 0 | 2D, Flexure | Upper bound on K_p (N/mm) per preserve pair. Active only in Nuanced mode. | Lower values force the optimizer to keep the mechanism flexible (low stiffness at the output). Higher values allow stiffer designs. Set to a very large number (e.g., 1e20) to effectively disable the constraint. |
| Use summed constraint | bool | false | -- | 2D | Sum K_p across all pairs into one constraint vs. one constraint per pair. | When true, the total stiffness budget is shared. When false, each pair is independently constrained. |
| Actuation stiffness | float | (auto) | > 0 | 2D | Workpiece spring stiffness in Robust mode (N/mm). | Controls the stiffness of the virtual spring at the output. Higher values bias the optimizer toward stiffer mechanisms. |
Symmetry parameters
| Parameter | Type | Default | Analysis | Description |
|---|
| Mirror vertical | bool | false | 2D, Flexure | Enforce vertical (left-right) symmetry. The material layout is mirrored about the vertical centerline at each iteration. |
| Mirror horizontal | bool | false | 2D, Flexure | Enforce horizontal (top-bottom) symmetry. The material layout is mirrored about the horizontal centerline at each iteration. |
Enabling symmetry halves (or quarters, if both are active) the effective design space, which can speed convergence and produce symmetric designs that are easier to manufacture.
Advanced parameters
Penalization scheduling
| Parameter | Type | Default | Range | Description |
|---|
| Enable penalization scheduling | bool | false | -- | When enabled, design sharpness ramps linearly from the base value to the final penalization over the last N iterations. |
| Final penalization | float | 15.0 | > base penalization | Target penalization at the final iteration. |
| Scheduling start iteration | int | 10 | > 0 | Number of iterations from the end at which scheduling begins. |
Penalization scheduling helps the solver produce cleaner, more clearly defined solid-or-void designs in the final phase of optimization without disrupting the early design exploration.
Stiffness scheduling (robust mode)
| Parameter | Type | Default | Range | Description |
|---|
| Enable stiffness scheduling | bool | false | -- | Dynamically adjust workpiece spring stiffness based on output displacement performance. |
| Target output displacement | float | 1.0 | > 0 | Target output displacement in mm. |
| Stiffness scale factor | float | 1.0 | > 0 | How aggressively to scale stiffness when the mechanism over-performs. |
| Stiffness max multiplier | float | 10.0 | > 0 | Maximum multiplier on base spring stiffness. |
Nonlinear analysis
| Parameter | Type | Default | Range | Description |
|---|
| Use nonlinear analysis | bool | false | -- | Enable geometric and material nonlinearity. Each iteration performs a full nonlinear simulation instead of a linear one. |
| Material model | enum | Linear Plane Stress | See below | Constitutive model for nonlinear analysis. |
Material model options:
- Linear Plane Stress -- Standard Hooke's Law within the nonlinear (updated Lagrangian) framework. Good baseline.
- Saint Venant-Kirchhoff -- Handles moderate rotations but can become unstable under compression.
- Yeoh Hyperelastic -- 3-parameter Yeoh hyperelastic. Suitable for rubber-like materials with large strains.
- Neo-Hookean -- Neo-Hookean hyperelastic. Stable under large deformations, fewer parameters than Yeoh.
Stress constraint
| Parameter | Type | Default | Range | Description |
|---|
| Enable stress constraint | bool | false | -- | Activate a von Mises stress constraint using KS (Kreisselmeier-Steinhauser) aggregation. |
| Yield strength | float | 250.0 | > 0 | Material yield stress in MPa. Used with the factor of safety to compute the stress limit (stress limit = yield strength / factor of safety). |
| Factor of safety | float | 1.5 | 1.0 -- 5.0 | Factor of safety applied to yield strength to determine the allowable stress limit. |
When enabled, the optimizer penalizes designs that produce stress concentrations above the limit. This tends to produce thicker, more distributed load paths compared to unconstrained optimization.
Perpendicular stiffness
| Parameter | Type | Default | Description |
|---|
| Enable perpendicular stiffness | bool | false | Constrain stiffness perpendicular to the primary motion direction at an input or output preserve. |
| Min perpendicular stiffness | float | -- | Minimum required stiffness (N/mm) in the perpendicular direction. |
| Perpendicular direction | enum | -- | Positive, Negative, Radial, or Tangential. Defines which perpendicular direction to constrain. |
This is a per-preserve setting, not a global parameter. It appears in the preserve properties panel.
Design initialization
| Parameter | Type | Default | Description |
|---|
| Initial density field | string | -- | A material layout from a previous run, used for solver continuation or forking. When set, the optimizer starts from this material layout instead of a uniform one. |
| Force preserve density | bool | true | Force full material density (1.0) in preserve and bolt pad regions. Prevents the optimizer from eroding boundary condition patches. |