Source code for openmdao.test_suite.components.array_comp

import numpy as np

import openmdao.api as om


[docs]class ArrayComp(om.ExplicitComponent):
[docs] def setup(self): J1 = np.array([[1.0, 3.0, -2.0, 7.0], [6.0, 2.5, 2.0, 4.0], [-1.0, 0.0, 8.0, 1.0], [1.0, 4.0, -5.0, 6.0]]) self.J1 = J1 self.J2 = J1 * 3.3 self.Jb = J1.T # Inputs self.add_input('x1', np.zeros([4])) self.add_input('x2', np.zeros([4])) self.add_input('bb', np.zeros([4])) # Outputs self.add_output('y1', np.zeros([4])) self.declare_partials(of='*', wrt='*') self.set_check_partial_options('x*', directional=True) self.exec_count = 0
[docs] def compute(self, inputs, outputs): """ Execution. """ outputs['y1'] = self.J1.dot(inputs['x1']) + self.J2.dot(inputs['x2']) + self.Jb.dot(inputs['bb']) self.exec_count += 1
[docs] def compute_partials(self, inputs, partials): """ Analytical derivatives. """ partials[('y1', 'x1')] = self.J1 partials[('y1', 'x2')] = self.J2 partials[('y1', 'bb')] = self.Jb