Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
adq-patch-params.h
1/*
2** Copyright 2007-2024, 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
23#include <string>
24#include <vector>
25
26#include <yuni/core/string.h>
27
28#include <antares/inifile/inifile.h>
29#include <antares/study/fwd.h>
30
31namespace Antares::Data::AdequacyPatch
32{
34const double defaultThresholdToRunCurtailmentSharing = 0.0;
36const double defaultThresholdDisplayLocalMatchingRuleViolations = 0.0;
38const int defaultValueThresholdVarBoundsRelaxation = 3;
39
43enum AdequacyPatchMode
44{
46 virtualArea = 0,
48 physicalAreaOutsideAdqPatch = 1,
50 physicalAreaInsideAdqPatch = 2
51}; // enum AdequacyPatchMode
52
56enum class AdqPatchPTO
57{
59 isDens = 0,
61 isLoad
62
63}; // enum AdqPatchPTO
64
66{
67public:
69 AdqPatchPTO priceTakingOrder;
80
81 bool updateFromKeyValue(const Yuni::String& key, const Yuni::String& value);
82 void addProperties(IniFile::Section* section) const;
83
84 void reset();
85
86private:
87 void resetThresholds();
88};
89
91{
92 bool enabled;
97 CurtailmentSharing curtailmentSharing;
98
99 void reset();
100 void addExcludedVariables(std::vector<std::string>&) const;
101 bool updateFromKeyValue(const Yuni::String& key, const Yuni::String& value);
102 void saveToINI(IniFile& ini) const;
103 bool checkAdqPatchParams(const SimulationMode simulationMode,
104 const AreaList& areas,
105 const bool includeHurdleCostParameters) const;
106
107 void checkAdqPatchSimulationModeEconomyOnly(const SimulationMode simulationMode) const;
108 void checkAdqPatchContainsAdqPatchArea(const Antares::Data::AreaList& areas) const;
109 void checkAdqPatchIncludeHurdleCost(const bool includeHurdleCost) const;
110};
111
112} // namespace Antares::Data::AdequacyPatch
Definition adq-patch-params.h:66
AdqPatchPTO priceTakingOrder
PTO (Price Taking Order) for adequacy patch. User can choose between DENS and Load.
Definition adq-patch-params.h:69
double thresholdDisplayViolations
Threshold to display Local Matching Rule violations.
Definition adq-patch-params.h:73
int thresholdVarBoundsRelaxation
CSR Variables relaxation threshold.
Definition adq-patch-params.h:75
bool includeHurdleCost
Include hurdle cost in CSR cost function.
Definition adq-patch-params.h:77
bool checkCsrCostFunction
Check CSR cost function prior & after CSR optimization.
Definition adq-patch-params.h:79
double thresholdRun
Threshold to initiate curtailment sharing rule.
Definition adq-patch-params.h:71
A list of areas.
Definition area.h:366
A single section, with all its keys.
Definition inifile.h:67
Data for an INI file.
Definition inifile.h:34
Definition adq-patch-params.h:91
bool setToZeroOutsideInsideLinks
Definition adq-patch-params.h:96