NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_InternalLoadsModel.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_InternalLoadsModelH
23 #define NANDRAD_InternalLoadsModelH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_Constants.h"
28 #include "NANDRAD_CodeGenMacros.h"
29 #include "NANDRAD_KeywordList.h"
30 
31 namespace NANDRAD {
32 
33 /*! Contains schedules or constant parameters for internal loads (related to zone area). */
35 public:
36  /*! Different model variants. */
37  enum modelType_t {
38  /*! Internal loads are given with constant parameters. */
39  MT_Constant, // Keyword: Constant 'Constant internal loads'
40  /*! Internal loads are provided via schedule parameters. */
41  MT_Scheduled, // Keyword: Scheduled 'Scheduled internal loads'
42  NUM_MT
43  };
44 
45  /*! Model parameters. */
46  enum para_t {
47  P_EquipmentRadiationFraction, // Keyword: EquipmentRadiationFraction [---] 'Percentage of equipment load that is radiant emitted.'
48  P_PersonRadiationFraction, // Keyword: PersonRadiationFraction [---] 'Percentage of person load that is radiant emitted.'
49  P_LightingRadiationFraction, // Keyword: LightingRadiationFraction [---] 'Percentage of lighting load that is radiant emitted.'
50  P_EquipmentHeatLoadPerArea, // Keyword: EquipmentHeatLoadPerArea [W/m2] 'Complete equipment load per zone floor area.'
51  P_PersonHeatLoadPerArea, // Keyword: PersonHeatLoadPerArea [W/m2] 'Complete person load per zone floor area.'
52  P_LightingHeatLoadPerArea, // Keyword: LightingHeatLoadPerArea [W/m2] 'Complete lighting load per zone floor area.'
53  NUM_P
54  };
55 
56  // *** PUBLIC MEMBER FUNCTIONS ***
57 
58  NANDRAD_READWRITE
59  NANDRAD_COMPARE_WITH_ID
60 
61  /*! Checks for valid parameters (value ranges). */
62  void checkParameters() const;
63 
64  /*! Comparies objects by physical parametrization (excluding ID and displayname and object list). */
65  bool equal(const InternalLoadsModel & other) const;
66 
67  // *** PUBLIC MEMBER VARIABLES ***
68 
69  /*! Unique ID-number for this ventilation rate model. */
70  unsigned int m_id = NANDRAD::INVALID_ID; // XML:A:required
71  /*! Some display/comment name for this model (optional). */
72  std::string m_displayName; // XML:A
73 
74  /*! Model type. */
75  modelType_t m_modelType = NUM_MT; // XML:A:required
76 
77  /*! Object list with zones that this model is to be apply to. */
78  std::string m_zoneObjectList; // XML:E:required
79 
80  /*! Model parameters. */
81  IBK::Parameter m_para[NUM_P]; // XML:E
82 };
83 
84 } // namespace NANDRAD
85 
86 #endif // NANDRAD_InternalLoadsModelH
bool equal(const InternalLoadsModel &other) const
Comparies objects by physical parametrization (excluding ID and displayname and object list)...
Contains global constants for the Nandrad data model.
NANDRAD_READWRITE NANDRAD_COMPARE_WITH_ID void checkParameters() const
Checks for valid parameters (value ranges).
Contains the declaration of class KeywordList.
std::string m_zoneObjectList
Object list with zones that this model is to be apply to.
unsigned int INVALID_ID
defines an invalid id
std::string m_displayName
Some display/comment name for this model (optional).
unsigned int m_id
Unique ID-number for this ventilation rate model.
modelType_t
Different model variants.
Internal loads are given with constant parameters.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
IBK::Parameter m_para[NUM_P]
Model parameters.
Internal loads are provided via schedule parameters.
Contains schedules or constant parameters for internal loads (related to zone area).