NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_EmbeddedObjectWindow.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_EmbeddedObjectWindowH
23 #define NANDRAD_EmbeddedObjectWindowH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_CodeGenMacros.h"
28 #include "NANDRAD_Constants.h"
29 
30 #include "NANDRAD_Material.h"
31 #include "NANDRAD_WindowFrame.h"
32 #include "NANDRAD_WindowDivider.h"
33 #include "NANDRAD_WindowShading.h"
34 #include "NANDRAD_WindowGlazingSystem.h"
35 
36 namespace NANDRAD {
37 
38 /*! Class EmbeddedObjectWindow defines a window and holds parameters for solar radiation
39  flux calculation and heat exchange through the window.
40 */
42  NANDRAD_READWRITE_PRIVATE
43 public:
44 
45  // *** PUBLIC MEMBER FUNCTIONS ***
46 
47  NANDRAD_READWRITE_IFNOTEMPTY(EmbeddedObjectWindow)
48  NANDRAD_COMP(EmbeddedObjectWindow)
49 
50  /*! Returns true, if a glazing system is defined. */
51  bool hasParameters() const { return m_glazingSystemId != INVALID_ID; }
52 
53  /*! Checks for valid parameters (value ranges). Also, this function creates
54  quick-access pointers to the referenced data structures, hereby testing for existence
55  of referenced data types.
56  \param grossArea Cross section in [m2] of embedded object. Frame and divider must
57  not exceed this cross section.
58  */
59  void checkParameters(double grossArea, const std::vector<Material> & materials,
60  const std::vector<WindowGlazingSystem> & glazingSystems,
61  const std::vector<ShadingControlModel> & controlModels);
62 
63  // *** PUBLIC MEMBER VARIABLES ***
64 
65  /*! ID of the glazing system used in this window.
66  A glazing system with invalid ID means that this Window object is now parametrized. */
67  unsigned int m_glazingSystemId = INVALID_ID; // XML:A:required
68 
69  /*! Frame parameters (optional). */
70  WindowFrame m_frame; // XML:E:tag=Frame
71  /*! Divider parameters (optional). */
72  WindowDivider m_divider; // XML:E:tag=Divider
73 
74  /*! Shading model parameters (otional). */
75  WindowShading m_shading; // XML:E:tag=Shading
76 
77  // *** Variables used only during simulation ***
78 
79  /*! Cached gross cross-section area of surface in [m2] (embedded object gross area). */
80  double m_area = 999;
81  /*! Cached cross-section area of glas surface in [m2] (embedded object gross area minus frame and divider cross section areas). */
82  double m_glasArea = 999;
83 
84  /*! Quick-access pointer to the glazing system data. */
86 
87 }; // EmbeddedObjectWindow
88 
89 
90 } // namespace NANDRAD
91 
92 #endif // NANDRAD_EmbeddedObjectWindowH
const NANDRAD::WindowGlazingSystem * m_glazingSystem
Quick-access pointer to the glazing system data.
Class EmbeddedObjectWindow defines a window and holds parameters for solar radiation flux calculation...
Contains global constants for the Nandrad data model.
WindowShading m_shading
Shading model parameters (otional).
WindowShading defines a dynamically adjustable shading.
WindowGlazingSystem defines the glazing to be used in a window.
WindowDivider m_divider
Divider parameters (optional).
unsigned int INVALID_ID
defines an invalid id
WindowFrame m_frame
Frame parameters (optional).
double m_area
Cached gross cross-section area of surface in [m2] (embedded object gross area).
WindowFrame defines the frame of a window.
bool hasParameters() const
Returns true, if a glazing system is defined.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
double m_glasArea
Cached cross-section area of glas surface in [m2] (embedded object gross area minus frame and divider...
unsigned int m_glazingSystemId
ID of the glazing system used in this window.
void checkParameters(double grossArea, const std::vector< Material > &materials, const std::vector< WindowGlazingSystem > &glazingSystems, const std::vector< ShadingControlModel > &controlModels)
Checks for valid parameters (value ranges).
WindowDivider defines the divider of a window.