Dakota Reference Manual  Version 6.2
Large-Scale Engineering Optimization and Uncertainty Analysis
 All Pages

Begins Dakota method selection and behavioral settings.


This keyword is related to the topics:


Alias: none

Argument(s): none

Required/Optional Description of Group Dakota Keyword Dakota Keyword Description
Optional id_method

Name the method block; helpful when there are multiple

Optional output Control how much method information is written to the screen and output file
Optional max_iterations Stopping criteria based on number of iterations
Optional max_function_evaluations Stopping criteria based on number of function evaluations
Optional speculative Compute speculative gradients
Optional convergence_tolerance Stopping criterion based on convergence of the objective function
Optional constraint_tolerance The maximum allowable value of constraint violation still considered to be feasible
Optional scaling Turn on scaling for variables, responses, and constraints
Optional final_solutions Number of designs returned as the best solutions
(Choose One)
Group 1 hybrid Strategy in which a set of methods synergistically seek an optimal design
multi_start Multi-Start Optimization Method
pareto_set Pareto set optimization
surrogate_based_local Local Surrogate Based Optimization
surrogate_based_global Global Surrogate Based Optimization
dot_frcg A conjugate gradient optimization method
dot_mmfd Method of feasible directions
dot_bfgs A conjugate gradient optimization method
dot_slp Sequential Linear Programming
dot_sqp Sequential Quadratic Program
dot Access to methods in the DOT package
conmin_frcg A conjugate gradient optimization method
conmin_mfd Method of feasible directions
conmin Access to methods in the CONMIN library

(Experimental) Dynamically-loaded solver

npsol_sqp Sequential Quadratic Program
nlssol_sqp Sequential Quadratic Program for nonlinear least squares
stanford Select methods from the Stanford package
nlpql_sqp Sequential Quadratic Program
optpp_cg A conjugate gradient optimization method
optpp_q_newton Quasi-Newton optimization method
optpp_fd_newton Finite Difference Newton optimization method
optpp_g_newton Newton method based least-squares calbration
optpp_newton Newton method based optimization
optpp_pds Simplex-based derivative free optimization method
asynch_pattern_search Pattern search, derivative free optimization method

Finds optimal variable values using adaptive mesh-based search

moga Multi-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)
soga Single-objective Genetic Algorithm (a.k.a Evolutionary Algorithm)
coliny_pattern_search Pattern search, derivative free optimization method
coliny_solis_wets Simple greedy local search method
coliny_cobyla Constrained Optimization BY Linear Approximations (COBYLA)
coliny_direct DIviding RECTangles method
coliny_ea Evolutionary Algorithm

(Experimental) Coliny beta solver

nl2sol Trust-region method for nonlinear least squares

(Experimental) nonlinear conjugate gradient optimization

ncsu_direct DIviding RECTangles method

Voronoi-based high-dimensional global Lipschitzian optimization


Classical high-dimensional global Lipschitzian optimization Classical high-dimensional global Lipschitzian optimization

efficient_global Global Surrogate Based Optimization, a.k.a. EGO

Uncertainty quantification using polynomial chaos expansions


Uncertainty quantification with stochastic collocation


Randomly samples variables according to their distributions

importance_sampling Importance sampling
gpais Gaussian Process Adaptive Importance Sampling
adaptive_sampling (Experimental) Build a GP surrogate and refine it adaptively
pof_darts Probability-of-Failure (POF) darts is a novel method for estimating the probability of failure based on random sphere-packing.

(Experimental) efficient subspace method (ESM)

global_evidence Evidence theory with evidence measures computed with global optimization methods
global_interval_est Interval analysis using global optimization methods

Bayesian calibration

dace Design and Analysis of Computer Experiments
fsu_cvt Design of Computer Experiments - Centroidal Voronoi Tessellation
psuade_moat Morris One-at-a-Time
local_evidence Evidence theory with evidence measures computed with local optimization methods
local_interval_est Interval analysis using local optimization
local_reliability Local reliability method
global_reliability Global reliability methods
fsu_quasi_mc Design of Computer Experiments - Quasi-Monte Carlo sampling

Samples variables along a user-defined vector


Samples variables as a specified values


Samples variables along points moving out from a center point


Samples variables on full factorial grid of study points

richardson_extrap Estimate order of convergence of a response as model fidelity increases


The method keyword signifies the start of a block in the Dakota input file. Said block contains the various keywords necessary to specify a method and to control its behavior.

Method Block Requirements

At least one method block must appear in the Dakota input file. Multiple method blocks may be needed to fully define advanced analysis approaches.

Each method block must specify one method and, optionally, any associated keywords that govern the behavior of the method.

The Methods

Each method block must select one method.

Starting with Dakota v6.0, the methods are grouped into two types: standard methods and multi-component methods.

The standard methods are stand-alone and self-contained in the sense that they only require a model to perform a study. They do not call other methods. While methods such as polynomial_chaos and efficient_global internally utilize multiple iterator and surrogate model components, these components are generally hidden from user control due to restrictions on modularity; thus, these methods are stand-alone.

The multi-component group of methods provides a higher level "meta-algorithm" that points to other methods and models that support sub-iteration. For example, in a sequential hybrid method, the hybrid method specification must identify a list of subordinate methods, and the "meta-algorithm" executes these methods in sequence and transfers information between them. Surrogate-based minimizers provide another example in that they point both to other methods (e.g. what optimization method is used to solve the approximate subproblem) as well as to models (e.g. what type of surrogate model is employed). Multi-component methods generally provide some level of "plug and play" modularity, through their flexible support of a variety of method and model selections.

Component-Based Iterator Commands

Component-based iterator specifications include hybrid, multi-start, pareto set, surrogate-based local, surrogate-based global, and branch and bound methods. Whereas a standard iterator specification only needs an optional model pointer string (specified with model_pointer), component-based iterator specifications can include method pointer, method name, and model pointer specifications in order to define the components employed in the "meta-iteration." In particular, these specifications identify one or more methods (by pointer or by name) to specify the subordinate iterators that will be used in the top-level algorithm. Identifying a sub-iterator by name instead of by pointer is a lightweight option that relaxes the need for a separate method specification for the sub-iterator; however, a model pointer may be required in this case to provide the specification connectivity normally supported by the method pointer. Refer to these individual method descriptions for specific requirements for these advanced methods.

Method Independent Controls

In addition to the method, there are 10 optional keywords, which are referred to as method independent controls. These controls are valid for enough methods that it was reasonable to pull them out of the method dependent blocks and consolidate the specifications, however, they are NOT universally respected by all methods.


Several examples follow. The first example shows a minimal specification for an optimization method.


This example uses all of the defaults for this method.

A more sophisticated example would be

  id_method = 'NLP1'
    max_iterations = 50
    convergence_tolerance = 1e-4
    output verbose
    model_pointer = 'M1'

This example demonstrates the use of identifiers and pointers as well as some method independent and method dependent controls for the sequential quadratic programming (SQP) algorithm from the DOT library. The max_iterations, convergence_tolerance, and output settings are method independent controls, in that they are defined for a variety of methods (see dot for usage of these controls).

The next example shows a specification for a least squares method.

    max_iterations = 10
    convergence_tolerance = 1.e-8
    search_method trust_region
    gradient_tolerance = 1.e-6

Some of the same method independent controls are present along with several method dependent controls (search_method and gradient_tolerance) which are only meaningful for OPT++ methods (see package_optpp).

The next example shows a specification for a nondeterministic method with several method dependent controls (refer to sampling).

    samples = 100
    seed = 12345
    sample_type lhs
    response_levels = 1000. 500.

The last example shows a specification for a parameter study method where, again, each of the controls are method dependent (refer to vector_parameter_study).

    step_vector = 1. 1. 1.
    num_steps = 10