Пример #1
0
def test_pump_from_std_type():
    """

        :return:
        :rtype:
        """
    net = pandapipes.create_empty_network("net", add_stdtypes=True)

    j1 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j2 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j3 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j4 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)

    pandapipes.create_pipe(net,
                           j1,
                           j2,
                           std_type='125_PE_80_SDR_11',
                           k_mm=1.,
                           length_km=0.43380)
    pandapipes.create_pipe(net,
                           j3,
                           j4,
                           std_type='125_PE_80_SDR_11',
                           k_mm=1.,
                           length_km=0.26370)
    pandapipes.create_ext_grid(net, j1, 5, 283.15, type="p")
    pandapipes.create_pump(net, j2, j3, std_type='P1')
    pandapipes.create_sink(net, j4, 0.02333)

    pandapipes.create_fluid_from_lib(net, "lgas", overwrite=True)

    pandapipes.pipeflow(net,
                        stop_condition="tol",
                        iter=3,
                        friction_model="nikuradse",
                        mode="hydraulics",
                        transient=False,
                        nonlinear_method="automatic",
                        tol_p=1e-4,
                        tol_v=1e-4)

    data = pd.read_csv(os.path.join(internals_data_path, "test_pump.csv"),
                       sep=';')

    res_junction = net.res_junction.p_bar.values
    res_pipe = net.res_pipe.v_mean_m_per_s.values

    p_diff = np.abs(1 - res_junction / data['p'].dropna().values)
    v_diff = np.abs(1 - res_pipe / data['v'].dropna().values)

    assert np.all(p_diff < 0.01)
    assert np.all(v_diff < 0.01)
Пример #2
0
def test_pump_bypass_high_vdot():
    """
    High flow: pressure lift not <0, always >=0
        :return:
        :rtype:
        """
    net = pandapipes.create_empty_network("net", add_stdtypes=True)

    j1 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j2 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j3 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j4 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)

    pandapipes.create_pipe(net,
                           j1,
                           j2,
                           std_type='2000_ST<16',
                           k_mm=0.1,
                           length_km=0.1)
    pandapipes.create_pipe(net,
                           j3,
                           j4,
                           std_type='2000_ST<16',
                           k_mm=0.1,
                           length_km=0.1)
    pandapipes.create_ext_grid(net, j1, 5, 283.15, type="p")
    pandapipes.create_pump(net, j2, j3, std_type='P1')
    pandapipes.create_sink(net, j4, 1000)

    pandapipes.create_fluid_from_lib(net, "hgas", overwrite=True)

    pandapipes.pipeflow(net,
                        stop_condition="tol",
                        iter=30,
                        friction_model="nikuradse",
                        mode="hydraulics",
                        transient=False,
                        nonlinear_method="automatic",
                        tol_p=1e-4,
                        tol_v=1e-4)

    assert net.res_pump.deltap_bar.isin([0]).all()
    assert np.isclose(net.res_junction.loc[1, "p_bar"],
                      net.res_junction.loc[2, "p_bar"])
Пример #3
0
def test_pump_bypass_on_reverse_flow():
    """
    reverse flow = no pressure lift
        :return:
        :rtype:
        """
    net = pandapipes.create_empty_network("net", add_stdtypes=True)

    j1 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j2 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j3 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)
    j4 = pandapipes.create_junction(net, pn_bar=5, tfluid_k=283.15)

    pandapipes.create_pipe(net,
                           j1,
                           j2,
                           std_type='125_PE_80_SDR_11',
                           k_mm=1.,
                           length_km=10)
    pandapipes.create_pipe(net,
                           j3,
                           j4,
                           std_type='125_PE_80_SDR_11',
                           k_mm=1.,
                           length_km=12)
    pandapipes.create_ext_grid(net, j1, 5, 283.15, type="p")
    pandapipes.create_pump(net, j2, j3, std_type='P1')
    pandapipes.create_source(net, j4, 0.02333)

    pandapipes.create_fluid_from_lib(net, "hgas", overwrite=True)

    pandapipes.pipeflow(net,
                        stop_condition="tol",
                        iter=3,
                        friction_model="nikuradse",
                        mode="hydraulics",
                        transient=False,
                        nonlinear_method="automatic",
                        tol_p=1e-4,
                        tol_v=1e-4)

    assert net.res_pump.deltap_bar.isin([0]).all()
    assert np.isclose(net.res_junction.loc[1, "p_bar"],
                      net.res_junction.loc[2, "p_bar"])
Пример #4
0
def test_create_pipe(create_empty_net):
    net = copy.deepcopy(create_empty_net)
    pandapipes.create_junction(net, 1, 293, index=8, geodata=(0, 1))
    pandapipes.create_junction(net, 1, 293, index=9, geodata=(2, 2))
    pandapipes.create_pipe(net,
                           8,
                           9,
                           "80_GGG",
                           0.3,
                           index=2,
                           geodata=[(0, 1), (1, 1), (2, 2)])

    with pytest.raises(UserWarning):
        pandapipes.create_pipe(net, 8, 9, "80_GGG", 0.3, index=2)
    with pytest.raises(UserWarning):
        pandapipes.create_pipe(net, 8, 10, "80_GGG", 0.3)
    with pytest.raises(UserWarning):
        pandapipes.create_pipe(net, 8, 9, "blah", 0.3)

    net2 = pandapipes.create_empty_network(fluid="hgas", add_stdtypes=False)
    pandapipes.create_junction(net2, 1, 293, index=8, geodata=(0, 1))
    pandapipes.create_junction(net2, 1, 293, index=9, geodata=(2, 2))
    with pytest.raises(UserWarning):
        pandapipes.create_pipe(net2, 8, 9, "80_GGG", 0.3)
Пример #5
0
def test_create_pipe(create_empty_net):
    net = copy.deepcopy(create_empty_net)
    pandapipes.create_junction(net, 1, 293, index=8, geodata=(0, 1))
    pandapipes.create_junction(net, 1, 293, index=9, geodata=(2, 2))
    pandapipes.create_pipe(net,
                           8,
                           9,
                           "80_GGG",
                           0.3,
                           index=2,
                           geodata=[(0, 1), (1, 1), (2, 2)])

    try:
        pandapipes.create_pipe(net, 8, 9, "80_GGG", 0.3, index=2)
        assert False, "Shouldn't make pipe, index exists!"
    except UserWarning:
        assert True
    try:
        pandapipes.create_pipe(net, 8, 10, "80_GGG", 0.3)
        assert False, "Shouldn't make pipe, non-existent to_junction!"
    except UserWarning:
        assert True
    try:
        pandapipes.create_pipe(net, 8, 9, "blah", 0.3)
        assert False, "Shouldn't make pipe, non-existent std_type!"
    except UserWarning:
        assert True

    net2 = pandapipes.create_empty_network(fluid="hgas", add_stdtypes=False)
    pandapipes.create_junction(net2, 1, 293, index=8, geodata=(0, 1))
    pandapipes.create_junction(net2, 1, 293, index=9, geodata=(2, 2))
    try:
        pandapipes.create_pipe(net2, 8, 9, "80_GGG", 0.3)
        assert False, "Shouldn't make pipe, no std_types in net!"
    except UserWarning:
        assert True
Пример #6
0
import pandapipes as pp
net = pp.create_empty_network(fluid='lgas')
j1 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name="Junction 1")
j2 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name="Junction 2")
j3 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name="Junction 3")
ext_grid = pp.create_ext_grid(net,
                              junction=j1,
                              p_bar=1.1,
                              t_k=293.15,
                              name="Grid Connection")
sink = pp.create_sink(net, junction=j3, mdot_kg_per_s=0.045, name="Sink")
pipe = pp.create_pipe(net,
                      from_junction=j1,
                      to_junction=j2,
                      length_km=0.1,
                      diameter_m=0.05,
                      name="Pipe 1")
valve = pp.create_valve(net,
                        from_junction=j2,
                        to_junction=j3,
                        diameter_m=0.05,
                        opened=True,
                        name="Valve 1")

pp.pipeflow(net)

print(net.res_junction)
print(net.res_pip)