/geonet

layout and design of flow networks

Primary LanguagePythonOtherNOASSERTION

GeoNet - Geometric layout and design for pipe networks with nonlinear flow

Work is now continued in the Julia project PipeLayout.

Purpose

This library (implemented in Python) provides tools to find a suitable layout and design for a flow network. The main motivation comes from gas pipeline networks, where a diameter is chosen for each segment. The friction establishes a nonlinear relationship between flow along edges and pressure at nodes. Using Steiner trees with variable positions of the Steiner nodes, a cost-minimal network can be found.

Features

  • utilities for networks and plane geometry
  • network flow
  • convex optimization to minimize transport given a topology
  • wrapper for GeoSteiner program
  • convex optimization to find junction location with minimum pipe cost
  • enumeration of full Steiner tree topologies (with isomorphism check)

Dependencies

Many of these are only needed for specific features.

Python libraries

external sofware

Licensing

All of my code is distributed with MIT License. GeoSteiner is only called as a subprocess. Gurobi offers an academic license.