{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Minimal Example pandapipes\n",
"\n",
"## Creating a low pressure gas network\n",
"\n",
"We consider the following simple 3-junction example network with an ideal valve as a minimal example:\n",
"\n",
"\n",
"\n",
"The above network can be created in pandapipes as follows:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandapipes as pp\n",
"\n",
"#create empty net\n",
"net = pp.create_empty_network(fluid=\"lgas\")\n",
"\n",
"# create junction\n",
"j1 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name=\"Junction 1\")\n",
"j2 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name=\"Junction 2\") \n",
"j3 = pp.create_junction(net, pn_bar=1.05, tfluid_k=293.15, name=\"Junction 3\") \n",
"\n",
"# create junction elements\n",
"ext_grid = pp.create_ext_grid(net, junction=j1, p_bar=1.1, t_k=293.15, name=\"Grid Connection\")\n",
"sink = pp.create_sink(net, junction=j3, mdot_kg_per_s=0.045, name=\"Sink\")\n",
"\n",
"# create branch element\n",
"pipe = pp.create_pipe_from_parameters(net, from_junction=j1, to_junction=j2, length_km=0.1, diameter_m=0.05, name=\"Pipe 1\")\n",
"valve = pp.create_valve(net, from_junction=j2, to_junction=j3, diameter_m=0.05, opened=True, name=\"Valve 1\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the fluid used here is ``lgas`` (low-calorific natural gas). You can find 7 predefined fluids in pandapipes:\n",
"- ``lgas`` (low-calorific natural gas)\n",
"- ``hgas`` (high-calorific natural gas)\n",
"- ``hydrogen``\n",
"- ``water``\n",
"- ``biomethane_pure``\n",
"- ``biomethane_treated`` (see [here](https://pandapipes.readthedocs.io/en/latest/fluid_properties/fluids.html) for the composition)\n",
"- ``air``\n",
"\n",
"And that the predefined valve element is an ideal valve. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Structure\n",
"\n",
"Each dataframe in a pandapipes net object contains the information about one pandapipes element, such as pipe, sink, valve etc."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.junction"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.pipe"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.ext_grid"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pipe Flow\n",
"\n",
"We now run a pipe flow:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pp.pipeflow(net)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And check out at the results for junctions and pipes:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.res_junction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"They're is no pressure loss between junction 2 and junction 3 because of the ideal valve."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.res_pipe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Closed valve\n",
"\n",
"We now close the valve between junction 2 and junction 3:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Problem can not run pipeflow if valve closed\n",
"net.valve.opened = False"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The closed valve cuts the sink from the external grid:\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This can be verified by running a power flow and inspecting the results. The pressure and temperature at junction 2 is given as NaN:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"pp.pipeflow(net)\n",
"net.res_junction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Also the results from the pipe show that the mass flow is almost zero and the speed of the mass flow is zero. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"net.res_pipe"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}