1.71k likes | 1.72k Views
A program creating user-friendly optimization code, adaptable for structural analysis, with detailed examples and architecture overview.
E N D
GENOPT A Program that Writes User-Friendly Optimization Code David Bushnell International Journal of Solids & Structures, Vol. 26, No. 9/10, pp. 1173-1210, 1990
SUMMARY OF TALK • Purpose • Properties of GENOPT • Two kinds of user: (a) GENOPT user and (b) end user • GENOPT commands • GENOPT architecture • Example 1: Minimum-weight design of a plate • Example 2: Minimum-weight design of an isogrid-stiffened spherical shell • Example 3: Minimum-weight design of a ring-stiffened, wavy-walled cylindrical shell with use of BIGBOSOR4 • Example 4: Minimum-weight design of an isogrid-stiffened ellipsoidal shell with use of BIGBOSOR4
PURPOSES OF GENOPT • Convert an analysis into a user-friendly analysis • Make the step into the world of automated optimization easy
PROPERTIES OF GENOPT • An analysis of a fixed design is “automatically” converted into an optimization of that design concept. • GENOPT can be applied in any field. It is not limited to structural analysis. • User-specified data names and one-line definitions appear throughout the output. Hence the input and output is in the jargon of the GENOPT-user’s field. • GENOPT is a FORTRAN program that writes other FORTRAN programs.
ARCHITECTURE OF GENOPT • The program system generated by GENOPT has the “BEGIN”, “DECIDE”, “MAINSETUP”, “OPTIMIZE”, “SUPEROPT”, “CHANGE”, “CHOOSEPLOT”, “CLEANUP” architecture typical of other software written by the author for specific applications (BOSOR4, BIGBOSOR4, BOSOR5, PANDA, PANDA2)
TWO TYPES OF USER • GENOPT USER: Uses GENOPT to create a user-friendly system of programs for optimizing a class of objects. • END USER: Uses the user-friendly system of programs created by the GENOPT user to optimize objects in the class covered by the GENOPT USER’s program system.
ROLE OF THE GENOPT USER(1) • Choose a generic class of problems for which a user-friendly analysis and/or optimization program is needed. • Decide which phenomena (behaviors) may affect the design. These are called “behavioral constraints”. Examples: stress, buckling, modal vibration, displacement, clearance. • Establish the objective of the optimization. Examples: minimum weight, minimum cost, minimum surface rms error, etc.
ROLE OF THE GENOPT USER(2) • Organize the input data. Simple constants? Arrays?, Tabular data?, Decision variables? • For each input datum choose: (a) a meaningful name, (b) a clear one-line definition, (c) supporting “help” paragraph(s). • Write or “borrow” algorithms to predict various behaviors, such as buckling, modal vibration, and stress, that may affect the evolution of the design during optimization cycles. • Test the new user-friendly program system. • Interact with the END USER.
ROLE OF THE END USER(1) • Choose a specific problem that fits within the generic class established by the GENOPT USER. • Choose an initial design with appropriate loads and an allowable and a factor of safety for each behavior. • Choose appropriate decision variables with appropriate lower and upper bounds. • Choose linked variables and linking expressions (equality constraints), if any. (These are chosen by the END USER in the processor called “DECIDE”).
ROLE OF THE END USER(2) • Choose inequality constraints, if any. (To be chosen by the END USER in “DECIDE”). • During optimization use enough restarts, iterations, and “CHANGE” commands in the search for a global optimum design. (This is now done automatically by “SUPEROPT”). • Interact with the GENOPT USER. • Check the optimum design via general-purpose programs and/or tests.
THE GENOPT MENU OF COMMANDS(1) Command for the GENOPT USER and the END USER: GENOPTLOG (activates the GENOPT menu of commands). Commands for the GENOPT USER: GENTEXT (GENOPT USER generates a prompt file with “help” paragraphs. GENTEXT produces FORTRAN program fragments, some complete FORTRAN programs, and two “skeletal” FORTRAN subroutines to be “fleshed out” later by the GENOPT user.) GENPROGRAMS (GENOPT USER generates executable elements: BEGIN, DECIDE, MAINSETUP, OPTIMIZE, CHANGE, STORE, CHOOSEPLOT, DIPLOT). INSERT (GENOPT USER adds parameters, if necessary). CLEANGEN (GENOPT user cleans up GENeric case files).
THE GENOPT MENU OF COMMANDS(2) Commands for the END USER: BEGIN (END USER provides initial design, material properties, loads, allowables, and factors of safety). DECIDE (END USER chooses decision variables, bounds, linked variables, inequality constraints, and escape variables). MAINSETUP (END USER sets up strategy parameters for simple analysis of a fixed design or optimization). OPTIMIZE (END USER performs the analysis or optimization). SUPEROPT (END USER tries to find a “global” optimum). CHANGE (END USER changes some variables).
THE GENOPT MENU OF COMMANDS(3) CHOOSEPLOT (END USER chooses which decision variables to plot versus design iterations). DIPLOT (END USER obtains postscript plot files for margins and/or decision variables and the objective versus design iterations). CLEANSPEC (END USER cleans up SPECific case files).
SEVEN ROLES THAT VARIABLES PLAY 1. A possible decision variable for optimization, typically a dimension of a structure. 2. A constant parameter (cannot vary as the design evolves), typically a control integer or material property, but not a load, allowable, or factor of safety, which are asked for later. 3. A parameter characterizing the environment, such as a load component or a temperature. 4. A quantity that describes the response (behavior) of the structure to its environment, (e.g. maximum stress, buckling load, natural frequency, maximum displacement). 5. An allowable, such as maximum allowable stress. 6. A factor of safety. 7. The objective, for example, weight.
SOME IMPORTANT NOTES, ESPECIALLY CONCERNING “BEHAVIORAL CONSTRAINT” AND “MARGIN”
TABLES OF PLATE BUCKLING LOAD COEFFICIENTS CAN BE FOUND IN BOOKS SUCH AS THIS…