NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_Models.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_ModelsH
23 #define NANDRAD_ModelsH
24 
25 #include <vector>
26 
27 #include "NANDRAD_NaturalVentilationModel.h"
28 #include "NANDRAD_InternalLoadsModel.h"
29 #include "NANDRAD_ShadingControlModel.h"
30 #include "NANDRAD_Thermostat.h"
31 #include "NANDRAD_HeatLoadSummationModel.h"
32 #include "NANDRAD_IdealHeatingCoolingModel.h"
33 #include "NANDRAD_IdealPipeRegisterModel.h"
34 #include "NANDRAD_IdealSurfaceHeatingCoolingModel.h"
35 #include "NANDRAD_NetworkInterfaceAdapterModel.h"
36 #include "NANDRAD_CodeGenMacros.h"
37 
38 namespace NANDRAD {
39 
40 /*! A container class for all models. */
41 class Models {
42 public:
43 
44  // *** PUBLIC MEMBER FUNCTIONS ***
45 
46  NANDRAD_READWRITE
47 
48  // *** PUBLIC MEMBER VARIABLES ***
49 
50  /*! Verifies that all models have different IDs. */
51  void checkForUniqueIDs() const;
52 
53  /*! Container for all natural ventilation models. */
54  std::vector<NaturalVentilationModel> m_naturalVentilationModels; // XML:E
55  /*! Container for all internal loads models. */
56  std::vector<InternalLoadsModel> m_internalLoadsModels; // XML:E
57  /*! Container for all shading control models. */
58  std::vector<ShadingControlModel> m_shadingControlModels; // XML:E
59  /*! Container for all thermostat control models. */
60  std::vector<Thermostat> m_thermostats; // XML:E
61  /*! Container for all ideal heating/cooling models. */
62  std::vector<IdealHeatingCoolingModel> m_idealHeatingCoolingModels; // XML:E
63  /*! Container for all ideal surface heating/cooling models. */
64  std::vector<IdealSurfaceHeatingCoolingModel> m_idealSurfaceHeatingCoolingModels; // XML:E
65  /*! Container for all ideal pipe register models. */
66  std::vector<IdealPipeRegisterModel> m_idealPipeRegisterModels; // XML:E
67  /*! Container for all heat load summation models. */
68  std::vector<HeatLoadSummationModel> m_heatLoadSummationModels; // XML:E
69  /*! Container for all network interface models. */
70  std::vector<NetworkInterfaceAdapterModel> m_networkInterfaceAdapterModels; // XML:E
71 };
72 
73 } // namespace NANDRAD
74 
75 #endif // NANDRAD_ModelsH
std::vector< IdealPipeRegisterModel > m_idealPipeRegisterModels
Container for all ideal pipe register models.
std::vector< InternalLoadsModel > m_internalLoadsModels
Container for all internal loads models.
std::vector< IdealHeatingCoolingModel > m_idealHeatingCoolingModels
Container for all ideal heating/cooling models.
std::vector< IdealSurfaceHeatingCoolingModel > m_idealSurfaceHeatingCoolingModels
Container for all ideal surface heating/cooling models.
std::vector< ShadingControlModel > m_shadingControlModels
Container for all shading control models.
std::vector< HeatLoadSummationModel > m_heatLoadSummationModels
Container for all heat load summation models.
std::vector< NaturalVentilationModel > m_naturalVentilationModels
Container for all natural ventilation models.
A container class for all models.
std::vector< Thermostat > m_thermostats
Container for all thermostat control models.
std::vector< NetworkInterfaceAdapterModel > m_networkInterfaceAdapterModels
Container for all network interface models.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...
NANDRAD_READWRITE void checkForUniqueIDs() const
Verifies that all models have different IDs.