Array ExpansionΒΆ

This is an example using the Omtools expand operation in order to expand an array to a higher order array.

from openmdao.api import Problem
import omtools.api as ot
from omtools.api import Group
import numpy as np


class ExampleArray2HigherArray(Group):
    def setup(self):
        # Expanding an array into a higher-rank array
        val = np.array([
            [1., 2., 3.],
            [4., 5., 6.],
        ])
        array = self.declare_input('array', val=val)
        expanded_array = ot.expand(array, (2, 4, 3, 1), 'ij->iajb')
        self.register_output('expanded_array', expanded_array)


prob = Problem()
prob.model = ExampleArray2HigherArray()
prob.setup(force_alloc_complex=True)
prob.run_model()

print('array', prob['array'].shape)
print(prob['array'])
print('expanded_array', prob['expanded_array'].shape)
print(prob['expanded_array'])
array (2, 3)
[[1. 2. 3.]
 [4. 5. 6.]]
expanded_array (2, 4, 3, 1)
[[[[1.]
   [2.]
   [3.]]

  [[1.]
   [2.]
   [3.]]

  [[1.]
   [2.]
   [3.]]

  [[1.]
   [2.]
   [3.]]]


 [[[4.]
   [5.]
   [6.]]

  [[4.]
   [5.]
   [6.]]

  [[4.]
   [5.]
   [6.]]

  [[4.]
   [5.]
   [6.]]]]