vector.py

Define the base Vector and Transfer classes.

class openmdao.vectors.vector.Vector(name, kind, system, root_vector=None, resize=False, alloc_complex=False, ncol=1, relevant=None)[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. Implementations:

  • <DefaultVector>
  • <PETScVector>

Attributes

read_only (bool) When True, values in the vector cannot be changed via the user __setitem__ API.
__contains__(name)[source]

Check if the variable is involved in the current mat-vec product.

Parameters:
name : str

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

Returns:
boolean

True or False.

__getitem__(name)[source]

Get the unscaled variable value in true units.

Parameters:
name : str

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

Returns:
float or ndarray

variable value (not scaled, not dimensionless).

__init__(name, kind, system, root_vector=None, resize=False, alloc_complex=False, ncol=1, relevant=None)[source]

Initialize all attributes.

Parameters:
name : str

The name of the vector: ‘nonlinear’, ‘linear’, or right-hand side name.

kind : str

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

system : <System>

Pointer to the owning system.

root_vector : <Vector>

Pointer to the vector owned by the root system.

resize : bool

If true, resize the root vector.

alloc_complex : bool

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

ncol : int

Number of columns for multi-vectors.

relevant : dict

Mapping of a VOI to a tuple containing dependent inputs, dependent outputs, and dependent systems.

__iter__()[source]

Yield 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 unscaled variable value in true units.

Parameters:
name : str

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

value : float or list or tuple or ndarray

variable value to set (not scaled, not dimensionless)

add_scal_vec(val, vec)[source]

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

Must be implemented by the subclass.

Parameters:
val : int or float

scalar.

vec : <Vector>

this vector times val is added to self.

cite = ''
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_norm()[source]

Return the norm of this vector.

Must be implemented by the subclass.

Returns:
float

norm of this vector.

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.

print_variables()[source]

Print the names and values of all variables in this vector, one per line.

scale(scale_to)[source]

Scale this vector to normalized or physical form.

Parameters:
scale_to : str

Values are “phys” or “norm” to scale to physical or normalized.

set_complex_step_mode(active)[source]

Turn on or off complex stepping mode.

When turned on, the default real ndarray is replaced with a complex ndarray and all pointers are updated to point to it.

Parameters:
active : bool

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

set_const(val)[source]

Set the value of this vector to a constant scalar value.

Must be implemented by the subclass.

Parameters:
val : int or float

scalar to set self to.

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.