Antares Simulator
Power System Simulator
scratchpad.h
1 /*
2 ** Copyright 2007-2025, RTE (https://www.rte-france.com)
3 ** See AUTHORS.txt
4 ** SPDX-License-Identifier: MPL-2.0
5 ** This file is part of Antares-Simulator,
6 ** Adequacy and Performance assessment for interconnected energy networks.
7 **
8 ** Antares_Simulator is free software: you can redistribute it and/or modify
9 ** it under the terms of the Mozilla Public Licence 2.0 as published by
10 ** the Mozilla Foundation, either version 2 of the License, or
11 ** (at your option) any later version.
12 **
13 ** Antares_Simulator is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ** Mozilla Public Licence 2.0 for more details.
17 **
18 ** You should have received a copy of the Mozilla Public Licence 2.0
19 ** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20 */
21 #ifndef __ANTARES_LIBS_STUDY_AREA_SCRATCHPAD_H__
22 #define __ANTARES_LIBS_STUDY_AREA_SCRATCHPAD_H__
23 
24 #include <numeric>
25 #include <set>
26 #include <vector>
27 
28 #include <yuni/yuni.h>
29 #include <yuni/core/noncopyable.h>
30 #include <yuni/core/string.h>
31 
32 #include <antares/array/matrix.h>
33 #include <antares/series/series.h>
34 
35 #include "../fwd.h"
36 
37 namespace Antares::Data
38 {
42 class AreaScratchpad final
43 {
44 public:
47 
49 
50 
53  AreaScratchpad(const StudyRuntimeInfos& rinfos, Area& area);
55  ~AreaScratchpad() = default;
57 
59  double miscGenSum[HOURS_PER_YEAR];
60 
61  bool hydroHasMod;
62 
64  // else pumpHasMod = false
65  bool pumpHasMod;
66 
68  // This variable is initialized every MC-year
69  std::array<double, HOURS_PER_YEAR> mustrunSum;
70 
72  // This variable is initialized every MC-year
73  std::array<double, HOURS_PER_YEAR> originalMustrunSum;
74 
82 
90  TimeSeries meanMaxDailyPumpPower;
91 
92 private:
99  void CalculateMeanDailyMaxPowerMatrices(const Matrix<double>& hourlyMaxGenMatrix,
100  const Matrix<double>& hourlyMaxPumpMatrix);
101 
102 }; // class AreaScratchpad
103 
104 } // namespace Antares::Data
105 
106 #endif // __ANTARES_LIBS_STUDY_AREA_SCRATCHPAD_H__
Scratchpad for temporary data performed by the solver.
Definition: scratchpad.h:43
bool pumpHasMod
if sum(365)[pumpMaxP * pumpMaxE] > 0. then pumpHasMod = true
Definition: scratchpad.h:65
TimeSeries meanMaxDailyGenPower
Daily mean maximum power matrices.
Definition: scratchpad.h:89
std::array< double, HOURS_PER_YEAR > originalMustrunSum
Sum of all original 'must-run' clusters (adequacy only)
Definition: scratchpad.h:73
std::array< double, HOURS_PER_YEAR > mustrunSum
Sum of all 'must-run' clusters.
Definition: scratchpad.h:69
double dispatchableGenerationMargin[168]
Dispatchable Generation Margin.
Definition: scratchpad.h:81
AreaScratchpad(const StudyRuntimeInfos &rinfos, Area &area)
Constructor.
Definition: scratchpad.cpp:62
~AreaScratchpad()=default
Destructor.
double miscGenSum[HOURS_PER_YEAR]
Sum of all fatal hors hydro.
Definition: scratchpad.h:59
Definition for a single area.
Definition: area.h:51
Runtime informations.
Definition: runtime.h:69
This class is used to represent the generic time series.
Definition: series.h:65
A n-by-n matrix.
Definition: matrix.h:44