vector.py#

Define the base Vector and Transfer classes.

class openmdao.vectors.vector.Vector(name, kind, system, parent_vector=None, alloc_complex=False)[source]

Bases: object

Base Vector class.

This class is instantiated for inputs, outputs, and residuals. It provides a dictionary interface and an arithmetic operations interface.

Parameters:
namestr

The name of the vector: ‘nonlinear’ or ‘linear’.

kindstr

The kind of vector, ‘input’, ‘output’, or ‘residual’.

system<System>

The owning system.

parent_vectorVector

Parent vector.

alloc_complexbool

Whether to allocate any imaginary storage to perform complex step. Default is False.

Attributes:
_resolver<NameResolver>

Name resolver for the owning system.

_lookupfunction

Function to lookup a name in the name resolver.

_namestr

The name of the vector: ‘nonlinear’ or ‘linear’.

_typstr

Type: ‘input’ for input vectors; ‘output’ for output/residual vectors.

_kindstr

Specific kind of vector, either ‘input’, ‘output’, or ‘residual’.

_viewsdict

Dictionary mapping absolute variable names to the ndarray views.

_namesset([str, …])

Set of variables that are relevant in the current context.

_alloc_complexbool

If True, then space for the complex vector is also allocated.

_datandarray

Actual allocated data.

_slicesdict

Dictionary mapping absolute variable names to slices into the data array.

_parent_sliceslice

Slice of the parent vector that this vector represents.

_under_complex_stepbool

When True, this vector is under complex step, and data is swapped with the complex data.

_scalingtuple

If scaling is active, this is a tuple of (scale_factor, adder) for _data.

_has_solver_refbool

This is set to True only when a ref is defined on a solver.

_nlvecVector or None

Nonlinear vector.

read_onlybool

When True, values in the vector cannot be changed via the user __setitem__ API.

__contains__(name)[source]

Check if the variable is found in this vector.

Parameters:
namestr

Promoted or relative variable name in the owning system’s namespace.

Returns:
bool

True or False.

__getitem__(name)[source]

Get the variable value.

Parameters:
namestr

Promoted or relative variable name in the owning system’s namespace.

Returns:
float or ndarray

variable value.

__init__(name, kind, system, parent_vector=None, alloc_complex=False)[source]

Initialize all attributes.

__iter__()[source]

Return an iterator over variables involved in the current mat-vec product (relative names).

Returns:
listiterator

iterator over the variable names.

__setitem__(name, value)[source]

Set the variable value.

Parameters:
namestr

Promoted or relative variable name in the owning system’s namespace.

valuefloat or list or tuple or ndarray

variable value to set

add_scal_vec(val, vec)[source]

Perform in-place addition of a vector times a scalar.

Must be implemented by the subclass.

Parameters:
valint or float

Scalar.

vec<Vector>

This vector times val is added to self.

asarray(copy=False)[source]

Return a flat array representation of this vector.

If copy is True, return a copy. Otherwise, try to avoid it.

Parameters:
copybool

If True, return a copy of the array.

Returns:
ndarray

Array representation of this vector.

cite = ''
distributed = False
dot(vec)[source]

Compute the dot product of the current vec and the incoming vec.

Must be implemented by the subclass.

Parameters:
vec<Vector>

The incoming vector being dotted with self.

get_hash(alg=<built-in function openssl_sha1>)[source]

Return a hash string for the array contained in this Vector.

Parameters:
algfunction

Algorithm used to generate the hash. Default is hashlib.sha1.

Returns:
str

The hash string.

get_info(name)[source]

Get the info object for the given variable.

Parameters:
namestr

Name of the variable.

Returns:
_VecData

Info object for the variable.

get_norm()[source]

Return the norm of this vector.

Must be implemented by the subclass.

Returns:
float

Norm of this vector.

get_val(name, flat=True)[source]

Get the variable value.

Parameters:
namestr

Promoted or relative variable name in the owning system’s namespace.

flatbool

If True, return the flat value.

Returns:
float or ndarray

Variable value.

iscomplex()[source]

Return True if this vector contains complex values.

This checks the type of the values, not whether they have a nonzero imaginary part.

Returns:
bool

True if this vector contains complex values.

items()[source]

Return (name, value) for variables contained in this vector.

Yields:
str

Relative name of each variable.

ndarray or float

Value of each variable.

keys()[source]

Return variable names of variables contained in this vector (relative names).

Returns:
listiterator (Python 3.x) or list (Python 2.x)

The variable names.

nvars()[source]

Return the number of variables in this Vector.

Returns:
int

Number of variables in this Vector.

ranges()[source]

Yield (name, start, stop) for variables contained in this vector.

Yields:
str

Name of each variable.

int

Start index of the variable.

int

Stop index of the variable.

set_complex_step_mode(active)[source]

Turn on or off complex stepping mode.

Parameters:
activebool

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

set_val(val, idxs=slice(None, None, None))[source]

Set the data array of this vector to a scalar or array value, with optional indices.

Must be implemented by the subclass.

Parameters:
valfloat or ndarray

Scalar or array to set data array to.

idxsint or slice or tuple of ints and/or slices

The locations where the data array should be updated.

set_vals(vals)[source]

Set the data array of this vector using a value or iter of values, one for each variable.

The values must be in the same order and size as the variables appear in this Vector.

Parameters:
valsiter of ndarrays

Values for each variable contained in this vector, in the proper order.

set_var(name, val, idxs=slice(None, None, None), flat=False, var_name=None)[source]

Set the array view corresponding to the named variable, with optional indexing.

Parameters:
namestr

The name of the variable.

valfloat or ndarray

Scalar or array to set data array to.

idxsint or slice or tuple of ints and/or slices

The locations where the data array should be updated.

flatbool

If True, set into flattened variable.

var_namestr or None

If specified, the variable name to use when reporting errors. This is useful when setting an AutoIVC value that the user only knows by a connected input name.

set_vec(vec)[source]

Set the value of this vector to that of the incoming vector.

Must be implemented by the subclass.

Parameters:
vec<Vector>

The vector whose values self is set to.

values()[source]

Return values of variables contained in this vector.

Yields:
ndarray or float

Value of each variable.