Introduction
Figure 1 illustrates how an algorithm operates when OptimizationAnalysis executes Algorithm::Solve method. Overview of the existing algorithms can be found here.
Figure 1: Algorithm
Working space.
As illustrated in the Figure 1, Algorithm purely works in the control space. Hence, all the inputs to the Algorithm should be in the control space. Therefore, all the outputs from it also will be in the control space.
Supporting components
When an Algorithm is constructed by the OptimizationAnalysis,
- It will create the
MasterControlwhich links all theControls used by theAlgorithm. - It will create all the necessary
ResponseRoutines for the algorithm. It will not create anyResponseFunctions, it will merely link aResponseRoutinewith aResponseFunction. - Thereafter, it will create all the other necessary components.
Data flow and work flow
Algorithm is developed basically to perform minimization. Therefore, it is the duty of the ResponseRoutine to standardize the objective and constraint values (i.e. \(\tilde{J}_1\) and \(\tilde{J}_2\) and the gradients (i.e. \(\frac{d\tilde{J}_1}{d\underline{\hat{\phi}}}\), \(\frac{d\tilde{J}_2}{d\underline{\hat{\phi}}}\)) accordingly and send it to the algorithm which will be based on physical space response values (i.e. \(J_1\), \(J_2\)) and their gradients (i.e. \(\frac{dJ_1}{d\underline{\phi}}\), \(\frac{dJ_2}{d\underline{\phi}}\)). Then using the algorithm, it will compute the new design in control space (i.e. \(\hat{\underline{\phi}}\)) which needs to mapped to a design in the physical space (i.e. \(\underline{\phi}\)) by the ResponseRoutine. ResponseRoutine then should update its design surfaces using MasterControl for the next iteration computations.
Notes
- Since each algorithm is specific, they can have their own specific types of
ResponseRoutines developed. Therefore, the methods being called by anAlgorithmtoResponseRoutinemay differ depending on the type of theAlgorithm. OptimizationApplicationsupports linking with third party libraries for various algorithms. In that case, one needs to develop theAlgorithmwrapper,ResponseRoutineandMasterControlfor that third party library.