#!/usr/bin/env python # coding: utf-8 # # Minimal Example pandapipes # # ## Creating a low pressure gas network # # We consider the following simple 3-junction example network with an ideal valve as a minimal example: # # # # The above network can be created in pandapipes as follows: # In[ ]: import pandapipes as pp #create empty net net = pp.create_empty_network(fluid="lgas") # create junction 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") # create junction elements 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") # create branch element pipe = pp.create_pipe_from_parameters(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") # Note that the fluid used here is ``lgas`` (low-calorific natural gas). You can find 7 predefined fluids in pandapipes: # - ``lgas`` (low-calorific natural gas) # - ``hgas`` (high-calorific natural gas) # - ``hydrogen`` # - ``water`` # - ``biomethane_pure`` # - ``biomethane_treated`` (see [here](https://pandapipes.readthedocs.io/en/latest/fluid_properties/fluids.html) for the composition) # - ``air`` # # And that the predefined valve element is an ideal valve. # ## Data Structure # # Each dataframe in a pandapipes net object contains the information about one pandapipes element, such as pipe, sink, valve etc. # In[ ]: net.junction # In[ ]: net.pipe # In[ ]: net.ext_grid # ## Pipe Flow # # We now run a pipe flow: # # In[ ]: pp.pipeflow(net) # And check out at the results for junctions and pipes: # In[ ]: net.res_junction # They're is no pressure loss between junction 2 and junction 3 because of the ideal valve. # In[ ]: net.res_pipe # ### Closed valve # # We now close the valve between junction 2 and junction 3: # In[ ]: # Problem can not run pipeflow if valve closed net.valve.opened = False # The closed valve cuts the sink from the external grid: # # # This can be verified by running a power flow and inspecting the results. The pressure and temperature at junction 2 is given as NaN: # In[ ]: pp.pipeflow(net) net.res_junction # Also the results from the pipe show that the mass flow is almost zero and the speed of the mass flow is zero. # In[ ]: net.res_pipe