vector.py#
Define the base Vector and Transfer classes.
- class openmdao.vectors.vector.Vector(name, kind, system, root_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. Implementations:
<DefaultVector>
<PETScVector>
- Parameters:
- namestr
The name of the vector: ‘nonlinear’ or ‘linear’.
- kindstr
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.
- alloc_complexbool
Whether to allocate any imaginary storage to perform complex step. Default is False.
- Attributes:
- _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’.
- _systemSystem
Weak ref to the owning system.
- _viewsdict
Dictionary mapping absolute variable names to the ndarray views.
- _views_flatdict
Dictionary mapping absolute variable names to the flattened ndarray views.
- _namesset([str, …])
Set of variables that are relevant in the current context.
- _root_vectorVector
Pointer to the vector owned by the root system.
- _root_offsetint
Offset of this vector into the root vector.
- _alloc_complexbool
If True, then space for the complex vector is also allocated.
- _datandarray
Actual allocated data.
- _slicesdict
Mapping of var name to slice.
- _under_complex_stepbool
When True, this vector is under complex step, and data is swapped with the complex data.
- _do_scalingbool
True if this vector performs scaling.
- _do_adderbool
True if this vector’s scaling includes an additive term.
- _scalingdict
Contains scale factors to convert data arrays.
- _scaling_nl_vecdict
Reference to the scaling factors in the nonlinear vector. Only used for linear input vectors.
- read_onlybool
When True, values in the vector cannot be changed via the user __setitem__ API.
- _lenint
Total length of data vector (including shared memory parts).
- _has_solver_refbool
This is set to True only when a ref is defined on a solver.
- __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, root_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_norm()[source]
Return the norm of this vector.
Must be implemented by the subclass.
- Returns:
- float
Norm of this vector.
- 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.
- 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 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.