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

The following terms have special meanings used in the context of this program. The terms appear in an order ranked from more general and introductory to more specific.

- MATHEMATICAL MODEL
- DESIGN TYPES
- INDEPENDENT VARIABLES
- DEPENDENT VARIABLES
- CALCULATION INPUTS
- CONSTRAINTS
- CONSTRAINT VIOLATIONS
- FUNCTION CONSTRAINTS (FDCL)
- FIX
- AUTOFIX
- FEASIBLE REGION
- OBJECTIVE FUNCTION
- PREFERENCES
- PROPERTIES
- EQUATION SETS
- SEARCH
- SEEK
- TRADE
- ODOP DESIGN LIBRARY
- MIGRATION
- ALERTS
- VALIDITY
- SPRING DESIGN VARIABLE NAMES
- FACTOR OF SAFETY

A mathematical model is a set of equations that describes the behavior of a real world problem of interest. Within the context of the ODOP software, the terms "mathematical model", "design type" and "equation set" are closely related. Each design type has a mathematical model at its core.

For examples, see:

See also:

A Design Type is a specific design problem. As noted above, each Design Type has a mathematical model of some aspect of the real world at its core. Examples included with the ODOP software include compression, extension and torsion springs, a Rectangular Solid and a Piston-Cylinder. A "design" is a specific and unique instance of a Design Type. These designs can be opened, edited and saved in a way similar to the way that word processing documents, spreadsheets and graphic presentations operate. The ODOP software stores multiple designs of each Design Type in its database (a.k.a. design library).

The independent variables are the inputs of the design equations. They are the quantities on the right hand side of the equals sign that can be arbitrarily selected by the designer or search routine. Once values are selected for each independent variable, the design is completely determined. For independent variables, a Fix status reduces the computational demand of the numerical search problem. See the Fix entry below for more details.

The dependent variables are the outputs of the design equations. They are the quantities on the left hand side of the equal sign. Frequently, dependent variables are measures of the performance of a given design and can be thought of as indicating the "state" of the design. A Search is required to establish appropriate values of the independent variables to produce the desired value of a dependent variable in Fix status. A a dependent variable in Fix status increases the computational demand of the numerical search problem. See the FIX entry below for more details.

Calculation Inputs are inputs to the design equations and are adjustable by the user, but are not manipulated by the search algorithm or subject to Fix or constraints. Calculation Inputs frequently represent material properties or other physical parameters.

Constraints are one sided boundaries that represent goals for the design problem. Either dependent or independent variables may be constrained to be greater than or less than a simple constant or a functionally determined quantity such as a different dependent or independent variable or Calculation Input. The section below on FUNCTION CONSTRAINTS provides more information on this subject.

In order to establish a constraint, it is necessary to check the corresponding Minimum or Maximum constraint checkbox and enter a value for the desired constraint level in the corresponding entry field.

If any constraint is violated, a Search operation is required to establish appropriate values of the free (not Fix status) Independent Variables to meet the specified constraint levels. In order to save time and provide more predictable operation, ODOP will stop the search process if it gets very close to a feasible design but still violates one or more constraints by a fraction of a percent. In this case, the design is referred to as "feasible" or "marginally feasible" as opposed to "strictly feasible".

Design Situations provides more insights on how constraints are used to properly specify a design problem.

A constraint violation represents the difference between the current value of a given variable and its corresponding constraint level. By convention, negative values represent constraint satisfaction, positive values represent constraint violation.

When a constraint level is determined as the value of another Independent Variable, Dependent Variable or Calculation Input (as opposed to being a simple constant), it is referred to as a "Functionally Determined Constraint Level" (FDCL). Such constraint levels can be configured by selecting (clicking into) the (MIN or MAX) constraint value field of eligible variables. After clicking a constraint field of an eligible variable, the user will be able to select from a list of variable names available to be used as constraint levels. The variables that can be constrained this way and the variables that are eligible as choices to be selected as constraints are configured in the design type's initialState.

More specific information is available in the On-line Help section covering extension spring constraints.

The user can establish (i.e. Fix or hold) the value of any variable, independent or dependent. Fix status is designated by checking the checkbox immediately to the right of the variable's value.

Placing an Independent Variable in Fix status simply removes that variable from the set that is manipulated by the Search algorithm. This reduces the computational effort required for the Search to find a solution. The user can change the value of an Independent Variable by entering a different value in that variable's value field. The corresponding values of dependent variables are calculated and displayed immediately.

Fixing a Dependent Variable is accomplished internally by establishing a weighted, double-sided constraint. While not a significant concern, this increases the computational effort required for the Search to find a solution. Once the appropriate Fix checkbox is checked, enter a target value in either the Minimum or Maximum constraint level entry field. A Search (Action : Search menu) is required to establish the desired values.

Clearing the checkbox (Free status) allows the Search to alter the value of the corresponding variable subject to constraints, if established.

A "design" is determined primarily (ignoring the role of Calculation Inputs for the moment) by the set of independent variables. While a variable in Fix status cannot have its value adjusted in order to contribute to achieving a feasible design, Search will adjust the value of other variables in Free status to achieve feasibility. If no variables with Free status are available, Search will produce an error message.

Establishing additional constraints and placing variables in Fix status can reduce the ability of Search to find a feasible solution. Too many constraints and variables in Fix status can create an over-specified situation.

See also: Design Situations

The AutoFix feature automatically applies "Fixed" status to Independent Variables whose values are changed by user input.

ODOP Search (invoked by the Search button or the Action : Search menu item) works to hold or achieve values in Fixed status. In order to accomplish its mission, ODOP Search will manipulate the values of variables not in Fixed status (a.k.a. "Free" status) in order to achieve a feasible design.

AutoFix behavior is enabled by default.

AutoFix may be controlled by a checkbox on the main pages (Advanced and Calculator Views) or
the preference value "enable_auto_fix", accessed through the **File : Preferences...** menu.

In order to disable AutoFix, set the value of "enable_auto_fix" to 0.

See also:

A feasible region may be formed within the boundaries represented by the various constraints on the design problem. If a given design satisfies all the constraints, it is said to be "feasible" or in the "feasible region". If the constraint levels are set such that the constraints overlap, no solution that satisfies the design equations and the constraints simultaneously can be found. The search will terminate with multiple constraints violated. In this case, there is no feasible region.

When faced with the situation where no feasible solution is available, the designer must restructure the problem or his goals in some way to permit the desired solution. Perhaps the solution is to use a stronger material. This can be represented by changing a material constant and re-executing the search. Perhaps use of the TRADE feature is appropriate. For more information, see: Trade.

The objective function constitutes the numerical search problem. It is formed as a blend of violated constraints, dependent variable Fix violations and in the case of the SEEK feature, a "merit function" that represents the variable under investigation. The search algorithm works to drive the objective function to the lowest value possible. For more detail, see the SEARCH entry below.

**(Internal Control Settings File : Preferences menu item)**

Preference settings control the operation of the program. They have no direct meaning to the design problem. For more specific information, refer to the documentation section (on-line Help entry) on Search and Tutorial session tutor9.

**(File : Properties menu item)**

It is possible to store a series of text strings with a design in order to carry descriptive information. The File : Properties menu is used to establish a set of label - value pairs where the text of the value is set by the user.

For coil spring designs, the content of these fields is displayed on Report 3. Thus, information entered into File : Properties can be used to support the documentation of a spring design. See your browser documentation for details on how to print or save into .PDF format a page like Report 3. From there, the information can be included as part of a Request for Quotation or other transfer of the design information.

The number of labels and the text of the label are established in the design type source code in the initialState.js file.

See also:

The ODOP software allows for multiple design types and thus multiple sets of design equations (mathematical models of a specific design problem) to be concurrently available. Currently implemented Design Types include:

The simplest way to use a different design type and equation set is to select a design type that uses the desired equation set at the time that the ODOP software first starts. A default design named "Startup" should be available for each design type. An explanation of how to select a design type and open a design of that type is provided in: Getting Started.

Additional information on how to implement new ODOP design types is available in the NewDesignType documentation.

The term "Search" is used in the sense of "Search for a solution".
The ODOP Search feature (**Action : Search** menu item or Search button)
is used to find a feasible design.
As a manual operation used to find a solution,
Search is conceptually similar to a manual recalculation operation in a spreadsheet program.

Search stops when it finds the first feasible design. In order to optimize a design, see Seek below.

See also:

The Seek feature (**Action : Seek** menu item or Seek button)
will automatically invoke Search to maximize or minimize the target
variable subject to the prevailing constraints and FIXes.

For example in spring design, a designer might want to seek designs providing maximum cycle life or minimum weight.

See also:

The Trade feature (**Action : Trade** menu item)
is used when a feasible solution is not available.
TRADE provides decision support for relaxation of constraints by
guiding the designer to restructure his goals in a way
that is most consistent with the original objectives.

Trade will automatically invoke Search to help locate the "nearest" feasible point when a feasible solution is not available with the existing set of constraints. "Nearest" in this case means the feasible point reached with the least total relaxation of constraints.

For example in spring design, if constraints representing objectives for both weight and cycle life are violated, the designer could ask Trade to find the first (nearest) feasible design that relaxes only the weight constraint, only the cycle life constraint or some weighted combination of the two.

See also:

The design library is a database physically located on an Internet server, a.k.a. "in the cloud". Design information stored in the design library does not appear on the local storage of your computer. You must be logged in to an ODOP user account in order to save designs into the ODOP design library.

See: User Accounts for details on how to obtain an ODOP user account.

The term "migration" refers to the process of upgrading designs created in a previous version of the software to the format required by the current version. This process changes the underlying data structures that describe the design. Opening a design saved in a prior version will produce a pop-up message of the form:

"Migrated design from version {*previous version number*} to {*current version number*}".

Saving the design will eliminate the message on future open operations. Complete detail on the latest changes is available in GitHub.

The Help : About menu item lists the Design Model version for the currently open design type
in the form: "Design Model version {*current version number*}".

Help : About also displays the current ODOP software version in the form:
"Software version {*Major.Minor.Patch*}".
The ODOP version is independent of the version of any specific design type (a.k.a. model).
A change in software version may or may not be associated with a change in the
design model version number for any design type.
A change in the version number of any design type will usually be associated with a change in the
minor or major field of the ODOP software version.

Alerts are informational messages that are produced as you change the values of your design.

See also:

Designs with values outside their valid range are likely physically impossible. In spring design, negative values for wire diameter, coil diameter and number of coils are obvious examples. Other situations, for example where an increase in wire diameter results in a negative value for coil inside diameter or where an increase in force at the second load point takes a compression spring below its solid condition may be a bit less obvious.

Each design type has a starting point, a.k.a. initialState, that contains minimum and maximum valid values for each variable. More specifically, Independent Variables, Dependent Variables and numeric Calculation Inputs all have pre-assigned ValidMin and ValidMax values. These validity ranges are used to generate Alerts and also guide the Search process toward valid results.

See also:

Variable names illustrated on compression spring Force-Deflection diagram:

See also:

This term is described in detail in the spring design overview section: Factor of Safety

See also:

- Wikipedia - Factor of Safety
- Terms common to all spring types
- Compression spring
- Extension spring
- Torsion spring