combine_split_comp.py

Definition of the Vector Combiner/Splitter Component.

class openconcept.utilities.math.combine_split_comp.VectorConcatenateComp(output_name=None, input_names=None, vec_sizes=None, length=1, val=1.0, **kwargs)

Bases: ExplicitComponent

Concatenate one or more sets of more than one vector into one or more output vectors.

Use the add_relation method to define any number of concat relationships User defines the names of the input and output variables using add_relation(output_name=’my_output’, input_names=[‘a’,’b’, ‘c’, …],vec_sizes=[10,10,5,…])

For each relation declared: All input vectors must be of the same second dimension, specified by the option ‘length’. The number of vec_sizes given must match the number of inputs declared. Input units must be compatible with output units for each relation.

_add_systems

List of equation systems to be initialized with the system.

Type:

list

__init__(output_name=None, input_names=None, vec_sizes=None, length=1, val=1.0, **kwargs)

Allow user to create an addition/subtracton system with one-liner.

Parameters:
  • output_name (str) – (required) name of the result variable in this component’s namespace.

  • input_names (iterable of str) – (required) names of the input variables for this system

  • vec_sizes (iterable of int) – (required) Lengths of the first dimension of each input vector (i.e number of rows, or vector length for a 1D vector)

  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 (i.e. a vector of scalars)

  • val (float or list or tuple or ndarray) – The initial value of the variable being added in user-defined units. Default is 1.0.

  • kwargs (str) – Any other arguments to pass to the addition system (same as add_output method for ExplicitComponent) Examples include units (str or None), desc (str)

add_relation(output_name, input_names, vec_sizes, length=1, val=1.0, units=None, res_units=None, desc='', lower=None, upper=None, ref=1.0, ref0=0.0, res_ref=None)

Add a concatenation relation.

Parameters:
  • output_name (str) – (required) name of the result variable in this component’s namespace.

  • input_names (iterable of str) – (required) names of the input variables for this system

  • vec_sizes (iterable of int) – (required) Lengths of the first dimension of each input vector (i.e number of rows, or vector length for a 1D vector)

  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 (i.e. a vector of scalars)

  • val (float or list or tuple or ndarray) – The initial value of the variable being added in user-defined units. Default is 1.0.

  • units (str or None) – Units in which the output variables will be provided to the component during execution. Default is None, which means it has no units.

  • res_units (str or None) – Units in which the residuals of this output will be given to the user when requested. Default is None, which means it has no units.

  • desc (str) – description of the variable.

  • lower (float or list or tuple or ndarray or Iterable or None) – lower bound(s) in user-defined units. It can be (1) a float, (2) an array_like consistent with the shape arg (if given), or (3) an array_like matching the shape of val, if val is array_like. A value of None means this output has no lower bound. Default is None.

  • upper (float or list or tuple or ndarray or or Iterable None) – upper bound(s) in user-defined units. It can be (1) a float, (2) an array_like consistent with the shape arg (if given), or (3) an array_like matching the shape of val, if val is array_like. A value of None means this output has no upper bound. Default is None.

  • ref (float or ndarray) – Scaling parameter. The value in the user-defined units of this output variable when the scaled value is 1. Default is 1.

  • ref0 (float or ndarray) – Scaling parameter. The value in the user-defined units of this output variable when the scaled value is 0. Default is 0.

  • res_ref (float or ndarray) – Scaling parameter. The value in the user-defined res_units of this output’s residual when the scaled value is 1. Default is 1.

add_output()

Use add_relation instead of add_output to define concatenate relations.

setup()

Set up the component at run time from both add_relation and __init__.

compute(inputs, outputs)

Concatenate the vector(s) using numpy.

Parameters:
  • inputs (Vector) – unscaled, dimensional input variables read via inputs[key]

  • outputs (Vector) – unscaled, dimensional output variables read via outputs[key]

class openconcept.utilities.math.combine_split_comp.VectorSplitComp(output_names=None, input_name=None, vec_sizes=None, length=1, val=1.0, **kwargs)

Bases: ExplicitComponent

Splits one or more vectors into one or more sets of 2+ vectors.

Use the add_relation method to define any number of splitter relationships User defines the names of the input and output variables using add_relation(output_names=[‘a’,’b’, ‘c’, …],input_name=’my_input’,vec_sizes=[10,10,5,…])

For each relation declared: All output vectors must be of the same second dimension, specified by the option ‘length’. The first dim length of the input vector must equal the sum of the first dim lengths of the output vectors. The number of vec_sizes given must match the number of outputs declared. Input units must be compatible with output units for each relation.

_add_systems

List of equation systems to be initialized with the system.

Type:

list

__init__(output_names=None, input_name=None, vec_sizes=None, length=1, val=1.0, **kwargs)

Allow user to create an addition/subtracton system with one-liner.

Parameters:
  • output_names (iterable of str) – (required) names of the output (split) variables in this component’s namespace.

  • input_name (str) – (required) names of the input variable for this system

  • vec_sizes (iterable of int) – (required) Lengths of the first dimension of each input vector (i.e number of rows, or vector length for a 1D vector)

  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 (i.e. a vector of scalars)

  • val (float or list or tuple or ndarray) – The initial value of the variable being added in user-defined units. Default is 1.0.

  • kwargs (str) – Any other arguments to pass to the addition system (same as add_output method for ExplicitComponent) Examples include units (str or None), desc (str)

add_relation(output_names, input_name, vec_sizes, length=1, val=1.0, units=None, res_units=None, desc='', lower=None, upper=None, ref=1.0, ref0=0.0, res_ref=None)

Add a concatenation relation.

Parameters:
  • output_names (iterable of str) – (required) names of the output (split) variables in this component’s namespace.

  • input_name (str) – (required) names of the input variable for this system

  • vec_sizes (iterable of int) – (required) Lengths of the first dimension of each input vector (i.e number of rows, or vector length for a 1D vector)

  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 (i.e. a vector of scalars)

  • val (float or list or tuple or ndarray) – The initial value of the variable being added in user-defined units. Default is 1.0.

  • units (str or None) – Units in which the output variables will be provided to the component during execution. Default is None, which means it has no units.

  • res_units (str or None) – Units in which the residuals of this output will be given to the user when requested. Default is None, which means it has no units.

  • desc (str) – description of the variable.

  • lower (float or list or tuple or ndarray or Iterable or None) – lower bound(s) in user-defined units. It can be (1) a float, (2) an array_like consistent with the shape arg (if given), or (3) an array_like matching the shape of val, if val is array_like. A value of None means this output has no lower bound. Default is None.

  • upper (float or list or tuple or ndarray or or Iterable None) – upper bound(s) in user-defined units. It can be (1) a float, (2) an array_like consistent with the shape arg (if given), or (3) an array_like matching the shape of val, if val is array_like. A value of None means this output has no upper bound. Default is None.

  • ref (float or ndarray) – Scaling parameter. The value in the user-defined units of this output variable when the scaled value is 1. Default is 1.

  • ref0 (float or ndarray) – Scaling parameter. The value in the user-defined units of this output variable when the scaled value is 0. Default is 0.

  • res_ref (float or ndarray) – Scaling parameter. The value in the user-defined res_units of this output’s residual when the scaled value is 1. Default is 1.

add_output()

Use add_relation instead of add_output to define split relations.

setup()

Set up the component at run time from both add_relation and __init__.

compute(inputs, outputs)

Split the vector(s) using numpy.

Parameters:
  • inputs (Vector) – unscaled, dimensional input variables read via inputs[key]

  • outputs (Vector) – unscaled, dimensional output variables read via outputs[key]