NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_EmbeddedObject.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_EmbeddedObjectH
23 #define NANDRAD_EmbeddedObjectH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_CodeGenMacros.h"
28 #include "NANDRAD_Constants.h"
29 #include "NANDRAD_EmbeddedObjectWindow.h"
30 
31 //#include "NANDRAD_EmbeddedObjectDoor.h"
32 //#include "NANDRAD_EmbeddedObjectHole.h"
33 
34 namespace NANDRAD {
35 
36 class Project;
37 
38 /*! An embedded object generally defines a wall opening (a window or a door).
39  That means, the calculation radiant heat fluxes and heat fluxes by heat transmission are performed
40  by a window model or door model. The embedded oject stores an exchangable parameter model
41  that defines the name for the calculation model and constant model parameters.
42 */
44 public:
45 
46  /*! Parameters to be defined for the various object types and models. */
47  enum para_t {
48  P_Area, // Keyword: Area [m2] 'Area of the embedded object [m2].'
49  NUM_P
50  };
51  /*! Type of embedded object, determines set of physical effects described by this object. */
52  enum objectType_t {
53  OT_Window, // Keyword: Window 'Parametrization of a window model.'
54  OT_Door, // Keyword: Door 'Parametrization of a door model.'
55  OT_Hole, // Keyword: Hole 'Parametrization of an opening model.'
56  NUM_OT
57  };
58 
59 
60  // *** PUBLIC MEMBER FUNCTIONS ***
61 
62  NANDRAD_READWRITE
63  NANDRAD_COMPARE_WITH_ID
64 
65  /*! returns an object type if a model for an object was defined. */
66  objectType_t objectType() const;
67 
68  /*! Checks for valid parameters (value ranges).
69  Also creates quick-access pointer connections to referenced data objects.
70  */
71  void checkParameters(const Project & prj);
72 
73 
74  // *** PUBLIC MEMBER VARIABLES ***
75 
76  /*! Unique ID of the EmbeddedObject. */
77  unsigned int m_id = INVALID_ID; // XML:A:required
78 
79  /*! IBK-language encoded name of the embedded object. */
80  std::string m_displayName; // XML:A
81 
82  /*! List of constant parameters.*/
83  IBK::Parameter m_para[NUM_P]; // XML:E
84 
85  /*! Data container for window model. */
86  EmbeddedObjectWindow m_window; // XML:E:tag=Window
87 
88 // /*! Data container for door model. */
89 // EmbeddedObjectDoor m_door;
90 
91 // /*! Data container for door model. */
92 // EmbeddedObjectHole m_hole;
93 
94 
95 }; // EmbeddedObject
96 
97 } // namespace NANDRAD
98 
99 #endif // NANDRAD_EmbeddedObjectH
Contains all input data that describes a room with walls, floor, ceiling, usage, HVAC etc...
Class EmbeddedObjectWindow defines a window and holds parameters for solar radiation flux calculation...
para_t
Parameters to be defined for the various object types and models.
std::string m_displayName
IBK-language encoded name of the embedded object.
Contains global constants for the Nandrad data model.
void checkParameters(const Project &prj)
Checks for valid parameters (value ranges).
unsigned int m_id
Unique ID of the EmbeddedObject.
unsigned int INVALID_ID
defines an invalid id
EmbeddedObjectWindow m_window
Data container for window model.
NANDRAD_READWRITE NANDRAD_COMPARE_WITH_ID objectType_t objectType() const
returns an object type if a model for an object was defined.
An embedded object generally defines a wall opening (a window or a door).
IBK::Parameter m_para[NUM_P]
List of constant parameters.
objectType_t
Type of embedded object, determines set of physical effects described by this object.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...