jacobian.py

Define the base Jacobian class.

class openmdao.jacobians.jacobian.Jacobian(system)[source]

Bases: object

Base Jacobian class.

This class provides a dictionary interface for sub-Jacobians and performs matrix-vector products when apply_linear is called.

Parameters
systemSystem

Parent system to this jacobian.

Attributes
_system<System>

Pointer to the system that is currently operating on this Jacobian.

_subjacs_infodict

Dictionary of the sub-Jacobian metadata keyed by absolute names.

_under_complex_stepbool

When True, this Jacobian is under complex step, using a complex jacobian.

_abs_keysdefaultdict

A cache dict for key to absolute key.

_randomizebool

If True, sparsity is being computed for simultaneous derivative coloring.

_col_var_infodict

Maps column name to start, end, and slice/indices into the result array.

_colnameslist

List of column var names.

_col2name_indndarray

Array that maps jac col index to index of column name.

__contains__(key)[source]

Return whether there is a subjac for the given promoted or relative name pair.

Parameters
key(str, str)

Promoted or relative name pair of sub-Jacobian.

Returns
bool

return whether sub-Jacobian has been defined.

__getitem__(key)[source]

Get sub-Jacobian.

Parameters
key(str, str)

Promoted or relative name pair of sub-Jacobian.

Returns
ndarray or spmatrix or list[3]

sub-Jacobian as an array, sparse mtx, or AIJ/IJ list or tuple.

__init__(system)[source]

Initialize all attributes.

__iter__()[source]

Yield next name pair of sub-Jacobian.

Yields
str
__setitem__(key, subjac)[source]

Set sub-Jacobian.

Parameters
key(str, str)

Promoted or relative name pair of sub-Jacobian.

subjacint or float or ndarray or sparse matrix

sub-Jacobian as a scalar, vector, array, or AIJ list or tuple.

items()[source]

Yield name pair and value of sub-Jacobian.

Yields
str
keys()[source]

Yield next name pair of sub-Jacobian.

Yields
str
property msginfo

Return info to prepend to messages.

Returns
str

Info to prepend to messages.

set_col(system, icol, column)[source]

Set a column of the jacobian.

The column is assumed to be the same size as a column of the jacobian.

This also assumes that the column does not attempt to set any nonzero values that are outside of specified sparsity patterns for any of the subjacs.

Parameters
systemSystem

The system that owns this jacobian.

icolint

Column index.

columnndarray

Column value.

set_complex_step_mode(active)[source]

Turn on or off complex stepping mode.

When turned on, the value in each subjac is cast as complex, and when turned off, they are returned to real values.

Parameters
activebool

Complex mode flag; set to True prior to commencing complex step.

openmdao.jacobians.jacobian.rand(d0, d1, ..., dn)

Random values in a given shape.

Note

This is a convenience function for users porting code from Matlab, and wraps random_sample. That function takes a tuple to specify the size of the output, which is consistent with other NumPy functions like numpy.zeros and numpy.ones.

Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1).

Parameters
d0, d1, …, dnint, optional

The dimensions of the returned array, must be non-negative. If no argument is given a single Python float is returned.

Returns
outndarray, shape (d0, d1, ..., dn)

Random values.

See also

random

Examples

>>> np.random.rand(3,2)
array([[ 0.14022471,  0.96360618],  #random
       [ 0.37601032,  0.25528411],  #random
       [ 0.49313049,  0.94909878]]) #random