예제 #1
0
    def setup(self):
        """
        Set up network for electrolyzer tests.
        """
        self.nw = network(['O2', 'H2', 'H2O'], T_unit='C', p_unit='bar')
        self.instance = water_electrolyzer('electrolyzer')

        fw = source('feed water')
        cw_in = source('cooling water')
        o2 = sink('oxygen sink')
        h2 = sink('hydrogen sink')
        cw_out = sink('cooling water sink')

        self.instance.set_attr(pr_c=0.99)

        cw_el = connection(cw_in,
                           'out1',
                           self.instance,
                           'in1',
                           fluid={
                               'H2O': 1,
                               'H2': 0,
                               'O2': 0
                           },
                           T=20,
                           p=1)
        el_cw = connection(self.instance, 'out1', cw_out, 'in1', T=45)

        self.nw.add_conns(cw_el, el_cw)

        fw_el = connection(fw, 'out1', self.instance, 'in2', m=0.1, T=20, p=10)
        el_o2 = connection(self.instance, 'out2', o2, 'in1')
        el_h2 = connection(self.instance, 'out3', h2, 'in1', T=50)

        self.nw.add_conns(fw_el, el_o2, el_h2)
예제 #2
0
def test_wrong_bus_param_func():
    """Test missing/wrong bus parameter specification in equations."""
    # this test does not need setup, since the function is called without
    # network initialisation
    instance = reactors.water_electrolyzer('electrolyzer')
    some_bus = bus('some_bus')
    param = 'G'
    some_bus.add_comps({'comp': instance, 'param': param})
    with raises(ValueError):
        instance.bus_func(some_bus.comps.loc[instance])
예제 #3
0
 def test_wrong_bus_param_func(self):
     """
     Test missing/wrong bus parameter specification for water electrolyzer.
     """
     # this test does not need setup, since the function is called without
     # network initialisation
     self.nw = network(['H2O', 'O2', 'H2'])
     self.instance = reactors.water_electrolyzer('electrolyzer')
     some_bus = bus('some_bus')
     param = 'G'
     some_bus.add_comps({'c': self.instance, 'p': param})
     self.instance.bus_func(some_bus.comps.loc[self.instance])
예제 #4
0
def test_wrong_bus_param_deriv():
    """Test missing/wrong bus parameter specification in derivatives."""
    # this test does not need setup, since the function is called without
    # network initialisation
    instance = reactors.water_electrolyzer('electrolyzer')
    # required for calling bus_deriv method without network initialisation
    instance.num_vars = 1
    instance.num_nw_fluids = 1
    instance.num_nw_vars = 1
    some_bus = bus('some_bus')
    param = 'G'
    some_bus.add_comps({'comp': instance, 'param': param})
    with raises(ValueError):
        instance.bus_deriv(some_bus)
예제 #5
0
    def setup_electrolyzer_network(self):
        """Set up network for electrolyzer tests."""
        self.instance = reactors.water_electrolyzer('electrolyzer')

        fw = basics.source('feed water')
        cw_in = basics.source('cooling water')
        o2 = basics.sink('oxygen sink')
        h2 = basics.sink('hydrogen sink')
        cw_out = basics.sink('cooling water sink')

        cw_el = connection(cw_in, 'out1', self.instance, 'in1')
        el_cw = connection(self.instance, 'out1', cw_out, 'in1')

        self.nw.add_conns(cw_el, el_cw)

        fw_el = connection(fw, 'out1', self.instance, 'in2')
        el_o2 = connection(self.instance, 'out2', o2, 'in1')
        el_h2 = connection(self.instance, 'out3', h2, 'in1')

        self.nw.add_conns(fw_el, el_o2, el_h2)