EPANET  3.0
EPANET Development Project
junction.h
Go to the documentation of this file.
1 /* EPANET 3
2  *
3  * Copyright (c) 2016 Open Water Analytics
4  * Distributed under the MIT License (see the LICENSE file for details).
5  *
6  */
7 
10 
11 #ifndef JUNCTION_H_
12 #define JUNCTION_H_
13 
14 #include "Elements/node.h"
15 #include "Elements/demand.h"
16 
17 #include <string>
18 #include <list>
19 
20 class Network;
21 class Emitter;
22 
25 
26 class Junction: public Node
27 {
28  public:
29 
30  Junction(std::string name_);
31  ~Junction();
32 
33  int type() { return Node::JUNCTION; }
34  void convertUnits(Network* nw);
35  void initialize(Network* nw);
36  void findFullDemand(double multiplier, double patternFactor);
37  double findActualDemand(Network* nw, double h, double& dqdh);
38  double findEmitterFlow(double h, double& dqdh);
39  bool isPressureDeficient(Network* nw);
40  bool hasEmitter() { return emitter != nullptr; }
41 
43  std::list<Demand> demands;
44  double pMin;
45  double pFull;
47 };
48 
49 #endif
Describes the Node class.
double pMin
minimum pressure head to have demand (ft)
Definition: junction.h:44
A connection point between links in a network.
Definition: node.h:30
double pFull
pressure head required for full demand (ft)
Definition: junction.h:45
Emitter * emitter
emitter object
Definition: junction.h:46
Describes the Demand class.
A variable head Node with no storage volume.
Definition: junction.h:26
Demand primaryDemand
primary demand
Definition: junction.h:42
Specifies the rate of consumer water demand at a Junction node.
Definition: demand.h:21
std::list< Demand > demands
collection of additional demands
Definition: junction.h:43
Contains the data elements that describe a pipe network.
Definition: network.h:41
Models an unlimited pressure-dependent rate of water outflow at a Junction node.
Definition: emitter.h:23