sum_comp.py

Definition of the Element Summation Component.

class openconcept.utilities.math.sum_comp.SumComp(output_name=None, input_name=None, vec_size=1, length=1, val=1.0, scaling_factor=1, **kwargs)[source]

Bases: openmdao.core.explicitcomponent.ExplicitComponent

Compute a vectorized summation.

Use the add_equation method to define any number of summations User defines the names of the input and output variables using add_equation(output_name=’my_output’, input_name=’my_input’)

Use option axis = None to sum over all array elements. Default behavior sums along the columns.

\[\textrm{result}_j = \sum_{i=1} ^\text{vec_size} a_{ij} * \textrm{scaling factor}\]
where
  • a is shape (vec_size, n)
  • b is of shape (vec_size, n)
  • c is of shape (vec_size, n)

Result is of shape (1, n) or (1, )

_add_systems

list – List of equation systems to be initialized with the system.

__init__(output_name=None, input_name=None, vec_size=1, length=1, val=1.0, scaling_factor=1, **kwargs)[source]

Allow user to create an multiplication system with one-liner.

Parameters:
  • output_name (str) – (required) name of the result variable in this component’s namespace.
  • input_name (str) – (required) name of the input variable for this system
  • vec_size (int) – Length of the first dimension of the input and output vectors (i.e number of rows, or vector length for a 1D vector) Default is 1
  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 which results in input/output vectors of size (vec_size,)
  • scaling_factor (numeric) – Scaling factor to apply to the whole system Default is 1
  • 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)
initialize()[source]

Declare options.

Parameters:axis (int or None) – Sum along this axis. Default 0 sums along first dimension. None sums all elements into a scalar. 1 sums along rows.
add_equation(output_name, input_name, vec_size=1, length=1, val=1.0, units=None, res_units=None, desc='', lower=None, upper=None, ref=1.0, ref0=0.0, res_ref=None, var_set=0, scaling_factor=1)[source]

Add a multiplication relation.

Parameters:
  • output_name (str) – (required) name of the result variable in this component’s namespace.
  • input_name (iterable of str) – (required) names of the input variables for this system
  • vec_size (int) – Length of the first dimension of the input and output vectors (i.e number of rows, or vector length for a 1D vector) Default is 1
  • length (int) – Length of the second dimension of the input and ouptut vectors (i.e. number of columns) Default is 1 which results in input/output vectors of size (vec_size,)
  • scaling_factor (numeric) – Scaling factor to apply to the whole system Default is 1
  • 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.
  • var_set (hashable object) – For advanced users only. ID or color for this variable, relevant for reconfigurability. Default is 0.
add_output()[source]

Use add_equation instead of add_output to define equation systems.

setup()[source]

Set up the addition/subtraction system at run time.

compute(inputs, outputs)[source]

Compute the summation using numpy.

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