Skip to main content

Solver Parameters

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.

ParameterTypeDefaultRangeAnalysisDescriptionEffect
Volume fractionfloat0.30.01 -- 0.99AllTarget 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.
Penalizationfloat5.0 (Compliant 2D/3D), 3.0 (Flexure/Decoupled)1.0 -- 10.0AllControls 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 radiusfloat1.5 x element size> 0AllFeature 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.
Iterationsint20 (Compliant/Flexure), 60 (Decoupled)1 -- 1000AllMaximum 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 tolerancefloat1e-5 (Compliant), 4e-3 (Flexure), 0.01 (Decoupled)> 0AllMaximum 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 modeenumNuanced (2D), Robust (3D)Robust, Nuanced2D, FlexureSolver 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.

ParameterTypeDefaultRangeAnalysisDescriptionEffect
Element sizefloat2.0> 0AllEdge 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 widthfloat(from part)> 0AllWidth of the design domain in mm (X direction).Defines the physical extent of the optimization region.
Design domain heightfloat(from part)> 0AllHeight of the design domain in mm (Y direction).Defines the physical extent of the optimization region.
Design domain depthfloat(from part)> 03D onlyDepth of the design domain in mm (Z direction).Only applicable to 3D analyses.
Thicknessfloat1.0> 02D, FlexureOut-of-plane thickness in mm.Affects absolute force and stiffness values but not the optimized design shape.
Design domain modeenumManualManual, AutomaticFlexureHow 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 paddingfloat0.20.1 -- 0.5FlexureFractional 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

ParameterTypeDefaultRangeAnalysisDescriptionEffect
MaterialstringNoneSee MaterialsAllSelected 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 modulusfloat3.5e9 Pa (3500 MPa)> 0AllYoung'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 ratiofloat0.360.0 -- 0.5AllPoisson'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.
Densityfloat1000> 0AllMaterial density in kg/m^3.Used for mass calculation and display. Does not affect the optimization (which is stiffness-driven).

Convergence parameters

ParameterTypeDefaultRangeAnalysisDescriptionEffect
Convergence tolerancefloat1e-5 (Compliant), 4e-3 (Flexure), 0.01 (Decoupled)> 0AllPrimary stop criterion: max design value change.See Optimization section above.
Mean diff convergence tolerancefloat(disabled)> 0AllSecondary stop criterion: mean design value change.When set, convergence requires both max and mean change to fall below their respective tolerances.
Gray convergence tolerancefloat(disabled)> 0AllGrayness 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.

ParameterTypeDefaultRangeAnalysisDescriptionEffect
Mechanical advantage (J*)float-1.0any2DDesired 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)float10.0> 02D, FlexureUpper 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 constraintboolfalse--2DSum 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 stiffnessfloat(auto)> 02DWorkpiece 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

ParameterTypeDefaultAnalysisDescription
Mirror verticalboolfalse2D, FlexureEnforce vertical (left-right) symmetry. The material layout is mirrored about the vertical centerline at each iteration.
Mirror horizontalboolfalse2D, FlexureEnforce 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

ParameterTypeDefaultRangeDescription
Enable penalization schedulingboolfalse--When enabled, design sharpness ramps linearly from the base value to the final penalization over the last N iterations.
Final penalizationfloat15.0> base penalizationTarget penalization at the final iteration.
Scheduling start iterationint10> 0Number 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)

ParameterTypeDefaultRangeDescription
Enable stiffness schedulingboolfalse--Dynamically adjust workpiece spring stiffness based on output displacement performance.
Target output displacementfloat1.0> 0Target output displacement in mm.
Stiffness scale factorfloat1.0> 0How aggressively to scale stiffness when the mechanism over-performs.
Stiffness max multiplierfloat10.0> 0Maximum multiplier on base spring stiffness.

Nonlinear analysis

ParameterTypeDefaultRangeDescription
Use nonlinear analysisboolfalse--Enable geometric and material nonlinearity. Each iteration performs a full nonlinear simulation instead of a linear one.
Material modelenumLinear Plane StressSee belowConstitutive 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

ParameterTypeDefaultRangeDescription
Enable stress constraintboolfalse--Activate a von Mises stress constraint using KS (Kreisselmeier-Steinhauser) aggregation.
Yield strengthfloat250.0> 0Material yield stress in MPa. Used with the factor of safety to compute the stress limit (stress limit = yield strength / factor of safety).
Factor of safetyfloat1.51.0 -- 5.0Factor 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

ParameterTypeDefaultDescription
Enable perpendicular stiffnessboolfalseConstrain stiffness perpendicular to the primary motion direction at an input or output preserve.
Min perpendicular stiffnessfloat--Minimum required stiffness (N/mm) in the perpendicular direction.
Perpendicular directionenum--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

ParameterTypeDefaultDescription
Initial density fieldstring--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 densitybooltrueForce full material density (1.0) in preserve and bolt pad regions. Prevents the optimizer from eroding boundary condition patches.