odop

Open Design Optimization Platform (ODOP) - Coil spring design app; mechanical springs; compression spring, extension spring, torsion spring

View the Project on GitHub thegrumpys/odop

Auto-Search feature and preferences

The experimental implementation of an Auto-Search feature exposed a significant issue. While the user is in the process of modifying an input field, the search will get fired off with transient, wildly incorrect values for constraint and fix levels. When far from a solution point, Pattern Search behavior (acceleration of pattern moves) is inclined to step (far) over constraint boundaries, including the evaluation of negative numbers. Then, the search may converge on a non-physical result (for example, negative radius). If the starting point of the following search is the finishing point of a previous search that has produced such a non-physical result, depending on the design problem, Patsh may not recover. It just gets stuck.

There are multiple approaches to dealing with this problem.

In the first place, the Auto-Search feature should be controllable by a preference menu item. Approaches applied to Auto-Search do not have to apply to more manual search mode(s).

During Auto-Search, the starting point of each new search can be set to a known reasonable point. That should mostly eliminate the behavior of getting stuck in a non-physical solution.

The best approach for establishing a known reasonable starting point is open for discussion. Possibilities include:

Also, there is a possibility for a quicker and more convenient middle ground between fully manual searches that are invoked by the Action : Search menu item and the current notion of Auto-Search. For example, a search may be triggered by:

Note that each of these possibilities is less than perfect.

Note that setting the search to a known reasonable start point should apply to Auto-Start only. In more manual search modes, the user should be able to control the start point by using the entry field to alter the values of design parameters.