21 #ifndef __ANTARES_LIBS_STUDY_FWD_H__
22 #define __ANTARES_LIBS_STUDY_FWD_H__
27 #include <yuni/yuni.h>
28 #include <yuni/core/string.h>
30 #include "antares/antares/constants.h"
31 #include "antares/enums/Enum.hpp"
41 class StudyLoadOptions;
47 class RenewableCluster;
53 class BindingConstraint;
54 class BindingConstraintsRepository;
56 class StudyRuntimeInfos;
63 using AreaName = Yuni::CString<ant_k_area_name_max_length, false>;
65 using AreaLinkName = Yuni::CString<ant_k_area_name_max_length * 2 + 1, false>;
67 using ConstraintName = Yuni::CString<ant_k_constraint_name_max_length, false>;
69 using RulesScenarioName = Yuni::CString<64, false>;
72 using AreaNameMapping = std::map<AreaName, AreaName>;
81 stErrHourOutOfBounds = 1,
83 stErrFinalHourMustBeAMultipleOf168,
85 stErrInvalidDayOfWeek,
89 stErrTooMuchInterconnections,
91 stErrTooMuchBindingConstraints,
98 enum class SimulationMode
113 enum SimplexOptimization
124 enum class GlobalTransmissionCapacities
127 localValuesForAllLinks = 0,
134 nullForPhysicalLinks,
137 infiniteForPhysicalLinks
140 std::string GlobalTransmissionCapacitiesToString(
141 GlobalTransmissionCapacities transmissionCapacities);
142 std::string GlobalTransmissionCapacitiesToString_Display(
143 GlobalTransmissionCapacities transmissionCapacities);
144 bool stringToGlobalTransmissionCapacities(
const AnyString& value,
145 GlobalTransmissionCapacities& out);
150 enum class LocalTransmissionCapacities
157 std::string transmissionCapacitiesToString(
const LocalTransmissionCapacities& tc);
177 std::string assetTypeToString(
const AssetType& assetType);
195 std::string styleToString(
const StyleType& style);
197 enum TimeSeriesType :
unsigned int
200 timeSeriesLoad = 1u << 0,
202 timeSeriesHydro = 1u << 1,
204 timeSeriesWind = 1u << 2,
206 timeSeriesThermal = 1u << 3,
208 timeSeriesSolar = 1u << 4,
210 timeSeriesRenewable = 1u << 5,
212 timeSeriesTransmissionCapacities = 1u << 6,
214 timeSeriesShortTermInflows = 1u << 7,
216 timeSeriesShortTermAdditionalConstraints = 1u << 8,
223 constexpr
unsigned int allTimeSeriesMask =
static_cast<unsigned int>(timeSeriesLoad)
224 |
static_cast<unsigned int>(timeSeriesHydro)
225 |
static_cast<unsigned int>(timeSeriesWind)
226 |
static_cast<unsigned int>(timeSeriesThermal)
227 |
static_cast<unsigned int>(timeSeriesSolar)
228 |
static_cast<unsigned int>(timeSeriesRenewable)
229 |
static_cast<unsigned int>(
230 timeSeriesTransmissionCapacities)
231 |
static_cast<unsigned int>(timeSeriesShortTermInflows)
232 |
static_cast<unsigned int>(
233 timeSeriesShortTermAdditionalConstraints);
239 constexpr
unsigned int timeSeriesCount = std::popcount(allTimeSeriesMask);
241 template<
unsigned int T>
242 requires(T > 0 && (T & (T - 1)) == 0)
243 struct TimeSeriesBitPatternIntoIndex
245 static constexpr
int value = std::countr_zero(T);
254 static const char* Value()
263 static const char* Value()
272 static const char* Value()
281 static const char* Value()
290 static const char* Value()
299 static const char* Value()
318 seedTimeseriesNumbers,
320 seedUnsuppliedEnergyCosts,
322 seedSpilledEnergyCosts,
334 constexpr
unsigned antaresSeedDefaultValue = 5489;
336 constexpr
unsigned antaresSeedIncrement = 1000000;
341 const char* SeedToCString(SeedIndex seed);
348 const char* SeedToID(SeedIndex seed);
351 enum HydroHeuristicPolicy
353 hhpAccommodateRuleCurves = 0,
354 hhpMaximizeGeneration,
358 HydroHeuristicPolicy StringToHydroHeuristicPolicy(
const AnyString& text);
360 const char* HydroHeuristicPolicyToCString(HydroHeuristicPolicy hhPolicy);
363 enum HydroPricingMode
373 const char* HydroPricingModeToCString(HydroPricingMode hpm);
378 HydroPricingMode StringToHydroPricingMode(
const AnyString& text);
381 enum PowerFluctuations
383 lssFreeModulations = 0,
385 lssMinimizeExcursions,
392 const char* PowerFluctuationsToCString(PowerFluctuations fluctuations);
397 PowerFluctuations StringToPowerFluctuations(
const AnyString& text);
402 shpAccurateShavePeaks,
410 const char* SheddingPolicyToCString(SheddingPolicy strategy);
415 SheddingPolicy StringToSheddingPolicy(
const AnyString& text);
417 enum UnitCommitmentMode
435 const char* UnitCommitmentModeToCString(UnitCommitmentMode ucommitment);
440 UnitCommitmentMode StringToUnitCommitmentMode(
const AnyString& text);
442 enum NumberOfCoresMode
455 const char* NumberOfCoresModeToCString(NumberOfCoresMode ncores);
460 NumberOfCoresMode StringToNumberOfCoresMode(
const AnyString& text);
465 enum RenewableGenerationModelling
475 const char* RenewableGenerationModellingToCString(RenewableGenerationModelling rgModelling);
480 RenewableGenerationModelling StringToRenewableGenerationModelling(
const AnyString& text);
485 enum class mpsExportStatus : int
488 EXPORT_FIRST_OPTIM = 1,
489 EXPORT_SECOND_OPTIM = 2,
490 EXPORT_BOTH_OPTIMS = 3,
494 std::string mpsExportStatusToString(
const mpsExportStatus& mps_export_status);
495 mpsExportStatus stringToMPSexportStatus(
const AnyString& value);
499 namespace Antares::Data::ScenarioBuilder
507 namespace Benchmarking
509 class DurationCollector;