NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_Location.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_LocationH
23 #define NANDRAD_LocationH
24 
25 #include <IBK_Path.h>
26 #include <IBK_Flag.h>
27 #include <IBK_Parameter.h>
28 
29 #include "NANDRAD_Sensor.h"
30 #include "NANDRAD_CodeGenMacros.h"
31 
32 namespace NANDRAD {
33 
34 /*! Class Location specifies climate and climatic loads of the
35  whole building.
36 */
37 class Location {
38 public:
39 
40  /*! Location parameters. */
41  enum para_t {
42  /*! Latitude. */
43  P_Latitude, // Keyword: Latitude [Deg] 'Latitude.'
44  /*! Longitude. */
45  P_Longitude, // Keyword: Longitude [Deg] 'Longitude.'
46  /*! Albedo value [0..100 %]. */
47  P_Albedo, // Keyword: Albedo [%] 'Albedo value [0..100 %].'
48  /*! Altitude of building as height above NN [m]. */
49  P_Altitude, // Keyword: Altitude [m] 'Altitude of building as height above NN [m].'
50  NUM_P
51  };
52 
53  /*! Calculation flags. */
54  enum flag_t {
55  F_PerezDiffuseRadiationModel, // Keyword: PerezDiffuseRadiationModel 'Use diffuse radiation model for anisotropic radiation (Perez)'
56  F_ContinuousShadingFactorData, // Keyword: ContinuousShadingFactorData 'If true, shading factors for exterior shading are stored for continuous time points (no cyclic use)'
57  NUM_F
58  };
59 
60  // *** PUBLIC MEMBER FUNCTIONS ***
61 
62  NANDRAD_READWRITE
63 
64  /*! Checks for valid and required parameters (value ranges). */
65  void checkParameters() const;
66 
67  // *** PUBLIC MEMBER VARIABLES ***
68 
69  /*! Parameter set. */
70  IBK::Parameter m_para[NUM_P]; // XML:E
71  /*! List of flags. */
72  IBK::Flag m_flags[NUM_F]; // XML:E
73 
74  /*! Time zone, only used when both P_Longitude and P_Latitude are given and thus
75  a custom climatic location is being used.
76  */
77  int m_timeZone = 13; // XML:E
78 
79  /*! Path to the climate data file (may contain placeholders). */
80  IBK::Path m_climateFilePath; // XML:E
81 
82  /*! Optional: name of the external shading factor data file. */
83  IBK::Path m_shadingFactorFilePath; // XML:E
84 
85  /*! We may place one or more radiation sensors outside. */
86  std::vector<Sensor> m_sensors; // XML:E
87 
88 };
89 
90 } // namespace NANDRAD
91 
92 #endif // NANDRAD_LocationH
NANDRAD_READWRITE void checkParameters() const
Checks for valid and required parameters (value ranges).
flag_t
Calculation flags.
std::vector< Sensor > m_sensors
We may place one or more radiation sensors outside.
IBK::Parameter m_para[NUM_P]
Parameter set.
IBK::Path m_shadingFactorFilePath
Optional: name of the external shading factor data file.
Albedo value [0..100 %].
para_t
Location parameters.
Class Location specifies climate and climatic loads of the whole building.
IBK::Path m_climateFilePath
Path to the climate data file (may contain placeholders).
Altitude of building as height above NN [m].
int m_timeZone
Time zone, only used when both P_Longitude and P_Latitude are given and thus a custom climatic locati...
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
IBK::Flag m_flags[NUM_F]
List of flags.