SettingsOutput.h
Go to the documentation of this file.
1/*!
2 * \file SettingsOutput.h
3 * \brief Setting Outputs for SEIMS
4 *
5 * Changelog:
6 * - 1. 2017-05-20 - lj - Refactor, decoupling with database IO.
7 *
8 * \author Junzhi Liu, Liangjun Zhu
9 * \version 2.0
10 */
11#ifndef SEIMS_SETTING_OUTPUT_H
12#define SEIMS_SETTING_OUTPUT_H
13
14#include "Settings.h"
15#include "PrintInfo.h"
16
17/*!
18 * \ingroup data
19 * \struct OrgOutItem
20 * \brief Original output item
21 */
22struct OrgOutItem {
23 OrgOutItem() : modCls(""), outputID(""), descprition(""), outFileName(""),
24 aggType(""), unit(""), subBsn(""), intervalUnit(""),
25 sTimet(0), eTimet(0), interval(-1), use(-1) {
26 }
27
28 string modCls;
29 string outputID;
30 string descprition;
31 string outFileName;
32 string aggType;
33 string unit;
34 string subBsn;
35 string intervalUnit;
36 time_t sTimet;
37 time_t eTimet;
38 int interval;
39 int use;
40};
41
42/*!
43 * \ingroup data
44 * \class SettingsOutput
45 * \brief Setting outputs
46 * \sa Settings
47 */
48class SettingsOutput: public Settings {
49public:
50 /*!
51 * \brief Constructor
52 * \param[in] subbasinNum Subbasin number of the entire watershed
53 * \param[in] outletID The subbasin ID of outlet
54 * \param[in] subbasinID Current subbasin ID, 0 for OMP version
55 * \param[in] outputItems Vector of original output items read from FILE_OUT file (or table)
56 * \param[in] scenarioID Scenario ID, -1 means no scenario is used, default is 0
57 * \param[in] calibrationID Calibration ID, -1 means no calibration from calibration sequence is used
58 * \param[in] mpi_rank Rank ID for MPI, 0 is the default, also for OMP version
59 * \param[in] mpi_size Rank size for MPI, -1 is the default for compatible with OMP version
60 */
61 SettingsOutput(int subbasinNum, int outletID, int subbasinID, vector<OrgOutItem>& outputItems,
62 int scenarioID = 0, int calibrationID = -1,
63 int mpi_rank = 0, int mpi_size = -1);
64
65 //! Destructor
67
68 //! Init function
69 static SettingsOutput* Init(int subbasinNum, int outletID, int subbasinID,
70 vector<OrgOutItem>& outputItems,
71 int scenarioID = 0, int calibrationID = -1,
72 int mpi_rank = 0, int mpi_size = -1);
73
74 //! Write output information to log file
75 void Dump(const string& filename) OVERRIDE;
76
77 // This function has been deprecated and replaced by DataCenter::UpdateOutputDate(). -LJ.
78 //! Check date of output settings
79 //void checkDate(time_t, time_t);
80
81public:
82 //! All the print settings
83 vector<PrintInfo *> m_printInfos;
84 /*!
85 * \brief All the output settings
86 * key: OutputID
87 * value: PrintInfo instance
88 * \sa PrintInfo
89 */
90 map<string, PrintInfo *> m_printInfosMap;
91
92private:
93 //! number of subbasins
94 int m_nSubbasins;
95 //! subbasin ID which outlet located
96 int m_outletID;
97 //! current subbasin ID, 0 for OMP version
98 int m_subbasinID;
99 //! Scenario ID, -1 means no scenario is used
100 int m_scenarioID;
101 //! Calibration ID, -1 means no calibration from calibration sequence is used
102 int m_calibrationID;
103 //! Rank ID for MPI, starts from 0 to mpi_size_ - 1
104 int m_mpi_rank;
105 //! Rank size for MPI
106 int m_mpi_size;
107};
108#endif /* SEIMS_SETTING_OUTPUT_H */
Class to store and manage the PRINT information From the file.out file or FILE_OUT collection in Mong...
Settings class to store the settings information.
#define OVERRIDE
A compatible reference to override or blank if not supported by the compiler.
Definition: basic.h:160
static SettingsOutput * Init(int subbasinNum, int outletID, int subbasinID, vector< OrgOutItem > &outputItems, int scenarioID=0, int calibrationID=-1, int mpi_rank=0, int mpi_size=-1)
Init function.
vector< PrintInfo * > m_printInfos
Check date of output settings.
Definition: SettingsOutput.h:83
~SettingsOutput()
Destructor.
map< string, PrintInfo * > m_printInfosMap
All the output settings key: OutputID value: PrintInfo instance.
Definition: SettingsOutput.h:90
SettingsOutput(int subbasinNum, int outletID, int subbasinID, vector< OrgOutItem > &outputItems, int scenarioID=0, int calibrationID=-1, int mpi_rank=0, int mpi_size=-1)
Constructor.
void Dump(const string &filename) OVERRIDE
Write output information to log file.
Base class for input or output Settings.
Definition: Settings.h:28
Setting outputs.
Definition: SettingsOutput.h:48
Original output item.
Definition: SettingsOutput.h:22