NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_IdealSurfaceHeatingCoolingModel.h
1 /* The NANDRAD data model library.
2 
3  Copyright (c) 2012-today, Institut für Bauklimatik, TU Dresden, Germany
4 
5  Primary authors:
6  Andreas Nicolai <andreas.nicolai -[at]- tu-dresden.de>
7  Anne Paepcke <anne.paepcke -[at]- tu-dresden.de>
8 
9  This library is part of SIM-VICUS (https://github.com/ghorwin/SIM-VICUS)
10 
11  This library is free software: you can redistribute it and/or modify
12  it under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  This library is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  GNU General Public License for more details.
20 */
21 
22 #ifndef NANDRAD_IdealSurfaceHeatingCoolingModelH
23 #define NANDRAD_IdealSurfaceHeatingCoolingModelH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_Constants.h"
28 #include "NANDRAD_CodeGenMacros.h"
29 #include "NANDRAD_Zone.h"
30 
31 namespace NANDRAD {
32 
33 /*! An ideal heating and cooling model. Basically scales a heating/cooling control signal with
34  the nominal heating power per area of heated/cooled construction.
35 */
37 public:
38  /*! Model parameters. */
39  enum para_t {
40  P_MaxHeatingPowerPerArea, // Keyword: MaxHeatingPowerPerArea [W/m2] 'Maximum heating power per surface area'
41  P_MaxCoolingPowerPerArea, // Keyword: MaxCoolingPowerPerArea [W/m2] 'Maximum cooling power per surface area'
42  NUM_P
43  };
44 
45  NANDRAD_READWRITE
46  NANDRAD_COMPARE_WITH_ID
47 
48  /*! Checks parameters for valid values. */
49  void checkParameters(const std::vector<NANDRAD::Zone> & zones);
50 
51  /*! Comparies objects by physical parametrization (excluding ID and displayname and object list). */
52  bool equal(const IdealSurfaceHeatingCoolingModel & other) const;
53 
54  /*! Unique ID-number for this model. */
55  unsigned int m_id = NANDRAD::INVALID_ID; // XML:A:required
56  /*! Some display/comment name for this model (optional). */
57  std::string m_displayName; // XML:A
58 
59  /*! Object list with zones that this model is to be apply to. */
60  std::string m_constructionObjectList; // XML:E:required
61 
62  /*! Id of zone whose thermostat is used for control (one zone thermostat may be responsible
63  for the control of different heating systems, but only one id is allowed per model). */
64  unsigned int m_thermostatZoneId; // XML:E:required
65 
66  /*! Parameters. */
67  IBK::Parameter m_para[NUM_P]; // XML:E
68 };
69 
70 } // namespace NANDRAD
71 
72 #endif // NANDRAD_IdealSurfaceHeatingCoolingModelH
std::string m_constructionObjectList
Object list with zones that this model is to be apply to.
Contains global constants for the Nandrad data model.
NANDRAD_READWRITE NANDRAD_COMPARE_WITH_ID void checkParameters(const std::vector< NANDRAD::Zone > &zones)
Checks parameters for valid values.
unsigned int m_thermostatZoneId
Id of zone whose thermostat is used for control (one zone thermostat may be responsible for the contr...
unsigned int INVALID_ID
defines an invalid id
bool equal(const IdealSurfaceHeatingCoolingModel &other) const
Comparies objects by physical parametrization (excluding ID and displayname and object list)...
unsigned int m_id
Unique ID-number for this model.
std::string m_displayName
Some display/comment name for this model (optional).
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...