Initial Commit
[HECS.git] / Gains.h
blobf811e1e295a1c696ca8ee3a88da60619d0fc129e
1 /***************************************************************************
2 * *
3 * Gains.h Copyright (C) 2008 by Jon Rumble *
4 * j.w.rumble@reading.ac.uk *
5 * *
6 * This file is part of HECS, *
7 * *
8 * HECS is free software: you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation, either version 2 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * HECS is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
20 ***************************************************************************/
23 #ifndef GAINS_H
24 #define GAINS_H
26 #include <QString>
27 #include <QMap>
28 #include <QStringList>
30 #include "SolarGains.h"
31 #include "Misc.h"
32 #include "ConfigParser.h"
33 #include "HeatLosses.h"
34 #include "WaterHeating.h"
35 #include "TableReader.h"
36 #include "DoubleReader.h"
38 class Gains
41 public:
43 // Constructors/Destructors
46 Gains(const ConfigParser& config, WaterHeating* waterheat,
47 HeatLosses* heatingLosses,DwellingDimensions *dims);
48 ~Gains();
51 /**
52 * ACSESSORS
53 */
55 void setLightAppCookMetabolicGains ( double val_in );
56 double getLightAppCookMetabolicGains ( );
57 void setLowEnergyLightRed ( double val_in );
58 double getLowEnergyLightRed ( );
59 void setAddtnGains ( double val_in );
60 double getAddtnGains ( );
61 void setWaterHeating ( double val_in );
62 double getWaterHeating ( );
63 void setTotalIntGains ( double val_in );
64 double getTotalIntGains ( );
65 void setTotalGains ( double val_in );
66 double getTotalGains ( );
67 void setSolarGLR ( double val_in );
68 double getSolarGLR ( );
69 void setSolarUtilFactor ( double val_in );
70 double getSolarUtilFactor ( );
71 void setTotalSolarGains ( double val_in );
72 double getTotalSolarGains ( );
73 void setMeanTempLivingArea ( double val_in );
74 double getMeanTempLivingArea ( );
75 void setTempAdjustment ( double val_in );
76 double getTempAdjustment ( );
77 void setAdjustForGains ( double val_in );
78 double getAdjustForGains ( );
79 void setAdjustLivingTemp ( double val_in );
80 double getAdjustLivingTemp ( );
81 void setTempDiffZones ( double val_in );
82 double getTempDiffZones ( );
83 void setLivingAreaFrac ( double val_in );
84 double getLivingAreaFrac ( );
85 void setRestOfHouseFrac ( double val_in );
86 double getRestOfHouseFrac ( );
87 void setMeanIntTemp ( double val_in );
88 double getMeanIntTemp ( );
89 void setTempRiseFromGains ( double val_in );
90 double getTempRiseFromGains ( );
91 void setBaseTemp ( double val_in );
92 double getBaseTemp ( );
93 void setDegreeDays ( double val_in );
94 double getDegreeDays ( );
95 void setSpaceHeatingReq ( double val_in );
96 double getSpaceHeatingReq ( );
97 double getGainLossRatio ();
98 void setGainLossRatio (double val_in);
99 double getUtilisationFactor ();
100 void setUtilisationFactor (double val_in);
101 double getUsefulGains ();
102 void setUsefulGains(double val_in);
103 double getAnnualLightEnergy();
104 void setAnnualLightEnergy(double val_in);
106 * METHODS
109 void calcAll();
110 void createSolarGain(QString gainName,
111 int overshadow,
112 int orientation,
113 double area,
114 int frameType,
115 int glazingType,
116 char season);
119 private:
121 // Private Methods
123 void calcUsefulSolarGains();
124 void calcLightingEnergy();
125 void calcTotalInternalGains();
126 void calcMeanInternalTemp();
127 void loadSolarGain(const QString& gainName);
128 void initVars();
129 void buildLT();
130 void calcSpaceHeatReq();
131 void calcMeanIntTempLiving();
132 void calctempDiffBetweenZones();
133 void calcDegreeDays();
134 void calcGains();
135 ConfigParser cf;
136 WaterHeating *ptrWaterHeat;
137 HeatLosses *ptrHeatLosses;
138 DwellingDimensions *ptrDims;
140 // Private Attributes
142 double m_lightAppCookMetabolicGains;
143 double m_lowEnergyLightRed;
144 double m_addtnGains;
145 double m_waterHeating;
146 double m_totalIntGains;
147 double m_totalGains;
148 double m_solarGLR;
149 double m_solarUtilFactor;
150 double m_totalSolarGains;
151 double m_meanTempLivingArea;
152 double m_tempAdjustment;
153 double m_adjustForGains;
154 double m_adjustLivingTemp;
155 double m_tempDiffZones;
156 double m_livingAreaFrac;
157 double m_restOfHouseFrac;
158 double m_meanIntTemp;
159 double m_tempRiseFromGains;
160 double m_baseTemp;
161 double m_degreeDays;
162 double m_spaceHeatingReq;
163 double m_usefulGains;
164 double m_gainLossRatio;
165 double m_utilisationFactor;
166 double m_lightRatio;
167 double m_annualLightEnergy;
168 int m_addtnGainsTableVal;
169 int m_specificFanPower;
170 int m_heatingTypeControl;
171 int m_controlType;
173 //Lookup Tables
175 QMap <QString,SolarGains> gainsList;
176 QMap <double, QList <double> > table10;
177 QMap <double, QList <double> > table9;
178 QMap <double,QList <double> > table8;
181 #endif // GAINS_H