def get_variables(self): return { 'fuel': dc_simple(), 'fuel_alias': dc_simple(), 'air': dc_simple(), 'air_alias': dc_simple(), 'path': dc_simple(), 'lamb': dc_cp( min_val=1, deriv=self.lambda_deriv, func=self.lambda_func, latex=self.lambda_func_doc, num_eq=1), 'ti': dc_cp( min_val=0, deriv=self.ti_deriv, func=self.ti_func, latex=self.ti_func_doc, num_eq=1) }
def get_variables(self): return { 'P': dc_cp(max_val=0, num_eq=1, deriv=self.energy_balance_deriv, func=self.energy_balance_func, latex=self.energy_balance_func_doc), 'eta_s': dc_cp(min_val=0, max_val=1, num_eq=1, deriv=self.eta_s_deriv, func=self.eta_s_func, latex=self.eta_s_func_doc), 'eta_s_char': dc_cc(param='m', num_eq=1, deriv=self.eta_s_char_deriv, func=self.eta_s_char_func, latex=self.eta_s_char_func_doc), 'pr': dc_cp(min_val=0, max_val=1, num_eq=1, deriv=self.pr_deriv, func=self.pr_func, func_params={'pr': 'pr'}, latex=self.pr_func_doc), 'cone': dc_simple(deriv=self.cone_deriv, num_eq=1, func=self.cone_func, latex=self.cone_func_doc) }
def get_variables(self): return { 'Q': dc_cp( deriv=self.energy_balance_deriv, latex=self.energy_balance_func_doc, num_eq=1, func=self.energy_balance_func), 'pr': dc_cp( min_val=1e-4, max_val=1, num_eq=1, deriv=self.pr_deriv, latex=self.pr_func_doc, func=self.pr_func, func_params={'pr': 'pr'}), 'zeta': dc_cp( min_val=0, max_val=1e15, num_eq=1, deriv=self.zeta_deriv, func=self.zeta_func, latex=self.zeta_func_doc, func_params={'zeta': 'zeta'}), 'D': dc_cp(min_val=1e-2, max_val=2, d=1e-4), 'L': dc_cp(min_val=1e-1, d=1e-3), 'ks': dc_cp(val=1e-4, min_val=1e-7, max_val=1e-3, d=1e-8), 'kA': dc_cp(min_val=0, d=1), 'kA_char': dc_cc(param='m'), 'Tamb': dc_cp(), 'dissipative': dc_simple(val=True), 'hydro_group': dc_gcp( elements=['L', 'ks', 'D'], num_eq=1, latex=self.hydro_group_func_doc, func=self.hydro_group_func, deriv=self.hydro_group_deriv), 'kA_group': dc_gcp( elements=['kA', 'Tamb'], num_eq=1, latex=self.kA_group_func_doc, func=self.kA_group_func, deriv=self.kA_group_deriv), 'kA_char_group': dc_gcp( elements=['kA_char', 'Tamb'], num_eq=1, latex=self.kA_char_group_func_doc, func=self.kA_char_group_func, deriv=self.kA_char_group_deriv) }
def attr(): return { 'pr': dc_cp(min_val=1e-4, max_val=1), 'zeta': dc_cp(min_val=0), 'dp_char': dc_cc(param='m'), 'Sirr': dc_simple() }
def get_variables(self): return { 'Q': dc_cp( deriv=self.energy_balance_deriv, latex=self.energy_balance_func_doc, num_eq=1, func=self.energy_balance_func), 'pr': dc_cp( min_val=1e-4, max_val=1, num_eq=1, deriv=self.pr_deriv, latex=self.pr_func_doc, func=self.pr_func, func_params={'pr': 'pr'}), 'zeta': dc_cp( min_val=0, max_val=1e15, num_eq=1, deriv=self.zeta_deriv, func=self.zeta_func, latex=self.zeta_func_doc, func_params={'zeta': 'zeta'}), 'D': dc_cp(min_val=1e-2, max_val=2, d=1e-4), 'L': dc_cp(min_val=1e-1, d=1e-3), 'ks': dc_cp(val=1e-4, min_val=1e-7, max_val=1e-3, d=1e-8), 'E': dc_cp(min_val=0), 'A': dc_cp(min_val=0), 'eta_opt': dc_cp(min_val=0, max_val=1), 'lkf_lin': dc_cp(min_val=0), 'lkf_quad': dc_cp(min_val=0), 'Tamb': dc_cp(), 'Q_loss': dc_cp(max_val=0, val=0), 'dissipative': dc_simple(val=True), 'hydro_group': dc_gcp( elements=['L', 'ks', 'D'], num_eq=1, latex=self.hydro_group_func_doc, func=self.hydro_group_func, deriv=self.hydro_group_deriv), 'energy_group': dc_gcp( elements=['E', 'eta_opt', 'lkf_lin', 'lkf_quad', 'A', 'Tamb'], num_eq=1, latex=self.energy_group_func_doc, func=self.energy_group_func, deriv=self.energy_group_deriv) }
def attr(self): return {'P': dc_cp(min_val=0), 'Q': dc_cp(max_val=0), 'eta': dc_cp(min_val=0, max_val=1), 'e': dc_cp(), 'pr_c': dc_cp(max_val=1), 'zeta': dc_cp(min_val=0), 'eta_char': dc_cc(method='GENERIC'), 'S': dc_simple()}
def construct_connections(c, *args): r""" Create TESPy connection from data in the .csv-file and its parameters. Parameters ---------- c : pandas.core.series.Series Connection information from .csv-file. args[0] : pandas.core.frame.DataFrame DataFrame containing all created components. Returns ------- conn : tespy.connections.connection.Connection TESPy connection object. """ # create connection conn = Connection( args[0].instance[c.source], c.source_id, args[0].instance[c.target], c.target_id, label=str(c.label) ) # read basic properties for key in ['design', 'offdesign', 'design_path', 'local_design', 'local_offdesign']: if key in c: if isinstance(c[key], float): setattr(conn, key, None) else: setattr(conn, key, c[key]) # read fluid properties for key in ['m', 'p', 'h', 'T', 'x', 'v', 'Td_bp']: if key in c: setattr(conn, key, dc_prop( val=c[key], val0=c[key + '0'], val_set=c[key + '_set'], unit=c[key + '_unit'], ref=None, ref_set=c[key + '_ref_set'])) if 'state' in c: conn.state = dc_simple(val=c[key], is_set=c[key + '_set']) # read fluid vector val = {} val0 = {} val_set = {} for key in args[1].fluids: if key in c: val[key] = c[key] val0[key] = c[key + '0'] val_set[key] = c[key + '_set'] conn.fluid = dc_flu( val=val, val0=val0, val_set=val_set, balance=c['balance']) # write properties to connection and return connection object return conn
def attr(): return {'P': dc_cp(min_val=0), 'Q': dc_cp(max_val=0), 'eta': dc_cp(min_val=0, max_val=1), 'e': dc_cp(), 'pr_c': dc_cp(max_val=1), 'zeta': dc_cp(min_val=0), 'eta_char': dc_cc(), 'S': dc_simple()}
def attr(): r""" Return available attributes of a connection. Returns ------- out : list List of available attributes of a connection. """ return {'m': dc_prop(), 'p': dc_prop(), 'h': dc_prop(), 'T': dc_prop(), 'x': dc_prop(), 'v': dc_prop(), 'fluid': dc_flu(), 'Td_bp': dc_prop(), 'state': dc_simple()}
def __init__(self, label, **kwargs): self.comps = pd.DataFrame( columns=['param', 'P_ref', 'char', 'efficiency', 'base']) self.label = label self.P = dc_simple(val=np.nan, is_set=False) self.char = CharLine(x=np.array([0, 3]), y=np.array([1, 1])) self.printout = True self.set_attr(**kwargs) msg = 'Created bus ' + self.label + '.' logging.debug(msg)
def get_variables(self): return { 'Q': dc_cp( max_val=0, num_eq=1, latex=self.energy_balance_cold_func_doc, func=self.energy_balance_cold_func, deriv=self.energy_balance_cold_deriv), 'pr1': dc_cp( min_val=1e-4, max_val=1, num_eq=1, deriv=self.pr_deriv, latex=self.pr_func_doc, func=self.pr_func, func_params={'pr': 'pr1'}), 'pr2': dc_cp( min_val=1e-4, max_val=1, num_eq=1, latex=self.pr_func_doc, deriv=self.pr_deriv, func=self.pr_func, func_params={'pr': 'pr2', 'inconn': 1, 'outconn': 1}), 'pr3': dc_cp( min_val=1e-4, max_val=1, num_eq=1, latex=self.pr_func_doc, deriv=self.pr_deriv, func=self.pr_func, func_params={'pr': 'pr3', 'inconn': 2, 'outconn': 2}), 'zeta1': dc_cp( min_val=0, max_val=1e15, num_eq=1, latex=self.zeta_func_doc, deriv=self.zeta_deriv, func=self.zeta_func, func_params={'zeta': 'zeta1'}), 'zeta2': dc_cp( min_val=0, max_val=1e15, num_eq=1, latex=self.zeta_func_doc, deriv=self.zeta_deriv, func=self.zeta_func, func_params={'zeta': 'zeta2', 'inconn': 1, 'outconn': 1}), 'zeta3': dc_cp( min_val=0, max_val=1e15, num_eq=1, latex=self.zeta_func_doc, deriv=self.zeta_deriv, func=self.zeta_func, func_params={'zeta': 'zeta3', 'inconn': 2, 'outconn': 2}), 'subcooling': dc_simple( val=False, num_eq=1, latex=self.subcooling_func_doc, deriv=self.subcooling_deriv, func=self.subcooling_func), 'overheating': dc_simple( val=False, num_eq=1, latex=self.overheating_func_doc, deriv=self.overheating_deriv, func=self.overheating_func) }
def attr(): return {'Q': dc_cp(max_val=0), 'pr1': dc_cp(max_val=1), 'pr2': dc_cp(max_val=1), 'pr3': dc_cp(max_val=1), 'zeta1': dc_cp(min_val=0), 'zeta2': dc_cp(min_val=0), 'zeta3': dc_cp(min_val=0), 'subcooling': dc_simple(val=False), 'overheating': dc_simple(val=False), 'SQ1': dc_simple(), 'SQ2': dc_simple(), 'SQ3': dc_simple(), 'Sirr': dc_simple()}
def get_variables(self): return { 'Q': dc_cp( max_val=0, func=self.energy_balance_hot_func, num_eq=1, deriv=self.energy_balance_hot_deriv, latex=self.energy_balance_hot_func_doc), 'kA': dc_cp( min_val=0, num_eq=1, func=self.kA_func, latex=self.kA_func_doc, deriv=self.kA_deriv), 'td_log': dc_cp(min_val=0), 'ttd_u': dc_cp( min_val=0, num_eq=1, func=self.ttd_u_func, deriv=self.ttd_u_deriv, latex=self.ttd_u_func_doc), 'ttd_l': dc_cp( min_val=0, num_eq=1, func=self.ttd_l_func, deriv=self.ttd_l_deriv, latex=self.ttd_l_func_doc), 'pr1': dc_cp( min_val=1e-4, max_val=1, num_eq=1, deriv=self.pr_deriv, latex=self.pr_func_doc, func=self.pr_func, func_params={'pr': 'pr1'}), 'pr2': dc_cp( min_val=1e-4, max_val=1, num_eq=1, latex=self.pr_func_doc, deriv=self.pr_deriv, func=self.pr_func, func_params={'pr': 'pr2', 'inconn': 1, 'outconn': 1}), 'zeta1': dc_cp( min_val=0, max_val=1e15, num_eq=1, latex=self.zeta_func_doc, deriv=self.zeta_deriv, func=self.zeta_func, func_params={'zeta': 'zeta1'}), 'zeta2': dc_cp( min_val=0, max_val=1e15, num_eq=1, latex=self.zeta_func_doc, deriv=self.zeta_deriv, func=self.zeta_func, func_params={'zeta': 'zeta2', 'inconn': 1, 'outconn': 1}), 'kA_char': dc_gcc( elements=['kA_char1', 'kA_char2'], num_eq=1, latex=self.kA_char_func_doc, func=self.kA_char_func, deriv=self.kA_char_deriv), 'kA_char1': dc_cc(param='m'), 'kA_char2': dc_cc( param='m', char_params={ 'type': 'rel', 'inconn': 1, 'outconn': 1}), 'subcooling': dc_simple( val=False, num_eq=1, latex=self.subcooling_func_doc, deriv=self.subcooling_deriv, func=self.subcooling_func) }
def construct_comps(c, *args): r""" Create TESPy component from class name and set parameters. Parameters ---------- c : pandas.core.series.Series Component information from .csv-file. args[0] : pandas.core.frame.DataFrame DataFrame containing the data of characteristic lines. args[1] : pandas.core.frame.DataFrame DataFrame containing the data of characteristic maps. Returns ------- instance : tespy.components.components.component TESPy component object. """ target_class = comp_target_classes[c.cp] instance = target_class(c.label) kwargs = {} # basic properties for key in [ 'design', 'offdesign', 'design_path', 'local_design', 'local_offdesign' ]: if key in c: kwargs[key] = c[key] for key, value in instance.variables.items(): if key in c: # component parameters if isinstance(value, dc_cp): kwargs[key] = dc_cp(val=c[key], is_set=c[key + '_set'], is_var=c[key + '_var']) # component parameters elif isinstance(value, dc_simple): kwargs[key] = dc_simple(val=c[key], is_set=c[key + '_set']) # component characteristics elif isinstance(value, dc_cc): # finding x and y values of the characteristic function values = args[0]['id'] == c[key] try: x = args[0][values].x.values[0] y = args[0][values].y.values[0] extrapolate = False if 'extrapolate' in args[0].columns: extrapolate = args[0][values].extrapolate.values[0] char = char_line(x=x, y=y, extrapolate=extrapolate) except IndexError: char = None msg = ('Could not find x and y values for characteristic ' 'line, using defaults instead for function ' + key + ' at component ' + c.label + '.') logging.warning(msg) kwargs[key] = dc_cc(is_set=c[key + '_set'], param=c[key + '_param'], func=char) # component characteristics elif isinstance(value, dc_cm): # finding x and y values of the characteristic function values = args[1]['id'] == c[key] try: x = list(args[1][values].x.values[0]) y = list(args[1][values].y.values[0]) z1 = list(args[1][values].z1.values[0]) z2 = list(args[1][values].z2.values[0]) target_class = map_target_classes[args[1] [values].type.values[0]] char = target_class(x=x, y=y, z1=z1, z2=z2) except IndexError: char = None msg = ('Could not find x, y, z1 and z2 values for ' 'characteristic map of component ' + c.label + '!') logging.warning(msg) kwargs[key] = dc_cm(is_set=c[key + '_set'], param=c[key + '_param'], func=char) # grouped component parameters elif isinstance(value, dc_gcp): kwargs[key] = dc_gcp(method=c[key]) instance.set_attr(**kwargs) return instance
def get_variables(): return {'num_in': dc_simple()}
def attr(self): return {'num_out': dc_simple()}
def construct_conns(c, *args): r""" Create TESPy connection from data in the .csv-file and its parameters. Parameters ---------- c : pandas.core.series.Series Connection information from .csv-file. args[0] : pandas.core.frame.DataFrame DataFrame containing all created components. Returns ------- conn : tespy.connections.connection TESPy connection object. """ # create connection conn = connection(args[0].instance[c.s], c.s_id, args[0].instance[c.t], c.t_id) kwargs = {} # read basic properties for key in [ 'design', 'offdesign', 'design_path', 'local_design', 'local_offdesign' ]: if key in c: kwargs[key] = c[key] # read fluid properties for key in ['m', 'p', 'h', 'T', 'x', 'v', 'Td_bp']: if key in c: if key in c: kwargs[key] = dc_prop(val=c[key], val0=c[key + '0'], val_set=c[key + '_set'], unit=c[key + '_unit'], unit_set=c[key + '_unit_set'], ref=None, ref_set=c[key + '_ref_set']) key = 'state' if key in c: kwargs[key] = dc_simple(val=c[key], is_set=c[key + '_set']) # read fluid vector val = {} val0 = {} val_set = {} for key in args[1].fluids: if key in c: val[key] = c[key] val0[key] = c[key + '0'] val_set[key] = c[key + '_set'] kwargs['fluid'] = dc_flu(val=val, val0=val0, val_set=val_set, balance=c['balance']) # write properties to connection and return connection object conn.set_attr(**kwargs) return conn
def attr(): return {'num_in': dc_simple(), 'num_out': dc_simple()}
def attr(): return {'num_inter': dc_simple()}
def attr(): return {'num_in': dc_simple(), 'zero_flag': dc_simple()}