The Needle method is a synthesis algorithm widely used in thin-film design. Its core idea is simple: instead of starting with a complex multilayer structure, the algorithm begins with a minimal design (e.g. 1-layer) and gradually inserts zero thickness “needle” layers at positions where they most improve the optical performance.
Each insertion is tested by evaluating how a small change in thickness at a specific depth influences the merit function. The most effective position is chosen, and the “needle” is then expanded into a real layer. After every insertion, a local refinement algorithm (FilmOptima uses Adam) adjusts all existing layer thicknesses to further improve the design.
This iterative process continues until no improvements can be achieved.
Advantages
- Systematic Construction: Does not require a strong initial guess.
- Rapid Convergence: Computationally efficient, enabling quick progress toward target requirements.
Limitations
- Enumeration Cost: Computationally expensive when many insertion points are evaluated.
- Thin-Layer Risk: Often produces very thin layers that require filtering via minimum-thickness constraints.
- Initial-Design Sensitivity: Performance can depend heavily on the starting design
In FilmOptima
In FilmOptima, the needle method belongs to the Synthesis category of algorithms.
| Parameter | Description |
|---|---|
| # Insertions | Specifies how many equally spaced needle insertions are attempted across the stack. The exact insertion positions are determined using interpolation. |
| LearningRate | Controls the step size in the Adam optimizer during refinement. Higher values make updates faster but risk overshooting, while lower values are more stable but slower to converge. |
| Patience | Defines how many iterations the Adam optimizer will continue without improvement in the merit function before halving the learning rate. |
| MaxEpoch | Sets the maximum number of training cycles for the Adam optimizer in each refinement step. Acts as a hard limit to keep optimization runs bounded. |