Antares Simulator
Power System Simulator
HydroInputsChecker.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 #pragma once
22 #include <antares/study/area/area.h>
23 #include "antares/date/date.h"
24 #include "antares/solver/hydro/management/HydroErrorsCollector.h"
25 #include "antares/solver/hydro/management/MinGenerationScaling.h"
26 #include "antares/solver/hydro/management/PrepareInflows.h"
27 #include "antares/study/study.h"
28 
29 namespace Antares
30 {
31 
32 class HydroInputsChecker final
33 {
34 public:
36  void Execute(uint year);
37  void CheckForErrors() const;
38  void CheckFinalReservoirLevelsConfiguration(uint year);
39 
40 private:
41  Data::AreaList& areas_;
42  const Data::Parameters& parameters_;
43  const Date::Calendar& calendar_;
44  PrepareInflows prepareInflows_;
45  MinGenerationScaling minGenerationScaling_;
46  const Data::TimeSeries::TS& scenarioInitialHydroLevels_;
47  const Data::TimeSeries::TS& scenarioFinalHydroLevels_;
48  HydroErrorsCollector errorCollector_;
49 
51  bool checkMonthlyMinGeneration(uint year, const Data::Area& area);
53  bool checkYearlyMinGeneration(uint year, const Data::Area& area);
55  bool checkWeeklyMinGeneration(uint year, const Data::Area& area);
57  bool checkGenerationPowerConsistency(uint year);
59  bool checksOnGenerationPowerBounds(uint year);
61  bool checkMinGeneration(uint year);
62 };
63 
64 } // namespace Antares
A list of areas.
Definition: area.h:365
Definition for a single area.
Definition: area.h:51
General data for a study.
Definition: parameters.h:51
Definition: study.h:57
Definition: date.h:180
Definition: HydroErrorsCollector.h:32
Definition: HydroInputsChecker.h:33
A n-by-n matrix.
Definition: matrix.h:44
Prepare minimum generation scaling for each area.
Definition: MinGenerationScaling.h:31
Prepare inflows scaling for each area.
Definition: PrepareInflows.h:30