Thermal Flexure
Thermal flexure is a specialized application of design optimization in deFlex: designing a compliant mechanism that compensates for thermal expansion. When a mounting plate heats up, the bolt holes move apart due to thermal expansion. A thermal flexure mechanism absorbs that expansion through controlled deformation, keeping a precision-mounted component (optic, sensor, mirror) at its nominal position.
Why It Matters
Precision instruments — optical systems, semiconductor equipment, metrology tools — demand positioning accuracy measured in micrometers or even nanometers. But the structures that hold these instruments expand and contract with temperature changes. A steel plate that is 300 mm long grows approximately 3.6 micrometers per degree Celsius. Over a 20 degree temperature swing, that is 72 micrometers — orders of magnitude larger than the positioning tolerance.
Traditional approaches to this problem include:
- Invar or Zerodur: materials with near-zero thermal expansion coefficients. Expensive, difficult to machine, limited material properties.
- Active compensation: sensors and actuators that continuously adjust position. Complex, power-hungry, failure-prone.
- Symmetric designs: arrange mounting points so that thermal expansion cancels out. Works only for specific geometries and load cases.
Thermal flexure mechanisms offer a fourth approach: design the mounting plate itself to absorb thermal expansion through passive elastic deformation. The mechanism uses no sensors, no power, and no exotic materials — just an optimized material distribution that naturally compensates for thermal distortion.
How It Works
The Decoupled Approach
deFlex uses a decoupled approach to thermal flexure design. Instead of solving a coupled thermo-mechanical optimization (computationally expensive and numerically difficult), it breaks the problem into two stages:
Stage 1 — Thermal Analysis: Compute how much each bolt pad displaces due to thermal expansion. This uses a standard thermal simulation (optionally with FEniCSx) to determine the displacement vectors at each bolt location for a given temperature change. The thermal stage supports two cooling modes:
- Uniform (default): the entire plate cools uniformly from the reference temperature to the final temperature. No heat equation solve is needed — the temperature is constant everywhere. This models the physical reality of slow, uniform cooling (e.g., a cryo soak).
- Gradient: solves the steady-state heat equation with different temperatures on different edges (e.g., T_cold on the left edge, T_hot on the right). This models non-uniform thermal loading where one side cools faster than the other.
Stage 2 — Design Optimization: Use those thermal displacements as input forces to the compliant mechanism solver. The optimizer designs a mechanism that is maximally stiff against those specific loading directions — absorbing the thermal expansion within the structure rather than transmitting it to the output.
This decoupling is a powerful simplification. The thermal analysis is a standard linear problem (fast, well-understood). The design optimization is a standard structural optimization problem. By separating them, each stage uses the most appropriate and efficient solver.

Bolt Pad Configuration
In a typical thermal flexure problem:
- Input bolt pads (corners): where thermal expansion generates displacement. Each bolt pad gets a direction vector corresponding to its thermal displacement direction — typically pointing radially outward from the plate center.
- Output bolt pads (center, role = "output"): where the precision component is mounted. These are treated as fixed nodes (zero displacement) — the mechanism must keep this location stationary despite thermal expansion at the corners.
- Output preserve (separate from bolt pads): placed at or near the center, defining where the optimizer measures and maximizes compensation performance.
This is a subtle but critical distinction: output bolt pads (role = "output") are fixed mounting points with zero displacement constraints. They are not the same as output preserves. The output preserve is a separate feature that defines the optimization objective. In thermal flexure, the output preserve is typically co-located with the output bolt pad but serves a different mechanical role.
Example: Standard Test Configuration
A common benchmark configuration:
- Plate: 300 mm x 300 mm, aluminum
- Corner bolt pads: 4 bolts at (20, 20), (280, 20), (20, 280), (280, 280)
- Width: 10 mm, Height: 10 mm
- Role: input
- Directions: radially outward from center
- Center bolt pad: 1 bolt at (150, 150)
- Role: output (fixed)
- Output preserve: at (150, 150)
- Direction: (0, 1) — vertical compensation
- Volume fraction: 0.3
- K_p_max: set high by user (default is 10.0; increase for pure stiffness optimization)
- Formulation mode: nuanced (stiffness optimization)
The solver produces a mechanism that connects the corner bolt pads to the center through a topology that deforms internally when the corners move outward, keeping the center stationary.
The Optimization Problem
Objective: Maximum Stiffness
For thermal flexure, the optimization objective is structural optimization for maximum stiffness — making the structure as stiff as possible against the thermal loading. This is different from standard compliant mechanism design where the goal is to maximize output displacement.
The reasoning: we want the mechanism to resist the thermal expansion forces. A flexible mechanism would allow the bolt pads to move freely, transmitting distortion to the center. A stiff mechanism absorbs the thermal forces through internal deformation without displacing the output.
Think of it as designing a structure that "shrugs off" thermal expansion — it deforms internally at flexure points but keeps the output region locked in place. The thermal energy is absorbed by bending of optimized flexure members rather than by translation of the output.
K_p_max Configuration
For thermal flexure, K_p_max should be set to a high value to prioritize stiffness over displacement. The default K_p_max is 10.0 — users must manually increase it for thermal flexure problems where maximum stiffness is the goal. Setting K_p_max very high (e.g., 1e20) effectively makes the stiffness constraint infinitely strict, so the optimizer maximizes stiffness with no trade-off against output displacement.
This corresponds to the "nuanced" formulation mode in the solver, where the stiffness constraint dominates and the optimization reduces to pure structural optimization for stiffness, subject to volume and boundary constraints.
Thermal Direction Vectors
Each input bolt pad's direction vector represents the direction and relative magnitude of thermal displacement at that location. For a uniformly heated rectangular plate:
- Bottom-left bolt (20, 20): direction roughly toward (-1, -1), normalized — it moves toward the bottom-left corner
- Bottom-right bolt (280, 20): direction roughly toward (1, -1), normalized
- Top-left bolt (20, 280): direction roughly toward (-1, 1), normalized
- Top-right bolt (280, 280): direction roughly toward (1, 1), normalized
These directions are computed by the thermal analysis stage (Stage 1) or can be specified manually if the thermal behavior is known.
Cooling Modes
The thermal analysis stage (Stage 1) supports two cooling modes that determine the temperature distribution across the plate:
Uniform mode (default): the entire plate cools uniformly from the reference temperature to the final temperature. No heat equation is solved — the temperature is constant everywhere. This is physically correct for slow, uniform cooling scenarios such as cryogenic soak, where the plate reaches thermal equilibrium before mechanical effects are significant.
Gradient mode: a steady-state heat equation is solved with different temperatures on opposite edges (T_cold on the left edge, T_hot on the right edge, top and bottom insulated). This produces a non-uniform temperature field, modeling scenarios where one side of the plate is cooled faster than the other. Gradient mode requires specifying T_hot, T_cold, and the thermal conductivity.
Evaluating Results
Key Metrics
The thermal flexure result should be evaluated on:
| Metric | Target | Description |
|---|---|---|
| Solver convergence | < 200 iterations | Does the solver converge? |
| Objective monotonicity | Monotonically decreasing | Is the optimizer consistently improving? |
| Volume constraint | Within 2% of target | Does the result respect the material budget? |
| Non-trivial result | std(density) > 0.01 | Is the result an actual mechanism, not a uniform block? |
| Finite objective | Physically meaningful value | Is the objective value physically meaningful? |
| Thermal accuracy | < 1% error | Does the thermal stage match reference values? |
What a Good Thermal Flexure Looks Like
A successful thermal flexure mechanism has these features:
- Radial flexure arms connecting corner bolt pads to the center
- Thin bending regions (flexures) that accommodate thermal expansion
- A solid central region around the output mount point
- Clear void regions between the flexure arms, allowing deformation
- Approximate radial symmetry (reflecting the symmetric thermal loading)
The mechanism resembles a wheel with flexible spokes — the center is rigid, the spokes flex to absorb expansion at the rim.

Comparison with Rigid Mount
To understand the benefit of thermal flexure optimization:
- Rigid mount (no optimization): thermal expansion directly displaces the center by the full thermal strain. For a 300 mm aluminum plate with 20 degrees temperature change, this is approximately 70+ micrometers.
- Optimized flexure mount: the center displacement is reduced by the mechanism's compensation factor. A well-designed flexure can reduce center displacement by 10x to 100x.
Practical Guidance
When to Use Thermal Flexure
Thermal flexure design optimization is appropriate when:
- The mounting plate experiences temperature changes during operation
- Positioning accuracy of the mounted component is critical (micrometers or better)
- Passive compensation is preferred over active (sensors + actuators)
- The plate material has significant thermal expansion (metals, some polymers)
- The bolt pattern and plate geometry are mostly fixed
Material Selection
The material properties affect both the thermal expansion (Stage 1) and the structural optimization (Stage 2):
- Aluminum (CTE = 23 ppm/K): large thermal expansion, common in optical mounts. Good candidate for thermal flexure optimization.
- Steel (CTE = 12 ppm/K): moderate expansion, high stiffness. Thermal flexure helps but the expansion is smaller.
- Titanium (CTE = 9 ppm/K): low expansion, moderate stiffness. Thermal flexure provides less benefit.
- Invar (CTE = 1.2 ppm/K): very low expansion. Thermal flexure is rarely needed — the material itself provides compensation.
Design Space Considerations
For thermal flexure:
- The design space should cover the full plate area between bolt pads
- Bolt pad geometry (rectangular pads) should accurately represent the physical bolt pattern
- The mesh resolution should be fine enough to represent the flexure members (typically 1 mm elements for a 300 mm plate)
- The volume fraction should be moderate (0.2-0.4) — enough material for structural integrity, but not so much that the optimizer cannot create meaningful flexures
See Also
- Design Optimization — the solver behind thermal flexure design
- Bolt Pads — the mounting hole preserves used in thermal flexure
- Pairs — stiffness coupling configuration for thermal flexure
- Convergence — monitoring the thermal flexure optimization
- Results Interpretation — evaluating the design result output