Antares Simulator
Power System Simulator
all.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 __SOLVER_VARIABLE_ADEQUACY_ALL_H__
22 #define __SOLVER_VARIABLE_ADEQUACY_ALL_H__
23 
24 #include "antares/solver/variable/adequacy/links.h"
25 #include "antares/solver/variable/adequacy/overallCost.h"
26 #include "antares/solver/variable/adequacy/spilledEnergy.h"
27 #include "antares/solver/variable/area.h"
28 #include "antares/solver/variable/bindConstraints.h"
30 #include "antares/solver/variable/commons/join.h"
32 #include "antares/solver/variable/commons/miscGenMinusRowPSP.h"
33 #include "antares/solver/variable/commons/psp.h"
34 #include "antares/solver/variable/commons/rowBalance.h"
35 #include "antares/solver/variable/commons/solar.h"
36 #include "antares/solver/variable/commons/spatial-aggregate.h"
37 #include "antares/solver/variable/commons/wind.h"
38 #include "antares/solver/variable/economy/STSbyGroup.h"
39 #include "antares/solver/variable/economy/STStorageInjectionByCluster.h"
40 #include "antares/solver/variable/economy/STStorageLevelsByCluster.h"
41 #include "antares/solver/variable/economy/STStorageWithdrawalByCluster.h"
42 #include "antares/solver/variable/economy/avail-dispatchable-generation.h"
43 #include "antares/solver/variable/economy/balance.h"
44 #include "antares/solver/variable/economy/dispatchable-generation-margin.h"
45 #include "antares/solver/variable/economy/dispatchableGeneration.h"
46 #include "antares/solver/variable/economy/hydroCost.h"
47 #include "antares/solver/variable/economy/hydrostorage.h"
48 #include "antares/solver/variable/economy/inflow.h"
49 #include "antares/solver/variable/economy/lold.h"
50 #include "antares/solver/variable/economy/lolp.h"
51 #include "antares/solver/variable/economy/max-mrg.h"
52 #include "antares/solver/variable/economy/operatingCost.h"
53 #include "antares/solver/variable/economy/overflow.h"
54 #include "antares/solver/variable/economy/price.h"
55 #include "antares/solver/variable/economy/productionByDispatchablePlant.h"
56 #include "antares/solver/variable/economy/productionByRenewablePlant.h"
57 #include "antares/solver/variable/economy/pumping.h"
58 #include "antares/solver/variable/economy/renewableGeneration.h"
59 #include "antares/solver/variable/economy/reservoirlevel.h"
60 #include "antares/solver/variable/economy/thermalAirPollutantEmissions.h"
61 #include "antares/solver/variable/economy/unsupliedEnergy.h"
62 #include "antares/solver/variable/economy/waterValue.h"
63 #include "antares/solver/variable/setofareas.h"
64 #include "antares/solver/variable/variable.h"
65 
66 // Output variables associated to binding constraints
67 #include "antares/solver/variable//economy/bindingConstraints/bindingConstraintsMarginalCost.h"
68 
69 // By thermal plant
70 #include "antares/solver/variable/commons/compose-all.h"
71 
72 #include "../economy/profitByPlant.h"
73 
74 namespace Antares::Solver::Variable::Adequacy
75 {
79 using VariablesPerArea = Common::ComposeAll<Variable::Adequacy::OverallCost,
80  Variable::Economy::OperatingCost,
81  Variable::Economy::Price,
82  Variable::Economy::ThermalAirPollutantEmissions,
83  Variable::Economy::ProductionByDispatchablePlant,
84  Variable::Economy::ProductionByRenewablePlant,
85  Variable::Economy::Balance,
86  Variable::Economy::RowBalance,
87  Variable::Economy::PSP,
88  Variable::Economy::MiscGenMinusRowPSP,
89  Variable::Economy::TimeSeriesValuesLoad,
90  Variable::Economy::TimeSeriesValuesHydro,
91  Variable::Economy::TimeSeriesValuesWind,
92  Variable::Economy::TimeSeriesValuesSolar,
93  Variable::Economy::DispatchableGeneration,
94  Variable::Economy::RenewableGeneration,
95  Variable::Economy::HydroStorage,
96  Variable::Economy::Pumping,
97  Variable::Economy::ReservoirLevel,
98  Variable::Economy::Inflows,
99  Variable::Economy::Overflows,
100  Variable::Economy::WaterValue,
101  Variable::Economy::HydroCost,
102  Variable::Economy::STSbyGroup,
103  Variable::Economy::STstorageInjectionByCluster,
104  Variable::Economy::STstorageWithdrawalByCluster,
105  Variable::Economy::STstorageLevelsByCluster,
106  Variable::Economy::UnsupliedEnergy,
107  Variable::Adequacy::SpilledEnergy,
108  Variable::Economy::LOLD,
109  Variable::Economy::LOLP,
110  Variable::Economy::AvailableDispatchGen,
111  Variable::Economy::DispatchableGenMargin,
112  Variable::Economy::Marge,
113  Variable::Economy::ProfitByPlant,
114  Variable::Adequacy::Links>::type;
115 
119 using VariablesPerSetOfAreas = Common::SpatialAggregateAll<
120  Variable::Adequacy::OverallCost,
121  Variable::Economy::OperatingCost,
122  Variable::Economy::Price,
123  Variable::Economy::ThermalAirPollutantEmissions,
124  Variable::Economy::Balance,
125  Variable::Economy::RowBalance,
126  Variable::Economy::PSP,
127  Variable::Economy::MiscGenMinusRowPSP,
128  Variable::Economy::TimeSeriesValuesLoad,
129  Variable::Economy::TimeSeriesValuesHydro,
130  Variable::Economy::TimeSeriesValuesWind,
131  Variable::Economy::TimeSeriesValuesSolar,
132  Variable::Economy::HydroStorage,
133  Variable::Economy::Pumping,
134  Variable::Economy::ReservoirLevel,
135  Variable::Economy::Inflows,
136  Variable::Economy::Overflows,
137  Variable::Economy::WaterValue,
138  Variable::Economy::HydroCost,
139  Variable::Economy::UnsupliedEnergy,
140  Variable::Adequacy::SpilledEnergy,
141  Variable::Economy::LOLD,
142  Variable::Economy::LOLP,
143  Variable::Economy::AvailableDispatchGen,
144  Variable::Economy::DispatchableGenMargin,
145  Variable::Economy::Marge>::type;
146 
147 typedef Variable::Economy::BindingConstMarginCost< // Marginal cost for a binding constraint
148  Container::EndOfList // End of variable list
149  >
150 
151  VariablesPerBindingConstraints;
152 
153 typedef Variable::Join<
154  // Variables for each area / links attached to the areas
155  Variable::Areas<VariablesPerArea>,
156  // Variables for each set of areas
157  Variable::Join<Variable::SetsOfAreas<VariablesPerSetOfAreas>,
158  // Variables for each binding constraint
159  Variable::BindingConstraints<VariablesPerBindingConstraints>>>
160  ItemList;
161 
165 typedef Container::List<ItemList> AllVariables;
166 
167 } // namespace Antares::Solver::Variable::Adequacy
168 
169 #endif // __SOLVER_VARIABLE_ADEQUACY_ALL_H__
Hydro ROR (Run-of-River) time series variables for hydroelectric power.
Load time series variables for electrical demand modeling This file implements load (electrical deman...