DOT - Design Optimization Tools
DOT is a general-purpose gradient-based optimization software library that can be used to solve a wide variety of optimization problems. Users have to link the DOT library into their own program. DOT provides the optimization technology, while the rest of the program has to provide the required function evaluations needed to perform the optimization. These function evaluations can be linear or nonlinear functions of the design variables. They may be very simple analytical functions or may be highly complicated implicit functions, for example a non-linear structural finite element simulation. Very little formal knowledge of optimization techniques is needed to make efficient use of DOT.
DOT can handle constrained, unconstrained, linear and non-linear optimization problems and can automatically calculate finite difference gradients needed during the optimization. DOT can also deal with user supplied gradients.
How does DOT work?
The figure below defines the structure of a program that calls DOT to perform optimization. The user must provide a main program that setup the optimization problem. The user also provides an analysis subroutine or function which evaluates the objective and constraint functions and optionally calculates gradient information if gradient information is available.
The main program calls DOT to start the optimization. DOT will modify the design variables in search of the optimum. When DOT requires the values of the objective and constraint functions corresponding to a proposed design, it returns control to the main program. The main program calls DOT again to obtain the next design point and this process is repeated until DOT returns a parameter to indicate that the optimization is complete.