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.

Parameters
**kwargsdict of keyword arguments

Keyword arguments that will be mapped into the Driver options.

Attributes
failbool

Reports whether the driver ran successfully.

iter_countint

Keep track of iterations for case recording.

options<OptionsDictionary>

Dictionary with general pyoptsparse options.

recording_options<OptionsDictionary>

Dictionary with driver recording options.

citestr

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

_problemweakref to <Problem>

Pointer to the containing problem.

supports<OptionsDictionary>

Provides a consistent way for drivers to declare what features they support.

_designvarsdict

Contains all design variable info.

_designvars_discretelist

List of design variables that are discrete.

_dist_driver_varsdict

Dict of constraints that are distributed outputs. Key is abs variable name, values are (local indices, local sizes).

_consdict

Contains all constraint info.

_objsdict

Contains all objective info.

_responsesdict

Contains all response info.

_remote_dvsdict

Dict of design variables that are remote on at least one proc. Values are (owning rank, size).

_remote_consdict

Dict of constraints that are remote on at least one proc. Values are (owning rank, size).

_remote_objsdict

Dict of objectives that are remote on at least one proc. Values are (owning rank, size).

_rec_mgr<RecordingManager>

Object that manages all recorders added to this driver.

_coloring_infodict

Metadata pertaining to total coloring.

_total_jac_sparsitydict, str, or None

Specifies sparsity of sub-jacobians of the total jacobian. Only used by pyOptSparseDriver.

_res_jacsdict

Dict of sparse subjacobians for use with certain optimizers, e.g. pyOptSparseDriver.

_total_jac_TotalJacInfo or None

Cached total jacobian handling object.

__init__(**kwargs)[source]

Initialize the driver.

add_recorder(recorder)[source]

Add a recorder to the driver.

Parameters
recorderCaseRecorder

A recorder instance.

cleanup()[source]

Clean up resources prior to exit.

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

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.

get_constraint_values(ctype='all', lintype='all', driver_scaling=True)[source]

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)[source]

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_objective_values(driver_scaling=True)[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.

Returns
dict

Dictionary containing values of each objective.

property msginfo

Return info to prepend to messages.

Returns
str

Info to prepend to messages.

record_iteration()[source]

Record an iteration of the current Driver.

run()[source]

Execute this driver.

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

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)[source]

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)[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_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=<object object>)[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.

Parameters
namestr

Name of object getting recorded.

iter_countint

Current counter of iterations completed.

recording_requesterobject

Object to which this recorder is attached.

__init__(name, iter_count, recording_requester)

Initialize Recording.

openmdao.core.driver.record_iteration(requester, prob, case_name)[source]

Record an iteration of the current Problem or Driver.

Parameters
requesterProblem or Driver

The recording requester.

probProblem

The Problem.

case_namestr

The name of this case.