doe_driver.py#

Design-of-Experiments Driver.

class openmdao.drivers.doe_driver.DOEDriver(generator=None, **kwargs)[source]

Bases: Driver

Design-of-Experiments Driver.

Parameters:
generatorDOEGenerator, list or None

The case generator or a list of DOE cases.

**kwargsdict of keyword arguments

Keyword arguments that will be mapped into the Driver options.

Attributes:
_namestr

The name used to identify this driver in recorded cases.

_problem_commMPI.Comm or None

The MPI communicator for the Problem.

_colorint or None

In MPI, the cached color is used to determine which cases to run on this proc.

_indep_listlist

List of design variables, used to compute derivatives.

_quantitieslist

Contains the objectives plus nonlinear constraints, used to compute derivatives.

__init__(generator=None, **kwargs)[source]

Construct A DOEDriver.

add_recorder(recorder)

Add a recorder to the driver.

Parameters:
recorderCaseRecorder

A recorder instance.

check_relevance()

Check if there are constraints that don’t depend on any design vars.

This usually indicates something is wrong with the problem formulation.

cleanup()

Clean up resources prior to exit.

compute_lagrange_multipliers(driver_scaling=False, feas_tol=1e-06, use_sparse_solve=True)

Get the approximated Lagrange multipliers of one or more constraints.

This method assumes that the optimizer is in a converged state, satisfying both the primal constraints as well as the optimality conditions.

The estimation of which constraints are active depends upon the feasibility tolerance specified. This applies to the driver-scaled values of the constraints, and should be the same as that used by the optimizer, if available.

Parameters:
driver_scalingbool

If False, return the Lagrange multipliers estimates in their physical units. If True, return the Lagrange multiplier estimates in a driver-scaled state.

feas_tolfloat or None

The feasibility tolerance under which the optimization was run. If None, attempt to determine this automatically based on the specified optimizer settings.

use_sparse_solvebool

If True, use scipy.sparse.linalg.lstsq to solve for the multipliers. Otherwise, numpy will be used with dense arrays.

Returns:
active_desvarsdict[str: dict]

A dictionary with an entry for each active design variable. For each active design variable, the corresponding dictionary provides the ‘multipliers’, active ‘indices’, and ‘active_bounds’.

active_consdict[str: dict]

A dictionary with an entry for each active constraint. For each active constraint, the corresponding dictionary provides the ‘multipliers’, active ‘indices’, and ‘active_bounds’.

declare_coloring(num_full_jacs=3, tol=1e-25, orders=None, perturb_size=1e-09, min_improve_pct=5.0, show_summary=True, show_sparsity=False, use_scaling=False, randomize_subjacs=True, randomize_seeds=False, direct=True)

Set options for total deriv coloring.

Parameters:
num_full_jacsint

Number of times to repeat partial jacobian computation when computing sparsity.

tolfloat

Tolerance used to determine if an array entry is nonzero during sparsity determination.

ordersint

Number of orders above and below the tolerance to check during the tolerance sweep.

perturb_sizefloat

Size of input/output perturbation during generation of sparsity.

min_improve_pctfloat

If coloring does not improve (decrease) the number of solves more than the given percentage, coloring will not be used.

show_summarybool

If True, display summary information after generating coloring.

show_sparsitybool

If True, display sparsity with coloring info after generating coloring.

use_scalingbool

If True, use driver scaling when generating the sparsity.

randomize_subjacsbool

If True, use random subjacobians corresponding to their declared sparsity patterns.

randomize_seedsbool

If True, use random seeds when computing the sparsity.

directbool

If using bidirectional coloring, use the direct method when computing the column adjacency matrix instead of the substitution method.

get_coloring_fname(mode='output')

Get the filename for the coloring file.

Parameters:
modestr

‘input’ or ‘output’.

Returns:
str

The filename for the coloring file.

get_constraint_values(ctype='all', lintype='all', driver_scaling=True)

Return constraint values.

Parameters:
ctypestr

Default is ‘all’. Optionally return just the inequality constraints with ‘ineq’ or the equality constraints with ‘eq’.

lintypestr

Default is ‘all’. Optionally return just the linear constraints with ‘linear’ or the nonlinear constraints with ‘nonlinear’.

driver_scalingbool

When True, return values that are scaled according to either the adder and scaler or the ref and ref0 values that were specified when add_design_var, add_objective, and add_constraint were called on the model. Default is True.

Returns:
dict

Dictionary containing values of each constraint.

get_design_var_values(get_remote=True, driver_scaling=True)

Return the design variable values.

Parameters:
get_remotebool or None

If True, retrieve the value even if it is on a remote process. Note that if the variable is remote on ANY process, this function must be called on EVERY process in the Problem’s MPI communicator. If False, only retrieve the value if it is on the current process, or only the part of the value that’s on the current process for a distributed variable.

driver_scalingbool

When True, return values that are scaled according to either the adder and scaler or the ref and ref0 values that were specified when add_design_var, add_objective, and add_constraint were called on the model. Default is True.

Returns:
dict

Dictionary containing values of each design variable.

get_driver_derivative_calls()

Return number of derivative evaluations made during a driver run.

Returns:
int

Number of derivative evaluations made during a driver run.

get_driver_objective_calls()

Return number of objective evaluations made during a driver run.

Returns:
int

Number of objective evaluations made during a driver run.

get_exit_status()

Return exit status of driver run.

Returns:
str

String indicating result of driver run.

get_objective_values(driver_scaling=True)

Return objective values.

Parameters:
driver_scalingbool

When True, return values that are scaled according to either the adder and scaler or the ref and ref0 values that were specified when add_design_var, add_objective, and add_constraint were called on the model. Default is True.

Returns:
dict

Dictionary containing values of each objective.

get_reports_dir()

Get the path to the directory where the report files should go.

If it doesn’t exist, it will be created.

Returns:
str

The path to the directory where reports should be written.

property msginfo

Return info to prepend to messages.

Returns:
str

Info to prepend to messages.

record_derivatives()

Record the current total jacobian.

record_iteration()

Record an iteration of the current Driver.

run()[source]

Generate cases and run the model for each set of generated input values.

Returns:
bool

Failure flag; True if failed to converge, False is successful.

scaling_report(outfile='driver_scaling_report.html', title=None, show_browser=True, jac=True)

Generate a self-contained html file containing a detailed connection viewer.

Optionally pops up a web browser to view the file.

Parameters:
outfilestr, optional

The name of the output html file. Defaults to ‘driver_scaling_report.html’.

titlestr, optional

Sets the title of the web page.

show_browserbool, optional

If True, pop up a browser to view the generated html file. Defaults to True.

jacbool

If True, show jacobian information.

Returns:
dict

Data used to create html file.

set_design_var(name, value, set_remote=True)

Set the value of a design variable.

‘name’ can be a promoted output name or an alias.

Parameters:
namestr

Global pathname of the design variable.

valuefloat or ndarray

Value for the design variable.

set_remotebool

If True, set the global value of the variable (value must be of the global size). If False, set the local value of the variable (value must be of the local size).

use_fixed_coloring(coloring=<openmdao.utils.coloring.STD_COLORING_FNAME object>)

Tell the driver to use a precomputed coloring.

Parameters:
coloringstr or Coloring

A coloring filename or a Coloring object. If no arg is passed, filename will be determined automatically.