$extrastylesheet
Dakota
Version 6.2
|
Wrapper class for the DOT optimization library. More...
Public Member Functions | |
DOTOptimizer (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
DOTOptimizer (const String &method_string, Model &model) | |
alternate constructor; construct without ProblemDescDB | |
~DOTOptimizer () | |
destructor | |
void | find_optimum () |
Used within the optimizer branch for computing the optimal solution. Redefines the run virtual function for the optimizer branch. | |
Protected Member Functions | |
void | initialize_run () |
performs run-time set up | |
Private Member Functions | |
void | initialize () |
Shared constructor code. | |
void | allocate_workspace () |
Allocates workspace for the optimizer. | |
void | allocate_constraints () |
Allocates constraint mappings. | |
Private Attributes | |
int | dotInfo |
INFO from DOT manual. | |
int | dotFDSinfo |
internal DOT parameter NGOTOZ | |
int | dotMethod |
METHOD from DOT manual. | |
int | printControl |
IPRINT from DOT manual (controls output verbosity) | |
RealArray | realCntlParmArray |
RPRM from DOT manual. | |
IntArray | intCntlParmArray |
IPRM from DOT manual. | |
RealVector | designVars |
array of design variable values passed to DOT | |
Real | objFnValue |
value of the objective function passed to DOT | |
RealVector | constraintValues |
array of nonlinear constraint values passed to DOT | |
int | realWorkSpaceSize |
size of realWorkSpace | |
int | intWorkSpaceSize |
size of intWorkSpace | |
RealArray | realWorkSpace |
real work space for DOT | |
IntArray | intWorkSpace |
int work space for DOT | |
int | numDotNlnConstr |
total number of nonlinear constraints seen by DOT | |
int | numDotLinConstr |
total number of linear constraints seen by DOT | |
int | numDotConstr |
total number of linear and nonlinear constraints seen by DOT | |
SizetArray | constraintMappingIndices |
a container of indices for referencing the corresponding Response constraints used in computing the DOT constraints. | |
RealArray | constraintMappingMultipliers |
a container of multipliers for mapping the Response constraints to the DOT constraints. | |
RealArray | constraintMappingOffsets |
a container of offsets for mapping the Response constraints to the DOT constraints. |
Wrapper class for the DOT optimization library.
The DOTOptimizer class provides a wrapper for DOT, a commercial Fortran 77 optimization library from Vanderplaats Research and Development. It uses a reverse communication mode, which avoids the static member function issues that arise with function pointer designs (see NPSOLOptimizer and SNLLOptimizer).
The user input mappings are as follows: max_iterations
is mapped into DOT's ITMAX
parameter within its IPRM
array, max_function_evaluations
is implemented directly in the find_optimum() loop since there is no DOT parameter equivalent, convergence_tolerance
is mapped into DOT's DELOBJ
parameter (the relative convergence tolerance) within its RPRM
array, output
verbosity is mapped into DOT's IPRINT
parameter within its function call parameter list (verbose: IPRINT
= 7; quiet: IPRINT
= 3), and optimization_type
is mapped into DOT's MINMAX
parameter within its function call parameter list. Refer to [Vanderplaats Research and Development, 1995] for information on IPRM
, RPRM
, and the DOT function call parameter list.
int dotInfo [private] |
INFO from DOT manual.
Information requested by DOT: 0=optimization complete, 1=get values, 2=get gradients
Referenced by DOTOptimizer::find_optimum(), and DOTOptimizer::initialize_run().
int dotFDSinfo [private] |
internal DOT parameter NGOTOZ
the DOT parameter list has been modified to pass NGOTOZ, which signals whether DOT is finite-differencing (nonzero value) or performing the line search (zero value).
Referenced by DOTOptimizer::find_optimum().
int dotMethod [private] |
METHOD from DOT manual.
For nonlinear constraints: 0/1 = dot_mmfd, 2 = dot_slp, 3 = dot_sqp. For unconstrained: 0/1 = dot_bfgs, 2 = dot_frcg.
Referenced by DOTOptimizer::allocate_constraints(), DOTOptimizer::allocate_workspace(), DOTOptimizer::DOTOptimizer(), and DOTOptimizer::find_optimum().
int printControl [private] |
IPRINT from DOT manual (controls output verbosity)
Values range from 0 (least output) to 7 (most output).
Referenced by DOTOptimizer::DOTOptimizer(), and DOTOptimizer::find_optimum().
RealArray realCntlParmArray [private] |
RPRM from DOT manual.
Array of real control parameters.
Referenced by DOTOptimizer::find_optimum(), and DOTOptimizer::initialize().
IntArray intCntlParmArray [private] |
IPRM from DOT manual.
Array of integer control parameters.
Referenced by DOTOptimizer::find_optimum(), and DOTOptimizer::initialize().
RealVector constraintValues [private] |
array of nonlinear constraint values passed to DOT
This array must be of nonzero length and must contain only one-sided inequality constraints which are <= 0 (which requires a transformation from 2-sided inequalities and equalities).
Referenced by DOTOptimizer::allocate_constraints(), and DOTOptimizer::find_optimum().
SizetArray constraintMappingIndices [private] |
a container of indices for referencing the corresponding Response constraints used in computing the DOT constraints.
The length of the container corresponds to the number of DOT constraints, and each entry in the container points to the corresponding DAKOTA constraint.
Referenced by DOTOptimizer::allocate_constraints(), and DOTOptimizer::find_optimum().
RealArray constraintMappingMultipliers [private] |
a container of multipliers for mapping the Response constraints to the DOT constraints.
The length of the container corresponds to the number of DOT constraints, and each entry in the container stores a multiplier for the DAKOTA constraint identified with constraintMappingIndices. These multipliers are currently +1 or -1.
Referenced by DOTOptimizer::allocate_constraints(), and DOTOptimizer::find_optimum().
RealArray constraintMappingOffsets [private] |
a container of offsets for mapping the Response constraints to the DOT constraints.
The length of the container corresponds to the number of DOT constraints, and each entry in the container stores an offset for the DAKOTA constraint identified with constraintMappingIndices. These offsets involve inequality bounds or equality targets, since DOT assumes constraint allowables = 0.
Referenced by DOTOptimizer::allocate_constraints(), and DOTOptimizer::find_optimum().