NANDRAD Data Model Library  Version 2.0
NANDRAD
NANDRAD_InterfaceSolarAbsorption.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_InterfaceSolarAbsorptionH
23 #define NANDRAD_InterfaceSolarAbsorptionH
24 
25 #include <IBK_Parameter.h>
26 #include "NANDRAD_CodeGenMacros.h"
27 
28 namespace NANDRAD {
29 
30 /*! Parametrization for solar absorption (short wave radiation boundary condition). */
32  NANDRAD_READWRITE_PRIVATE
33 public:
34 
35  /*! Model types supported by the solar absorption model. */
36  enum modelType_t {
37  MT_Constant, // Keyword: Constant 'Constant model'
38  NUM_MT // Keyword: None 'No short wave radiation exchange'
39  };
40 
41  /*! Parameters. */
42  enum para_t {
43  P_AbsorptionCoefficient, // Keyword: AbsorptionCoefficient [---] 'Solar absorption coefficient'
44  NUM_P
45  };
46 
47  // *** PUBLIC MEMBER FUNCTIONS ***
48 
49  NANDRAD_READWRITE_IFNOTEMPTY(InterfaceSolarAbsorption)
50  NANDRAD_COMP(InterfaceSolarAbsorption)
51 
52  /*! Checks for valid parameters (value ranges). */
53  void checkParameters() const;
54 
55  /*! Computes model-dependent solar radiation flux in [W/m2] on surface.
56  \param globalRad Global radiation intensity in [W/m2] onto surface.
57  */
58  double radFlux(double globalRad) const;
59 
60  // *** PUBLIC MEMBER VARIABLES ***
61 
62  /*! Model type. */
63  modelType_t m_modelType = NUM_MT; // XML:A:required
64  /*! List of constant parameters. */
65  IBK::Parameter m_para[NUM_P]; // XML:E
66 
67 }; // InterfaceSolarAbsorption
68 
69 } // namespace NANDRAD
70 
71 #endif // NANDRAD_InterfaceSolarAbsorptionH
IBK::Parameter m_para[NUM_P]
List of constant parameters.
double radFlux(double globalRad) const
Computes model-dependent solar radiation flux in [W/m2] on surface.
Parametrization for solar absorption (short wave radiation boundary condition).
void checkParameters() const
Checks for valid parameters (value ranges).
modelType_t
Model types supported by the solar absorption model.
The namespace NANDRAD contains the data model classes that make up the NANDRAD solver input data...