Using JalTantra

JalTantra is a system for design and optimization of water distribution networks. This page explains the inputs, outputs, and each tab of the system interface.

JalTantra System: https://www.cse.iitb.ac.in/jaltantra

Video Tutorial   Tutorial Script

Sample Files

Download sample input and output files to understand the expected format before entering your own network.

Input, Output & Objective

Variables marked {} are optional.

Input

  • Source node: head
  • Node: elevation, {demand}, {min pressure}
  • Pipe: start/end node, length, {roughness}, {diameter}, {parallel allowed}
  • Commercial pipe diameter: cost
  • ESR: construction cost, capacity factor, {max height}
  • Pump: efficiency, capital cost/kW, energy cost/kWh, lifetime, {discount & inflation rate}

Output

  • Pipe diameters
  • [ESR: location, height, capacity, nodes served]
  • [Pump: location, power, head provided]

Objective & Constraints

  • Minimize total pipe cost [+ ESR cost] [+ Pump cost]
  • Min pressure maintained at each node
  • Demand met at each node
  • Diameters from commercial pipe data only
  • Network must be branched (no loops)
  • Single sourced

Map Tab

Map Tab screenshot
ActionDescription
Transfer DataTransfer node and pipe information to the Nodes and Pipes tabs.
Close ChartDeselect the currently selected pipe and close its elevation chart.
Search LocationSearch for a location on the map. Type and select from the dropdown or press Enter. Can also enter lat/long coordinates directly.
Add NodeClick the button then click a point on the map to add a node. You can modify the node name, ID, and location (lat/long or by dragging), and set whether it is the source or an ESR node.
Add PipeClick the button then click two existing nodes to add a pipe between them.
Right-click mapOptions to add/edit/delete nodes, add/delete/split pipes, or close the elevation chart.
Right-click nodeOptions to delete or edit the node. Deleting a node removes all connected pipes.
Right-click pipeOptions to delete or split a pipe, or close the elevation chart. Splitting adds a node at the split point and creates two pipes.

General Tab

General Tab screenshot
FieldDescription
Name of Project TextYour project name.
Minimum Node Pressure Double (m)Default minimum pressure that must be maintained at all nodes.
Default Pipe Roughness DoubleDefault roughness used to calculate headloss in pipes.
Minimum Headloss/KM Double (m)Minimum headloss per km allowed in each pipe.
Maximum Headloss/KM Double (m)Maximum headloss per km allowed in each pipe.
Maximum Water Speed Double (m/s) optional, default: no constraintMaximum speed of water in metres per second allowed in a pipe.
Maximum Pipe Pressure Double (m) optional, default: no constraintMaximum pressure in metres in a pipe. Not strictly enforced — a warning is shown if exceeded.
Number of Supply Hours DoubleHours per day that water is supplied. E.g. 12 hours = peak factor of 2.
Source Node ID IntegerUnique node ID of the source.
Source Node Name StringName of the source node.
Source Head Double (m)Constant water head provided by the source.
Source Elevation Double (m)Elevation of the source node.
Source details should not be duplicated in the Nodes tab.

Nodes Tab

Nodes Tab screenshot
FieldDescription
NodeID IntegerUnique node ID.
Node Name StringName of the node.
Elevation Double (m)Elevation of the node.
Demand Double (L/s) optional, default: 0Water demand of the node.
Min. Pressure Double (m) optionalMinimum pressure at this node. Defaults to the value in the General tab.
Add NewAdd an extra row for one node.
DeleteRemove selected rows.

Pipes Tab

Pipes Tab screenshot
FieldDescription
PipeID IntegerUnique pipe ID.
Start Node IntegerNode ID of the start node.
End Node IntegerNode ID of the end node.
Length Double (m)Length of the pipe.
Diameter Integer (mm) optionalDiameter of the pipe. If not set, it will be calculated by the optimizer.
Roughness Double optionalRoughness used to calculate headloss. Defaults to value in General tab.
Parallel Allowed Boolean optional, default: falseWhether a new pipe can be placed in parallel with this one.
Add NewAdd an extra row for one pipe.
DeleteRemove selected rows.

Commercial Pipes Tab

Commercial Pipes Tab screenshot
FieldDescription
Diameter Integer (mm)Unique diameter of the commercial pipe.
Roughness Double optionalRoughness of this pipe. Defaults to value in General tab.
Cost Double (Rs/m)Cost per metre of this commercial pipe.
Add NewAdd an extra row for one commercial pipe diameter.
DeleteRemove selected rows.

ESR Tab

ESR Tab screenshot
FieldDescription
Secondary Network Supply Hours DoubleHours per day that an ESR provides water to its secondary network.
ESR Capacity Factor DoubleSize of ESR relative to the daily demand it serves. E.g. 0.5 means ESR capacity is half the daily demand.
Maximum ESR Height Double (m) optional, default: no constraintMaximum ESR height in metres.
Allow ESRs at zero demand nodes Boolean default: falseAllow ESRs at nodes with zero demand. Disabling this significantly speeds up optimization.
Nodes with ESRsList of nodes that must have ESRs. Default: no constraint.
Nodes without ESRsList of nodes that must not have ESRs. Default: no constraint.

ESR Cost Tab

ESR Cost Tab screenshot
FieldDescription
Minimum Capacity Double (L) default: max of previous rowMinimum capacity for this row in the ESR cost table.
Maximum Capacity Double (L)Maximum capacity for this row in the ESR cost table.
Base Cost Double (Rs) default: calculated from previous rowBase cost of an ESR with capacity in this range.
Unit Cost Double (Rs/L)Unit cost per litre for an ESR in this capacity range.
Add NewAdd an extra row to the ESR cost table.
DeleteRemove selected rows.

Pump Tab

Pump Tab screenshot
FieldDescription
Minimum Pump Size Double (kW)Minimum pump size in kW that can be installed.
Pump Efficiency Double (%)Efficiency of the pump expressed as a percentage.
Capital Cost per kW Double (Rs)Capital cost of the pump per kW of installed capacity.
Energy Cost per kWh Double (Rs)Energy cost per kWh consumed.
Design Lifetime Integer (years)Number of years for which pumps will be operational.
Discount Rate Double (%) default: 0Interest rate as a %. Higher discount rate reduces the effective energy cost of the pump.
Inflation Rate Double (%) default: 0Rate at which prices rise as a %. Higher inflation rate increases the effective energy cost of the pump.
Pipes without PumpsList of pipes that cannot have pumps. Default: no constraint.

Results Tab

Results Tab screenshot
Sub-tabContents
Node TabNode-wise results including head and pressure values for each node.
Pipe TabPipe-wise results including flow, diameter, headloss, headloss per km, and cost for each pipe.
Cost TabCost results for each diameter of commercial pipe used.
ESR TabCost results for each ESR to be constructed.
Pump TabCost results for each pump to be installed.

Hints & Troubleshooting

If you get a timeout message, try one or more of the following:

  • Reduce the number of possible ESR locations.
  • Disable ESR at dummy (zero demand) nodes.
  • Disable ESR optimization entirely.
  • If the network still times out, download and use the local version of JalTantra.

If you get a message saying "unable to solve network", try one or more of the following:

  • Lower the minimum node pressure (in the General tab or for specific nodes).
  • Increase the head of your source node.
  • Reduce demand for nodes.
  • Reduce elevation for nodes.
  • Add commercial pipes with larger diameters.
  • Verify that you are using units consistently throughout.