driver.py

Define a base class for all Drivers in OpenMDAO.

class openmdao.core.driver.Driver(**kwargs)[source]

Bases: object

Top-level container for the systems and drivers.

Attributes

fail

(bool) Reports whether the driver ran successfully.

iter_count

(int) Keep track of iterations for case recording.

options

(<OptionsDictionary>) Dictionary with general pyoptsparse options.

recording_options

(<OptionsDictionary>) Dictionary with driver recording options.

cite

(str) Listing of relevant citations that should be referenced when publishing work that uses this class.

supports

(<OptionsDictionary>) Provides a consistent way for drivers to declare what features they support.

__init__(self, **kwargs)[source]

Initialize the driver.

Parameters
**kwargsdict of keyword arguments

Keyword arguments that will be mapped into the Driver options.

add_recorder(self, recorder)[source]

Add a recorder to the driver.

Parameters
recorderCaseRecorder

A recorder instance.

cleanup(self)[source]

Clean up resources prior to exit.

declare_coloring(self, num_full_jacs=3, tol=1e-25, orders=None, perturb_size=1e-09, show_summary=True, show_sparsity=False)[source]

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.

show_summarybool

If True, display summary information after generating coloring.

show_sparsitybool

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

get_constraint_values(self, ctype='all', lintype='all', driver_scaling=True, filter=None, ignore_indices=False)[source]

Return constraint values.

Parameters
ctypestring

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

lintypestring

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.

filterlist

List of constraint names used by recorders.

ignore_indicesbool

Set to True if the full array is desired, not just those indicated by indices.

Returns
dict

Dictionary containing values of each constraint.

get_design_var_values(self, filter=None, driver_scaling=True, ignore_indices=False)[source]

Return the design variable values.

This is called to gather the initial design variable state.

Parameters
filterlist

List of desvar names used by recorders.

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.

ignore_indicesbool

Set to True if the full array is desired, not just those indicated by indices.

Returns
dict

Dictionary containing values of each design variable.

get_objective_values(self, driver_scaling=True, filter=None, ignore_indices=False)[source]

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.

filterlist

List of objective names used by recorders.

ignore_indicesbool

Set to True if the full array is desired, not just those indicated by indices.

Returns
dict

Dictionary containing values of each objective.

get_response_values(self, filter=None)[source]

Return response values.

Parameters
filterlist

List of response names used by recorders.

Returns
dict

Dictionary containing values of each response.

property msginfo

Return info to prepend to messages.

Returns
str

Info to prepend to messages.

record_iteration(self)[source]

Record an iteration of the current Driver.

run(self)[source]

Execute this driver.

The base Driver just runs the model. All other drivers overload this method.

Returns
boolean

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

set_design_var(self, name, value)[source]

Set the value of a design variable.

Parameters
namestr

Global pathname of the design variable.

valuefloat or ndarray

Value for the design variable.

set_simul_deriv_color(self, coloring)[source]

See use_fixed_coloring. This method is deprecated.

Parameters
coloringstr or Coloring

Information about simultaneous coloring for design vars and responses. If a string, then coloring is assumed to be the name of a file that contains the coloring information in pickle format. Otherwise it must be a Coloring object. See the docstring for Coloring for details.

set_total_jac_sparsity(self, sparsity)[source]

Set the sparsity of sub-jacobians of the total jacobian.

Note: This currently will have no effect if you are not using the pyOptSparseDriver.

Parameters
sparsitystr or dict
# Sparsity is a nested dictionary where the outer keys are response
# names, the inner keys are design variable names, and the value is a tuple of
# the form (row_list, col_list, shape).
{
    resp1: {
        dv1: (rows, cols, shape),  # for sub-jac d_resp1/d_dv1
        dv2: (rows, cols, shape),
          ...
    },
    resp2: {
        ...
    }
    ...
}
use_fixed_coloring(self, coloring=<object object at 0x7f338004ca50>)[source]

Tell the driver to use a precomputed coloring.

Parameters
coloringstr

A coloring filename. If no arg is passed, filename will be determined automatically.

class openmdao.core.driver.RecordingDebugging(name, iter_count, recording_requester)[source]

Bases: openmdao.recorders.recording_iteration_stack.Recording

A class that acts as a context manager.

Handles doing the case recording and also the Driver debugging printing.

__init__(self, name, iter_count, recording_requester)

Initialize Recording.

Parameters
namestr

Name of object getting recorded.

iter_countint

Current counter of iterations completed.

recording_requesterobject

The object that wants to be recorded.