def _init_parameterized(self):
    self.num_var = self.metadata['num_var']
    self.var_shape = self.metadata['var_shape']
    self.size = (self.num_var * np.prod(self.var_shape))
    if (self.metadata['jacobian_type'] == 'matvec'):
        self.compute_jacvec_product = self.jacvec_product
    if (self.metadata['connection_type'] == 'implicit'):
        idx = self.metadata['index']
        self._cycle_names['x'] = 'x_{}_{{}}'.format(idx)
        self._cycle_names['y'] = 'x_{}_{{}}'.format((idx + 1))
        self._cycle_names['theta'] = 'theta_{}'.format(idx)
        self._cycle_names['theta_out'] = 'theta_{}'.format((idx + 1))
        num_var = self.metadata['num_var']
        self._cycle_promotes_in = [self._cycle_names['x'].format(i) for i in range(num_var)]
        self._cycle_promotes_out = [self._cycle_names['y'].format(i) for i in range(num_var)]
        self._cycle_promotes_in.append(self._cycle_names['theta'])
        self._cycle_promotes_out.append(self._cycle_names['theta_out'])
    else:
        self._cycle_names['x'] = 'x_{}'
        self._cycle_names['y'] = 'y_{}'
        self._cycle_names['theta'] = 'theta'
        self._cycle_names['theta_out'] = 'theta_out'
        self._cycle_promotes_in = self._cycle_promotes_out = []
def _init_parameterized(self):
    self.num_var = self.metadata['num_var']
    self.var_shape = self.metadata['var_shape']
    self.size = (self.num_var * np.prod(self.var_shape))
    if (self.metadata['jacobian_type'] == 'matvec'):
        self.compute_jacvec_product = self.jacvec_product
    if (self.metadata['connection_type'] == 'implicit'):
        idx = self.metadata['index']
        self._cycle_names['x'] = 'x_{}_{{}}'.format(idx)
        self._cycle_names['y'] = 'x_{}_{{}}'.format((idx + 1))
        self._cycle_names['theta'] = 'theta_{}'.format(idx)
        self._cycle_names['theta_out'] = 'theta_{}'.format((idx + 1))
        num_var = self.metadata['num_var']
        self._cycle_promotes_in = [self._cycle_names['x'].format(i) for i in range(num_var)]
        self._cycle_promotes_out = [self._cycle_names['y'].format(i) for i in range(num_var)]
        self._cycle_promotes_in.append(self._cycle_names['theta'])
        self._cycle_promotes_out.append(self._cycle_names['theta_out'])
    else:
        self._cycle_names['x'] = 'x_{}'
        self._cycle_names['y'] = 'y_{}'
        self._cycle_names['theta'] = 'theta'
        self._cycle_names['theta_out'] = 'theta_out'
        self._cycle_promotes_in = self._cycle_promotes_out = []