$extrastylesheet
Dakota  Version 6.2
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
DOTOptimizer Class Reference

Wrapper class for the DOT optimization library. More...

Inheritance diagram for DOTOptimizer:
Optimizer Minimizer Iterator

List of all members.

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.

Detailed Description

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.


Member Data Documentation

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().


The documentation for this class was generated from the following files: