def _write_table(self, var_type, var_data, hierarchical, print_arrays, out_stream): """ Write table of variable names, values, residuals, and metadata to out_stream. Parameters ---------- var_type : 'input', 'explicit' or 'implicit' Indicates type of variables, input or explicit/implicit output. var_data : list List of (name, dict of vals and metadata) tuples. hierarchical : bool When True, human readable output shows variables in hierarchical format. print_arrays : bool When False, in the columnar display, just display norm of any ndarrays with size > 1. The norm is surrounded by vertical bars to indicate that it is a norm. When True, also display full values of the ndarray below the row. Format is affected by the values set with numpy.set_printoptions Default is False. out_stream : file-like object Where to send human readable output. Set to None to suppress. """ if out_stream is None: return # Make a dict of variables. Makes it easier to work with in this method var_dict = OrderedDict() for name, vals in var_data: var_dict[name] = vals # determine pathname of the system if self.source in ('root', 'driver', 'problem', 'root.nonlinear_solver'): pathname = '' elif '|' in self.source: pathname = get_source_system(self.source) else: pathname = self.source.replace('root.', '') if pathname.endswith('.nonlinear_solver'): pathname = pathname[:-17] # len('.nonlinear_solver') == 17 # vars should be in execution order if 'execution_order' in self._var_info: var_order = self._var_info['execution_order'] var_list = [ var_name for var_name in var_order if var_name in var_dict ] else: # don't have execution order, just sort for determinism var_list = sorted(var_dict.keys()) write_var_table(pathname, var_list, var_type, var_dict, hierarchical=hierarchical, top_name='model', print_arrays=print_arrays, out_stream=out_stream)
def _write_table(self, var_type, var_data, hierarchical, print_arrays, out_stream): """ Write table of variable names, values, residuals, and metadata to out_stream. The output values could actually represent input variables. In this context, outputs refers to the data that is being logged to an output stream. Parameters ---------- var_type : 'input', 'explicit' or 'implicit' Indicates type of variables, input or explicit/implicit output. var_data : list List of (name, dict of vals and metadata) tuples. hierarchical : bool When True, human readable output shows variables in hierarchical format. print_arrays : bool When False, in the columnar display, just display norm of any ndarrays with size > 1. The norm is surrounded by vertical bars to indicate that it is a norm. When True, also display full values of the ndarray below the row. Format is affected by the values set with numpy.set_printoptions Default is False. out_stream : file-like object Where to send human readable output. Set to None to suppress. """ if out_stream is None: return # Make a dict of outputs. Makes it easier to work with in this method var_dict = OrderedDict() for name, vals in var_data: var_dict[name] = vals write_var_table('model', var_dict.keys(), var_type, var_dict, hierarchical, print_arrays, out_stream)