Repository navigation
Expand file tree
/
Copy pathGroundHeatExchangerVertical_Impl.hpp
More file actions
183 lines (107 loc) · 5.63 KB
/
Copy pathGroundHeatExchangerVertical_Impl.hpp
File metadata and controls
183 lines (107 loc) · 5.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/***********************************************************************************************************************
* OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
* See also https://openstudio.net/license
***********************************************************************************************************************/
#ifndef MODEL_GROUNDHEATEXCHANGERVERTICAL_IMPL_HPP
#define MODEL_GROUNDHEATEXCHANGERVERTICAL_IMPL_HPP
#include "ModelAPI.hpp"
#include "StraightComponent_Impl.hpp"
namespace openstudio {
namespace model {
namespace detail {
/** GroundHeatExchangerVertical_Impl is a StraightComponent_Impl that is the implementation class for GroundHeatExchangerVertical.*/
class MODEL_API GroundHeatExchangerVertical_Impl : public StraightComponent_Impl
{
public:
/** @name Constructors and Destructors */
//@{
GroundHeatExchangerVertical_Impl(const IdfObject& idfObject, Model_Impl* model, bool keepHandle);
GroundHeatExchangerVertical_Impl(const openstudio::detail::WorkspaceObject_Impl& other, Model_Impl* model, bool keepHandle);
GroundHeatExchangerVertical_Impl(const GroundHeatExchangerVertical_Impl& other, Model_Impl* model, bool keepHandle);
virtual ~GroundHeatExchangerVertical_Impl() override = default;
//@}
/** @name Virtual Methods */
//@{
virtual const std::vector<std::string>& outputVariableNames() const override;
virtual IddObjectType iddObjectType() const override;
virtual ModelObject clone(Model model) const override;
virtual std::vector<ModelObject> children() const override;
virtual unsigned inletPort() const override;
virtual unsigned outletPort() const override;
virtual bool addToNode(Node& node) override;
virtual ComponentType componentType() const override;
virtual std::vector<FuelType> coolingFuelTypes() const override;
virtual std::vector<FuelType> heatingFuelTypes() const override;
virtual std::vector<AppGFuelType> appGHeatingFuelTypes() const override;
//@}
/** @name Getters */
//@{
boost::optional<int> numberofBoreHoles() const;
double boreHoleTopDepth() const;
boost::optional<double> boreHoleLength() const;
boost::optional<double> boreHoleRadius() const;
boost::optional<double> groundThermalConductivity() const;
boost::optional<double> groundThermalHeatCapacity() const;
boost::optional<double> groundTemperature() const;
boost::optional<double> designFlowRate() const;
boost::optional<double> groutThermalConductivity() const;
boost::optional<double> pipeThermalConductivity() const;
boost::optional<double> pipeOutDiameter() const;
boost::optional<double> uTubeDistance() const;
boost::optional<double> pipeThickness() const;
boost::optional<double> maximumLengthofSimulation() const;
double gFunctionReferenceRatio() const;
bool isGFunctionReferenceRatioDefaulted() const;
ModelObject undisturbedGroundTemperatureModel() const;
//@}
/** @name Setters */
//@{
bool setNumberofBoreHoles(boost::optional<int> numberofBoreHoles);
void resetNumberofBoreHoles();
bool setBoreHoleTopDepth(double boreHoleTopDepth);
bool setBoreHoleLength(boost::optional<double> boreHoleLength);
void resetBoreHoleLength();
bool setBoreHoleRadius(boost::optional<double> boreHoleRadius);
void resetBoreHoleRadius();
bool setGroundThermalConductivity(boost::optional<double> groundThermalConductivity);
void resetGroundThermalConductivity();
bool setGroundThermalHeatCapacity(boost::optional<double> groundThermalHeatCapacity);
void resetGroundThermalHeatCapacity();
bool setGroundTemperature(boost::optional<double> groundTemperature);
void resetGroundTemperature();
bool setDesignFlowRate(double designFlowRate);
bool setGroutThermalConductivity(boost::optional<double> groutThermalConductivity);
void resetGroutThermalConductivity();
bool setPipeThermalConductivity(boost::optional<double> pipeThermalConductivity);
void resetPipeThermalConductivity();
bool setPipeOutDiameter(boost::optional<double> pipeOutDiameter);
void resetPipeOutDiameter();
bool setUTubeDistance(boost::optional<double> uTubeDistance);
void resetUTubeDistance();
bool setPipeThickness(boost::optional<double> pipeThickness);
void resetPipeThickness();
bool setMaximumLengthofSimulation(boost::optional<double> maximumLengthofSimulation);
void resetMaximumLengthofSimulation();
bool setGFunctionReferenceRatio(double gFunctionReferenceRatio);
void resetGFunctionReferenceRatio();
bool setUndisturbedGroundTemperatureModel(const ModelObject& undisturbedGroundTemperatureModel);
//@}
/** @name Other */
//@{
bool addGFunction(double gFunctionLN, double gFunctionGValue);
void removeGFunction(unsigned groupIndex);
void removeAllGFunctions();
std::vector<std::pair<double, double>> gFunctions();
//@}
protected:
private:
REGISTER_LOGGER("openstudio.model.GroundHeatExchangerVertical");
// TODO: Check the return types of these methods.
// Optional getters for use by methods like children() so can remove() if the constructor fails.
// There are other ways for the public versions of these getters to fail--perhaps all required
// objects should be returned as boost::optionals
};
} // namespace detail
} // namespace model
} // namespace openstudio
#endif // MODEL_GROUNDHEATEXCHANGERVERTICAL_IMPL_HPP