JalTantra

A System for Design and Optimization of Water Distribution Networks

JalTantra Video Tutorial:


Following is the script for the above video tutorial:

1. INTRODUCTION

Welcome to a tutorial on how to use JalTantra
JalTantra is a system used to optimize piped water networks
Given the relevant information about a network it will provide the user with the optimal pipe diameters so that capital cost is minimized
Some of the assumptions we make regarding the network to be solved are: The system is free to use and publicly available at https://www.cse.iitb.ac.in/jaltantra

2. OVERVIEW OF SYSTEM

On the left side we have a sidebar which displays all the panels of the system
The four primary options are: We will now go over each option and look at their panels in detail

3. NETWORK DESCRIPTION

The first option is Network description
This contains the various panels using which all the network information is provided

3.1 GENERAL INFORMATION

The first panel is the general panel which contains input fields for the general information of a network
Let's go through the fields one by one:

First we have the name of the project. Let's name it "sample"

Next, we have the minimum node pressure.
This is the minimum pressure in metres that must be maintained at all nodes by default.
We can override this and give different values for different nodes, but this is the default value.
Let's use a value of 5 metres for our sample project

Next, we have the default pipe roughness.
For measuring headloss in pipes we use the hazens-williams headloss equation.
This is the roughness coefficient used in the formula.
This is the default value used for all pipes, but can be overridden with different values for specific pipes.
Here, let's use a typical value of 140

Next we have the minimum and maximum headloss per km input fields.
This is the minimum and maximum headloss in metres that is allowed per kilometre for each pipe in the network.
Let's use typical values of 0.01 and 5 metres respectively for the two fields.

Next, we come to number of supply hours.
This is the number of hours in a day for which the source provides water.
This determines the peak factor for the flow in the network.
For example, if the number of supply hours is 12 then water demand for the entire day must be satisfied in 12 hours.
This is equivalent to having a peak factor of 2 i.e. nodes have an effective demand that is double their stated demand.
For our sample project let's keep things simple and use a value of 24 hours.

Finally we come to some information regarding our source.
Firstly we give the node id of the source node.
Node id is a unique integer identifier that is given to each node in the network.
Note that node id must be greater than or equal to 1.
Here we enter this unique id for the source. Lets give our source the node id of 1.

Next we have the name of our source.
Here let us just enter "source".

Then we give the source head.
This is the head in metres that the source provides constantly no matter what the demand of the network.
Let's enter 100 metres for our source head.

Finally we have source elevation.
This is the elevation of our source node in metres.
Let's enter 90 metres.

3.2 NODES

Now we are finally done with the general information.
Next we move on to the nodes panel to enter all the information regarding the nodes of our network.
The nodes information is displayed as a table with the following columns: To add a node we simply click on the add new button at the top.
As you can see it has already given a node id number of 2 since we have already used 1 for our source.
If needed we can overwrite this and use any integer greater than equal to 1.
To edit any value double click on the cell.
Let's use 5 for the id of our first node.

To edit the rest of our columns we can double click each of them one by one or we can simply use tab and shift-tab to cycle through the cells.
Let's enter the details for first node.
For Node name let's enter node5.
Next for elevation let us put 70 metres and have a demand of 2 litres per second.
Finally lets leave minimum pressure empty since we want to use the default minimum pressure value of 5 metres as given in the general information screen.

Let us add 2 more nodes to our sample network and quickly fill in their details as well.
As you can see the two nodes were given node id's of 2 and 3 since for the first node we used 5 and 1 was already used by the source node.
We will now fill some details for the two nodes (enter [zeronode2,80,empty,3] for one and [node3,50,4,10] for the other)
For the second node we give it a name zeronode2 since we don't have any demand.
That is why we can leave the demand empty.
Since it has no demand we can decrease the minimum pressure requirement to 3 metres.
Finally for node 3 we might want to ensure extra pressure so give it a minimum pressure value of 10 metres.

Here we have some tools to look at the data better especially if we have a lot of nodes in our network.
We can click on the column headers to sort the rows on that column.
For example we can sort by node name.
We can also search for nodes by using the search bar at the top.
For example we can search for zeronode by typing zeronode in the search bar and pressing enter.
Now it displays only those rows that have zeronode.
To clear the search just press the cross at the right side of the search bar.
We can also delete nodes if we have added them by mistake.
Let us first add a couple of nodes and then delete them.
To add we just press the add new button again a couple of times.
To remove both of them we just select them by pressing the check box and then pressing the delete button.

3.3 PIPES

We are done with the nodes so let us now go to the pipes section.
The functionality of this panel is very similar to the nodes panel.
As before we have a table with the pipe information and we can do similar tasks like add, delete and search.
Let us go over the columns for the pipe table: As in the node screen, to add pipes simply click on the add new button.
Let's quickly add 3 pipes for our network and add some sample values (click on add new thrice and add the following pipe information [1,1,5,1000], [2,1,2,800] and [3,2,3,1300])
So in our sample network our source is connected to nodes 5 and 2.
Node 2 is then further connected to node 3.
We can leave diameter and roughness values blank for now since we are not going to use any existing pipes.

3.4 COMMERCIAL PIPES

Next we come to the commercial pipe section.
This is where we enter the data for the commercially available pipe cost.
Each row in the table is simply the diameter of the pipe, its headloss roughness coefficient and the cost per metre of the pipe.
We can leave the roughness value blank and it will take the default value of roughness from the general screen.
Let's add some sample values for the commercial pipes (click on add new button 4 times and add [63,,116], [75,,172], [90,,231], [110,,340]).

3.5 RESET

We have now entered all the relevant data for our network and can move onto optimization.
If we want to clear all the data we can click on the reset button.
Make sure you save before resetting or all of the data will be lost.
Here let's just click cancel.

3.6 MAP

Entering all the node and pipe data can be very time consuming, especially if we have a large network.
Also data like node elevations and pipe lengths needs to be found either via surveys or through some GIS tool.
Rather than manually entering all this this data we can use the map tool.
The system uses Google Maps and allows to add nodes and pipes to the map and then export all the details to the node and pipe tables we saw earlier.
We can search for a location by name or by latitude longitude ( search khodala to show options then clear it and search for 19.7906,73.3984).
We can enter the latitude longitude details and press enter.
This takes us to the location on the map.
Here we can add a node at the location. (click on add node)
On adding the node we can edit its details like name, node id and whether it is the source.
Lets mark it as the source and click save.
Let's keep the rest of the details as is. (mark it as the source and click save)
At any point to edit the details of the node we can right click it and press edit node. (right click on the node)
We can also delete it if required.
These options as well as several others can be brought up by simply right clicking anywhere on the map. (right click on the map and show the context menu)
To add nodes simply click the add node button and click on a location on the map (click the add node button and click on the map)
As before we see the edit options for the node. Let's change name to node5 and id to 5. (change node name to node5 id to 5 and click save)
We can also add a node by right clicking a point on the map and choosing add node (right click a point on the map and click add node)
To add a pipe between two nodes click the add pipe button and then click the start node followed by the end node (click add pipe, then click the source followed by node5)
The pipe that is added is automatically added along the road network.
This also shows the elevation profile of the pipe.
Hovering over the chart shows the distance from the start node and the elevation of the point. (hover over the elevation chart)
To close the chart we can simply click the close chart button on the top. (click the close chart button)
To display the chart again we can simply click on the pipe. (click the pipe)
In case you dont want to add a pipe along the road but instead want to add a direct straight pipe between nodes, you can do that also.
Simply right click and choose the option add direct path. (right click and choose add direct path)
Lets connect our final node as well by a direct pipe from node5 to node2 (click node5 and node2)
Here in the elevation chart we see a point of high elevation.
We might want to add a dummy node at that point.
To add a node at any intermediate point of the pipe just right click the pipe and press the split pipe button (right click the pipe and press split the pipe button)
Nodes can also be moved by left clicking and dragging them on the map (left click the node5 button and drag it a bit to the north. After a few secs drag it back)
Once we are done we can export all this data to the node and pipe tables by pressing the transfer data button (click on the transfer data button)
If the transfer data is confirmed it will overwrite any previous data that has been entered.
Once the data is transferred we can enter the additional details like node demand and any existing pipe diameters.
For now let's just click no and work with the previously entered data. (click no)

4. OPTIMIZE

With this we are done with looking at all the network information options.
Now we can move on to the optimization part.

4.1 OPTIMIZE

Let's maximize the optimize network menu and click on optimize.
While the system is optimizing the pipe diameters we will see a optimizing please wait popup.
Once done we will see the system popup done if successful or could not solve not network if the network cannot be solved.
For our sample network we have got a done message so it means we were successful.

4.2 RESULTS

We are then taken to the results screen where we can see the nodes, pipes and cost details in different tabs
In the nodes tab we can see the head at each node.
In the pipes tab we can see the diameter of the pipe chosen, the headloss in each pipe and the cost of each pipe.
In the cost tab we can the cost for each pipe diameter and the overall cost.

4.3 MISCELLANEOUS CASES

4.3.1 MISSING INFORMATION
If some information is missing in the input then we will get an appropriate warning message.
Let's try that by removing the source head from the general screen and try to optimize.
As we can see we get a warning message saying that the source head is missing.
4.3.2 INFEASIBLE NETWORK
Sometimes if the network is infeasible we get a network cannot be solved message.
In our sample project let us look at the pipe diameters chosen.
Here we see that for pipe id 2 i.e. the pipe from node 1 to 2 has being assigned a diameter of 90 millimetres.
In our original input lets fix the diameter for this pipe to 63 mm (goto pipe under network information and set pipe diameter for pipe id 2 to 63)
Now lets try optimizing this network.
As somewhat expected we get a network cannot be solved message.
This means for this network input no allocation of pipe diameters can satisfy all the demands of the network.
4.3.3 PARALLEL PIPES
Lets see if we can do something in such a scenario where a pipe has existing diameter that is too small.
Lets go back to the pipe input panel
Here for pipe 2 we can tell the system to allow parallel pipes if required.
Since we already know that a 63 millimetre pipe is not enough the system will try and place a pipe in parallel to satisfy the network.
Lets try optimizing again.
This time we were successful.
Lets go to the pipe results tab to see what happened.
The system added a 63 millimetre pipe in parallel for pipe id 2.
The two 63 millimetre pipes in parallel were able to satisfy the network where a single pipe could not.
Note that the original 63 millimetre pipe does not contribute to the cost since it is an existing pipe.

5. LOAD/SAVE FILES

Now that we have entered so many input details and got the result, we would want to save this information for future use.
Click on the load/save files option to expand the options.

5.1 SAVE INPUT FILE

To save the input click on the plus sign next to save input file (click on the + sign next to save input file)
We can also maximize this option by double clicking.
From here we can save the input as an xml or excel file.
Lets choose the excel option and click on the button.
This opens a standard save dialog box from where we can select the location of our file and change the filename if desired.
Lets quickly look at the excel file that is generated.
We can similarly save the output information as an excel file.

5.2 LOAD INPUT FILE

In the excel file we can see all the information that we had entered earlier.
To load this file lets goto a fresh session of JalTantra by opening the site in a new tab.
To load the file maximize the load/save files tab and then maximize the load file option.
Here we can see the option to load files in three options xml, branch and excel.
Xml and Excel are the file formats we can save our data in.
Branch file format is for those network files that were previously used in the Branch software.
They have the extension .bra
For now let's load the excel file we just saved.
Click on load excel file.
Again we see a warning that any unsaved information will be lost.
Click ok and we see a typical dialog box for file selection.
Choose the file that we just saved and click open.
Now all the information from the excel file has been loaded into the different screens.
We can click on the optimize button again and check if we get the same results as before.

6. HELP

In the end we have the help option.
Here we can see the units used for various parameters
We can also download some sample input and output files for reference.
Just click on any of them to download the file.
Finally we have the contact info.
For extra information on JalTantra as well the download link for a local version of JalTantra that can be run from any machine without internet access visit www.cse.iitb.ac.in/~nikhilh/jaltantra
For any queries, suggestions or comments please email hooda.nikhil@gmail.com

Thank you for listening and hope you found this tutorial on JalTantra useful.