EPANET  3.0
EPANET Development Project
emitter.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 EMITTER_H_
12 #define EMITTER_H_
13 
18 
19 class Network;
20 class Pattern;
21 class Junction;
22 
23 class Emitter
24 {
25  public:
26 
27  // Constructor/Destructor
28  Emitter();
29  ~Emitter();
30 
31  // Static factory method to add or edit an emitter
32  static bool addEmitter(Junction* junc, double c, double e, Pattern* p);
33 
34  // Converts emitter properties to internal units
35  void convertUnits(Network* network);
36 
37  // Finds the emitter's outflow rate and its derivative given the pressure head
38  double findFlowRate(double h, double& dqdh);
39 
40  // Properties
41  double flowCoeff; // flow = flowCoeff*(head^expon)
42  double expon;
43  Pattern* timePattern; // pattern for time varying flowCoeff
44 };
45 
46 #endif
A variable head Node with no storage volume.
Definition: junction.h:26
A set of multiplier factors associated with points in time.
Definition: pattern.h:29
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