NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_NaturalVentilationModel.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_NaturalVentilationModelH
23 #define NANDRAD_NaturalVentilationModelH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_Constants.h"
28 #include "NANDRAD_CodeGenMacros.h"
29 
30 namespace NANDRAD {
31 
32 /*! Contains all data for natural ventilation models. */
34 public:
35  /*! Different model variants. */
36  enum modelType_t {
37  /*! Ventilation rate is given as constant parameter. */
38  MT_Constant, // Keyword: Constant 'Constant ventilation rate (also can used as infiltration)'
39  /*! Ventilation rate is provided as 'VentilationRateSchedule' schedule parameter. */
40  MT_Scheduled, // Keyword: Scheduled 'Scheduled ventilation rate'
41  /*! Increased day time ventilation. */
42  MT_ScheduledWithBaseACR, // Keyword: ScheduledWithBaseACR 'Constant basic air exchange (infiltration) with an additional increased air exchange (ventilation) if the control conditions are met. '
43  NUM_MT
44  };
45 
46  /*! Model parameters. */
47  enum para_t {
48  P_VentilationRate, // Keyword: VentilationRate [1/h] 'Ventilation rate'
49  P_MaximumRoomAirTemperatureACRLimit, // Keyword: MaximumRoomAirTemperatureACRLimit [C] 'Condition for ventilation increase'
50  P_MinimumRoomAirTemperatureACRLimit, // Keyword: MinimumRoomAirTemperatureACRLimit [C] 'Condition for ventilation increase'
51  P_MaximumEnviromentAirTemperatureACRLimit, // Keyword: MaximumEnviromentAirTemperatureACRLimit [C] 'Condition for ventilation increase'
52  P_MinimumEnviromentAirTemperatureACRLimit, // Keyword: MinimumEnviromentAirTemperatureACRLimit [C] 'Condition for ventilation increase'
53  P_DeltaTemperatureACRLimit, // Keyword: DeltaTemperatureACRLimit [K] 'Condition for ventilation increase'
54  P_WindSpeedACRLimit, // Keyword: WindSpeedACRLimit [m/s] 'Condition for ventilation increase'
55  NUM_P
56  };
57 
58  NANDRAD_READWRITE
59  NANDRAD_COMPARE_WITH_ID
60 
61  /*! Checks parameters for valid values. */
62  void checkParameters() const;
63 
64  /*! Comparies objects by physical parametrization (excluding ID and displayname and object list). */
65  bool equal(const NaturalVentilationModel & other) const;
66 
67  /*! Unique ID-number for this ventilation rate model. */
68  unsigned int m_id = NANDRAD::INVALID_ID; // XML:A:required
69  /*! Some display/comment name for this model (optional). */
70  std::string m_displayName; // XML:A
71 
72  /*! Model type. */
73  modelType_t m_modelType = NUM_MT; // XML:A:required
74 
75  /*! Object list with zones that this model is to be apply to. */
76  std::string m_zoneObjectList; // XML:E:required
77 
78  /*! Model parameters. */
79  IBK::Parameter m_para[NUM_P]; // XML:E
80 };
81 
82 } // namespace NANDRAD
83 
84 #endif // NANDRAD_NaturalVentilationModelH
Contains all data for natural ventilation models.
unsigned int m_id
Unique ID-number for this ventilation rate model.
Contains global constants for the Nandrad data model.
NANDRAD_READWRITE NANDRAD_COMPARE_WITH_ID void checkParameters() const
Checks parameters for valid values.
bool equal(const NaturalVentilationModel &other) const
Comparies objects by physical parametrization (excluding ID and displayname and object list)...
unsigned int INVALID_ID
defines an invalid id
std::string m_displayName
Some display/comment name for this model (optional).
Ventilation rate is provided as &#39;VentilationRateSchedule&#39; schedule parameter.
IBK::Parameter m_para[NUM_P]
Model parameters.
Ventilation rate is given as constant parameter.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
std::string m_zoneObjectList
Object list with zones that this model is to be apply to.