NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_WindowGlazingSystem.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_WindowGlazingSystemH
23 #define NANDRAD_WindowGlazingSystemH
24 
25 #include <IBK_Parameter.h>
26 
27 #include "NANDRAD_CodeGenMacros.h"
28 #include "NANDRAD_Constants.h"
29 #include "NANDRAD_LinearSplineParameter.h"
30 #include "NANDRAD_WindowGlazingLayer.h"
31 
32 namespace NANDRAD {
33 
34 /*! WindowGlazingSystem defines the glazing to be used in a window. */
36 public:
37 
38  /*! Model types supported by the window model. */
39  enum modelType_t {
40  MT_Simple, // Keyword: Simple 'Standard globbed-layers model.'
41  MT_Detailed, // Keyword: Detailed 'Detailed window model with layers.'
42  NUM_MT
43  };
44 
45  /*! Model parameters. */
46  enum para_t {
47  P_ThermalTransmittance, // Keyword: ThermalTransmittance [W/m2K] 'Thermal transmittance'
48  NUM_P
49  };
50 
51  /*! Enum type with all possible glazing system spline parameters.*/
52  enum splinePara_t {
53  SP_SHGC, // Keyword: SHGC [---] 'Short wave transmittance at outside directed surface.'
54  NUM_SP
55  };
56 
57  // *** PUBLIC MEMBER FUNCTIONS ***
58 
59  NANDRAD_READWRITE
60  NANDRAD_COMPARE_WITH_ID
61 
62  /*! Checks for valid parameters. */
63  void checkParameters();
64  /*! Computes flux density towards glazing system in [W/m2]for both window sides and stores
65  results in solarLeft and solarRight.
66  \param incidenceAngle Incidence angle in [Rad].
67  */
68  void computeSolarFluxDensity(double qDir, double qDiff, double incidenceAngle, double &solarLeft, double &solarRight,
69  bool solarLoadsLeft) const;
70  /*! Computes flux density towards glazing system in [W/m2] for both window sides depending from model type
71  and stores in heatCondLeft and heatCondRight.
72  */
73  void computeHeatConductionFluxDensity(double Tleft, double Tright, double alphaLeft, double alphaRight, double &heatCondLeft,
74  double &heatCondRight, double & surfaceTempLeft, double & surfaceTempRight) const;
75 
76 
77  // *** PUBLIC MEMBER VARIABLES ***
78 
79  /*! Unique ID-number for this glazing system (INVALID_ID = disabled/undefined). */
80  unsigned int m_id = NANDRAD::INVALID_ID; // XML:A:required
81  /*! Some display/comment name for this model (optional). */
82  std::string m_displayName; // XML:A
83  /*! Model type. */
84  modelType_t m_modelType = NUM_MT; // XML:A:required
85 
86  /*! Model parameters. */
87  IBK::Parameter m_para[NUM_P]; // XML:E
88 
89  /*! Parameter for angle-dependent SHGC value. */
91 
92  /*! Parameters for the detailed multi-layer model. */
93  std::vector<WindowGlazingLayer> m_layers; // XML:E
94 
95 }; // WindowGlazingSystem
96 
97 } // namespace NANDRAD
98 
99 #endif // NANDRAD_WindowGlazingSystemH
LinearSplineParameter m_splinePara[NUM_SP]
Parameter for angle-dependent SHGC value.
Contains global constants for the Nandrad data model.
NANDRAD_READWRITE NANDRAD_COMPARE_WITH_ID void checkParameters()
Checks for valid parameters.
WindowGlazingSystem defines the glazing to be used in a window.
void computeSolarFluxDensity(double qDir, double qDiff, double incidenceAngle, double &solarLeft, double &solarRight, bool solarLoadsLeft) const
Computes flux density towards glazing system in [W/m2]for both window sides and stores results in sol...
Class LinearSplineParameter stores a linear spline curve, the corresponding parameter name and a unit...
IBK::Parameter m_para[NUM_P]
Model parameters.
unsigned int INVALID_ID
defines an invalid id
void computeHeatConductionFluxDensity(double Tleft, double Tright, double alphaLeft, double alphaRight, double &heatCondLeft, double &heatCondRight, double &surfaceTempLeft, double &surfaceTempRight) const
Computes flux density towards glazing system in [W/m2] for both window sides depending from model typ...
splinePara_t
Enum type with all possible glazing system spline parameters.
std::vector< WindowGlazingLayer > m_layers
Parameters for the detailed multi-layer model.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
std::string m_displayName
Some display/comment name for this model (optional).
unsigned int m_id
Unique ID-number for this glazing system (INVALID_ID = disabled/undefined).
modelType_t
Model types supported by the window model.