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 #pragma once
22 
23 #include <antares/solver/variable/commons/spatial-aggregate.h>
24 #include "antares/solver/variable/economy/STStorageInjectionByCluster.h"
25 #include "antares/solver/variable/variable.h"
26 
27 #include "../area.h"
28 #include "../bindConstraints.h"
29 #include "../commons/compose-all.h"
30 #include "../commons/hydro.h"
31 #include "../commons/join.h"
32 #include "../commons/load.h"
33 #include "../commons/miscGenMinusRowPSP.h"
34 #include "../commons/psp.h"
35 #include "../commons/rowBalance.h"
36 #include "../commons/solar.h"
37 #include "../commons/wind.h"
38 #include "../setofareas.h"
39 #include "STSbyGroup.h"
40 #include "STStorageCashFlowByCluster.h"
41 #include "STStorageLevelsByCluster.h"
42 #include "STStorageWithdrawalByCluster.h"
43 #include "avail-dispatchable-generation.h"
44 #include "balance.h"
45 #include "bindingConstraints/bindingConstraintsMarginalCost.h"
46 #include "dispatchableGeneration.h"
47 #include "domesticUnsuppliedEnergy.h"
48 #include "dtgMarginAfterCsr.h"
49 #include "hydroCost.h"
50 #include "hydrostorage.h"
51 #include "inflow.h"
52 #include "links.h"
53 #include "localMatchingRuleViolations.h"
54 #include "lold.h"
55 #include "loldCsr.h"
56 #include "lolp.h"
57 #include "lolpCsr.h"
58 #include "max-mrg-csr.h"
59 #include "max-mrg.h"
60 #include "minDispatchableGenByPlant.h"
61 #include "nbOfDispatchedUnits.h"
62 #include "nbOfDispatchedUnitsByPlant.h"
63 #include "nearPriceCap.h"
64 #include "nonProportionalCost.h"
65 #include "npCostByDispatchablePlant.h"
66 #include "operatingCost.h"
67 #include "overallCost.h"
68 #include "overallCostCsr.h"
69 #include "overflow.h"
70 #include "price.h"
71 #include "priceCSR.h"
72 #include "productionByDispatchablePlant.h"
73 #include "productionByRenewablePlant.h"
74 #include "profitByPlant.h"
75 #include "pumping.h"
76 #include "renewableGeneration.h"
77 #include "reservoirlevel.h"
78 #include "spilledEnergy.h"
79 #include "thermalAirPollutantEmissions.h"
80 #include "unsupliedEnergy.h"
81 #include "unsupliedEnergyCsr.h"
82 #include "waterValue.h"
83 
84 namespace Antares::Solver::Variable::Economy
85 {
86 
90 using VariablesPerArea = Common::ComposeAll<OverallCost,
91  OverallCostCsr,
92  OperatingCost,
93  Price,
94  PriceCSR,
95  ThermalAirPollutantEmissions,
96  ProductionByDispatchablePlant,
97  MinDispatchableGenByPlant,
98  ProductionByRenewablePlant,
99  Balance,
100  RowBalance,
101  PSP,
102  MiscGenMinusRowPSP,
103  TimeSeriesValuesLoad,
104  TimeSeriesValuesHydro,
107  DispatchableGeneration,
108  RenewableGeneration,
109  HydroStorage,
110  Pumping,
111  ReservoirLevel,
112  Inflows,
113  Overflows,
114  WaterValue,
115  HydroCost,
116  STSbyGroup,
117  STstorageInjectionByCluster,
118  STstorageWithdrawalByCluster,
119  STstorageLevelsByCluster,
120  STstorageCashFlowByCluster,
121  UnsupliedEnergy,
122  UnsupliedEnergyCSR,
123  DomesticUnsuppliedEnergy,
124  LMRViolations,
125  SpilledEnergy,
126  LOLD,
127  LOLD_CSR,
128  LOLP,
129  NearPriceCap,
130  LOLP_CSR,
131  AvailableDispatchGen,
132  DispatchableGenMargin,
133  DtgMarginCsr,
134  Marge,
135  MaxMrgCsr,
136  NonProportionalCost,
137  NonProportionalCostByDispatchablePlant,
138  NbOfDispatchedUnits,
139  NbOfDispatchedUnitsByPlant,
140  ProfitByPlant,
141  Links>::type;
142 
145 using VariablesPerSetOfAreas = Common::SpatialAggregateAll<OverallCost,
146  OperatingCost,
147  Price,
148  ThermalAirPollutantEmissions,
149  Balance,
150  RowBalance,
151  PSP,
152  MiscGenMinusRowPSP,
153  TimeSeriesValuesLoad,
154  TimeSeriesValuesHydro,
157  HydroStorage,
158  Pumping,
159  ReservoirLevel,
160  Inflows,
161  Overflows,
162  WaterValue,
163  HydroCost,
164  UnsupliedEnergy,
165  DomesticUnsuppliedEnergy,
166  LMRViolations,
167  SpilledEnergy,
168  LOLD,
169  LOLP,
170  NearPriceCap,
171  AvailableDispatchGen,
172  DispatchableGenMargin,
173  DtgMarginCsr,
174  Marge,
175  NonProportionalCost,
176  NbOfDispatchedUnits>::type;
177 
178 typedef BindingConstMarginCost< // Marginal cost for a binding constraint
179  Container::EndOfList // End of variable list
180  >
181 
182  VariablesPerBindingConstraints;
183 
184 typedef Variable::Join<
185  // Variables for each area / links attached to the areas
186  Variable::Areas<VariablesPerArea>,
187  // Variables for each set of areas
188  Variable::Join<Variable::SetsOfAreas<VariablesPerSetOfAreas>,
189  // Variables for each binding constraint
190  Variable::BindingConstraints<VariablesPerBindingConstraints>>>
191  ItemList;
192 
196 typedef Container::List<ItemList> AllVariables;
197 
198 } // namespace Antares::Solver::Variable::Economy
TimeSeriesValuesGenerationImpl< WindTraits, NextT > TimeSeriesValuesWind
Wind generation time series variable.
Definition: generation.h:384
TimeSeriesValuesGenerationImpl< SolarTraits, NextT > TimeSeriesValuesSolar
Solar generation time series variable.
Definition: generation.h:362