Размер выходных данных в OpenMDAO

#arrays #variables #matrix #openmdao

#массивы #переменные #матрица #openmdao

Вопрос:

Возможно ли, чтобы списки или массивы передавались в качестве выходных данных компонентов в OpenMDAO?

Поскольку моя задача основана на матрицах 6×6 для решения уравнения движения с 6 степенями свободы, я хотел бы иметь возможность сделать следующее:

 M = np.ones([6, 6]) outputs['M'] = M  

Однако это приводит к ошибке:

Ошибка значения: не удается преобразовать массив размером 36 в форму (1,)

Есть ли какой-либо способ избежать передачи каждого из 36 значений отдельно?

Ответ №1:

Да, вы можете объявить вывод любого размера или формы в setup методе вашего компонента, выполнив следующие действия:

 self.add_output('M', shape=(6, 6))  

или

 self.add_output('M', val=np.ones((6, 6)))