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)
     }
Esempio n. 2
0
 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)
     }
Esempio n. 3
0
 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)
     }
Esempio n. 4
0
 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()
     }
Esempio n. 5
0
 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)
     }
Esempio n. 6
0
 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()}
Esempio n. 7
0
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
Esempio n. 8
0
 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()}
Esempio n. 9
0
    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()}
Esempio n. 10
0
    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)
Esempio n. 11
0
 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)
     }
Esempio n. 12
0
 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()}
Esempio n. 13
0
 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)
     }
Esempio n. 14
0
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
Esempio n. 15
0
 def get_variables():
     return {'num_in': dc_simple()}
Esempio n. 16
0
 def attr(self):
     return {'num_out': dc_simple()}
Esempio n. 17
0
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
Esempio n. 18
0
 def attr():
     return {'num_in': dc_simple(), 'num_out': dc_simple()}
Esempio n. 19
0
 def attr():
     return {'num_inter': dc_simple()}
Esempio n. 20
0
 def attr():
     return {'num_in': dc_simple(), 'zero_flag': dc_simple()}