def show(self, rate=None, cost=None): # Get units of measure display_units = self.display_units rate_units = rate or display_units.rate cost_units = cost or display_units.cost rate = convert(self.rate, 'kW', rate_units) cost = convert(self.cost, 'USD/hr', cost_units) return ( f'<{type(self).__name__}: {rate:.3g} {rate_units}, {cost:.3g} {cost_units}>' )
def _info_data(self, duty, flow, cost): # Get units of measure su = self.display_units duty_units = duty or su.duty flow_units = flow or su.flow cost_units = cost or su.cost # Change units and return info string flow = self.inlet_utility_stream.get_total_flow(flow_units) duty = convert(self.duty, 'kJ/hr', duty_units) cost = convert(self.cost, 'USD/hr', cost_units) return duty, copysign(flow, self.flow), cost, duty_units, flow_units, cost_units
def show(self, rate=None, cost=None): # Get units of measure display_units = self.display_units rate_units = rate or display_units.rate cost_units = cost or display_units.cost production = convert(self.production, 'kW', rate_units) consumption = convert(self.consumption, 'kW', rate_units) rate = consumption - production cost = convert(self.cost, 'USD/hr', cost_units) print(f'{type(self).__name__}:\n' f' consumption: {consumption:.3g} {rate_units}\n' f' production: {production:.3g} {rate_units}\n' f' rate: {rate:.3g} {rate_units}\n' f' cost: {cost:.3g} {cost_units}')
def _info_phaseTP(self, phase, T_units, P_units): T_limit = convert(self.T_limit, 'K', T_units) T_limit = f"{T_limit:.3g} K" if T_limit else "None" T = convert(self.T, 'K', T_units) P = convert(self.P, 'Pa', P_units) s = '' if isinstance(phase, str) else 's' ht_price = self.heat_transfer_price rg_price = self.regeneration_price ht_eff = self.heat_transfer_efficiency return (f" heat_transfer_efficiency: {ht_eff:.3f}\n" f" heat_transfer_price: {ht_price:.3g} USD/kJ\n" f" regeneration_price: {rg_price:.3g} USD/kmol\n" f" T_limit: {T_limit}\n" f" phase{s}: {repr(phase)}\n" f" T: {T:.5g} {T_units}\n" f" P: {P:.6g} {P_units}\n")
def set_figure_size(width=None, aspect_ratio=None, units=None): # units default to inch # width defaults 6.614 inches # aspect ratio defaults to 0.65 if aspect_ratio is None: aspect_ratio = 0.65 if width is None: width = 6.6142 else: if units is not None: from thermosteam.units_of_measure import convert width = convert(width, units, 'inch') import matplotlib params = matplotlib.rcParams params['figure.figsize'] = np.array([width, width * aspect_ratio])
def get_design_result(self, key, units): return convert(self.design_results[key], self._units[key], units)