21 #ifndef __LIBS_STUDY_SCENARIO_BUILDER_RULES_H__
22 #define __LIBS_STUDY_SCENARIO_BUILDER_RULES_H__
27 #include <yuni/yuni.h>
28 #include <yuni/core/string.h>
31 #include "BindingConstraintsTSNumbersData.h"
32 #include "HydroTSNumberData.h"
33 #include "LoadTSNumberData.h"
34 #include "NTCTSNumberData.h"
35 #include "RenewableTSNumberData.h"
36 #include "ShortTermAdditionalConstraintsTSNumberData.h"
37 #include "ShortTermInflowsTSNumberData.h"
38 #include "TSnumberData.h"
39 #include "ThermalTSNumberData.h"
40 #include "WindTSNumberData.h"
41 #include "hydroLevelsData.h"
42 #include "solarTSNumberData.h"
44 namespace Antares::Data::ScenarioBuilder
49 class Rules final:
private Yuni::NonCopyable<Rules>
53 using Ptr = std::shared_ptr<Rules>;
55 using Map = std::map<RulesScenarioName, Ptr>;
81 bool readLine(
const AreaName::Vector& splitKey,
const String& value,
bool updaterMode =
false);
87 void saveToINIFile(Yuni::IO::File::Stream& file)
const;
95 const RulesScenarioName&
name()
const;
96 void setName(RulesScenarioName
name);
106 void sendWarningsForDisabledClusters();
128 std::vector<ntcTSNumberData> linksNTC;
132 std::vector<ShortTermInflowsTSNumberData> shortTermStorageInflows;
133 std::vector<ShortTermAdditionalConstraintsTSNumberData> shortTermStorageAdditionalConstraints;
137 bool readThermalCluster(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
138 bool readRenewableCluster(
const AreaName::Vector& instrs,
141 bool readLoad(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
142 bool readWind(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
143 bool readHydro(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
144 bool readSolar(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
145 bool readInitialHydroLevels(
const AreaName::Vector& instrs,
148 bool readFinalHydroLevels(
const AreaName::Vector& instrs,
151 bool readLink(
const AreaName::Vector& instrs,
const String& value,
bool updaterMode);
152 bool readBindingConstraints(
const AreaName::Vector& splitKey,
const String& value);
154 bool readShortTermStorageInflows(
const AreaName::Vector& splitKey,
158 bool readShortTermStorageAdditionalConstraints(
const AreaName::Vector& splitKey,
162 Data::Area* getArea(
const AreaName& areaname,
bool updaterMode);
164 const AreaName& toAreaName,
166 bool checkGroupExists(
const std::string& groupName)
const;
173 RulesScenarioName pName;
175 std::map<std::string, std::vector<uint>> disabledClustersOnRuleActive;
Definition of a link between two areas (Interconnection)
Definition: links.h:58
Definition for a single area.
Definition: area.h:51
Definition: BindingConstraintsTSNumbersData.h:32
Rules for TS numbers, for all years and a single timeseries.
Definition: rules.h:50
~Rules()=default
Destructor.
std::vector< renewableTSNumberData > renewable
Renewable (array [0..pAreaCount - 1])
Definition: rules.h:120
std::vector< thermalTSNumberData > thermal
Thermal (array [0..pAreaCount - 1])
Definition: rules.h:118
Rules(Study &study)
Default constructor.
Definition: rules.cpp:51
loadTSNumberData load
Load.
Definition: rules.h:109
hydroTSNumberData hydro
Hydro.
Definition: rules.h:113
bool reset()
Initialize data from the study.
Definition: rules.cpp:89
std::map< RulesScenarioName, Ptr > Map
Map.
Definition: rules.h:55
bool apply()
Apply the changes to the timeseries number matrices.
Definition: rules.cpp:537
bool readLine(const AreaName::Vector &splitKey, const String &value, bool updaterMode=false)
Load information from a single line (extracted from an INI file)
Definition: rules.cpp:472
solarTSNumberData solar
Solar.
Definition: rules.h:111
hydroLevelsData hydroFinalLevels
hydro final levels
Definition: rules.h:125
hydroLevelsData hydroInitialLevels
hydro initial levels
Definition: rules.h:123
const RulesScenarioName & name() const
Name of the rules set.
Definition: rules.hxx:31
std::shared_ptr< Rules > Ptr
Smart pointer.
Definition: rules.h:53
std::map< int, Ptr > MappingID
Map ID.
Definition: rules.h:57
uint areaCount() const
Get the number of areas.
Definition: rules.hxx:26
windTSNumberData wind
Wind.
Definition: rules.h:115
Rules for hydro levels, for all years and areas.
Definition: hydroLevelsData.h:34
Definition: HydroTSNumberData.h:29
Definition: LoadTSNumberData.h:29
Definition: solarTSNumberData.h:33
Definition: WindTSNumberData.h:29