42 std::vector<int> NumeroDeVariableDeLInterconnexion;
43 std::vector<int> NumeroDeVariableCoutOrigineVersExtremiteDeLInterconnexion;
44 std::vector<int> NumeroDeVariableCoutExtremiteVersOrigineDeLInterconnexion;
46 std::vector<int> NumeroDeVariableDuPalierThermique;
48 std::vector<int> NumeroDeVariablesDeLaProdHyd;
50 std::vector<int> NumeroDeVariablesDePompage;
51 std::vector<int> NumeroDeVariablesDeNiveau;
52 std::vector<int> NumeroDeVariablesDeDebordement;
54 std::vector<int> NumeroDeVariableDefaillancePositive;
56 std::vector<int> NumeroDeVariableDefaillanceNegative;
58 std::vector<int> NumeroDeVariablesVariationHydALaBaisse;
60 std::vector<int> NumeroDeVariablesVariationHydALaHausse;
62 std::vector<int> NumeroDeVariableDuNombreDeGroupesEnMarcheDuPalierThermique;
63 std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiDemarrentDuPalierThermique;
64 std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiSArretentDuPalierThermique;
65 std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiTombentEnPanneDuPalierThermique;
69 std::vector<int> InjectionVariable;
70 std::vector<int> WithdrawalVariable;
71 std::vector<int> LevelVariable;
72 std::vector<int> CostVariationInjection;
73 std::vector<int> CostVariationWithdrawal;
74 } SIM_ShortTermStorage;
290 std::vector<double> MinEnergieHydrauParIntervalleOptimise;
291 std::vector<double> MaxEnergieHydrauParIntervalleOptimise;
293 std::vector<double> CntEnergieH2OParIntervalleOptimise;
294 std::vector<double> CntEnergieH2OParJour;
296 std::vector<double> ContrainteDePmaxHydrauliqueHoraire;
297 std::vector<double> ContrainteDePmaxHydrauliqueHoraireRef;
299 std::vector<double> MaxEnergiePompageParIntervalleOptimise;
300 std::vector<double> ContrainteDePmaxPompageHoraire;
302 double MaxDesPmaxHydrauliques;
304 bool PresenceDePompageModulable;
305 bool PresenceDHydrauliqueModulable;
307 double PenalisationDeLaVariationDeProductionHydrauliqueSurSommeDesVariations;
308 double PenalisationDeLaVariationDeProductionHydrauliqueSurVariationMax;
310 double WeeklyWaterValueStateRegular;
312 bool TurbinageEntreBornes;
313 bool SansHeuristique;
314 bool SuiviNiveauHoraire;
316 std::vector<double> NiveauHoraireSup;
317 std::vector<double> NiveauHoraireInf;
319 std::vector<double> ApportNaturelHoraire;
320 std::vector<double> MingenHoraire;
321 double NiveauInitialReservoir;
322 double TailleReservoir;
325 double WeeklyGeneratingModulation;
326 double WeeklyPumpingModulation;
327 bool DirectLevelAccess;
328 bool AccurateWaterValue;
329 double LevelForTimeInterval;
330 std::vector<double> WaterLayerValues;
332 std::vector<double> InflowForTimeInterval;
404 uint32_t weekInTheYear = 0;
408 bool OptimisationAuPasHebdomadaire =
false;
409 char TypeDeLissageHydraulique = PAS_DE_LISSAGE_HYDRAULIQUE;
410 bool WaterValueAccurate =
false;
411 bool OptimisationAvecCoutsDeDemarrage =
false;
412 bool OptimisationAvecVariablesEntieres =
false;
413 uint32_t NombreDePays = 0;
414 std::vector<const char*> NomsDesPays;
415 uint32_t NombreDePaliersThermiques = 0;
417 uint32_t NombreDInterconnexions = 0;
418 std::vector<int> PaysOrigineDeLInterconnexion;
419 std::vector<int> PaysExtremiteDeLInterconnexion;
420 std::vector<COUTS_DE_TRANSPORT> CoutDeTransport;
422 std::vector<VALEURS_DE_NTC_ET_RESISTANCES> ValeursDeNTC;
424 uint32_t NombreDePasDeTemps = 0;
425 std::vector<int32_t> NumeroDeJourDuPasDeTemps;
428 int32_t NombreDePasDeTempsPourUneOptimisation = 0;
429 std::vector<int32_t> NumeroDIntervalleOptimiseDuPasDeTemps;
430 uint32_t NombreDeJours = 0;
433 int32_t NombreDePasDeTempsDUneJournee = 0;
435 std::vector<CONSOMMATIONS_ABATTUES> ConsommationsAbattues;
437 std::vector<double> CoutDeDefaillancePositive;
438 std::vector<double> CoutDeDefaillanceNegative;
440 std::vector<double> CoutDeDebordement;
442 std::vector<PALIERS_THERMIQUES> PaliersThermiquesDuPays;
443 std::vector<ENERGIES_ET_PUISSANCES_HYDRAULIQUES> CaracteristiquesHydrauliques;
445 uint32_t NumberOfShortTermStorages = 0;
447 std::vector<::ShortTermStorage::AREA_INPUT> ShortTermStorage;
450 std::vector<bool> DefaillanceNegativeUtiliserPMinThermique;
451 std::vector<bool> DefaillanceNegativeUtiliserHydro;
452 std::vector<bool> DefaillanceNegativeUtiliserConsoAbattue;
454 char TypeDOptimisation = OPTIMISATION_LINEAIRE;
456 std::vector<std::vector<double>> BruitSurCoutHydraulique;
458 uint32_t NombreDeContraintesCouplantes = 0;
459 std::vector<CONTRAINTES_COUPLANTES> MatriceDesContraintesCouplantes;
460 std::unordered_map<std::shared_ptr<Data::BindingConstraint>, std::vector<double>>
461 ResultatsContraintesCouplantes;
463 std::vector<SOLDE_MOYEN_DES_ECHANGES> SoldeMoyenHoraire;
465 bool ReinitOptimisation =
false;
467 Data::mpsExportStatus ExportMPS = Data::mpsExportStatus::NO_EXPORT;
468 bool exportMPSOnError =
false;
469 bool ExportStructure =
false;
470 bool NamedProblems =
false;
471 bool exportSolutions =
false;
473 uint32_t HeureDansLAnnee = 0;
474 bool LeProblemeADejaEteInstancie =
false;
475 bool firstWeekOfSimulation =
false;
477 std::vector<CORRESPONDANCES_DES_VARIABLES> CorrespondanceVarNativesVarOptim;
478 std::vector<CORRESPONDANCES_DES_CONTRAINTES> CorrespondanceCntNativesCntOptim;
479 std::vector<CORRESPONDANCES_DES_CONTRAINTES_JOURNALIERES>
480 CorrespondanceCntNativesCntOptimJournalieres;
483 std::vector<RESERVE_JMOINS1> ReserveJMoins1;
485 std::vector<int> IndexDebutIntercoOrigine;
486 std::vector<int> IndexSuivantIntercoOrigine;
487 std::vector<int> IndexDebutIntercoExtremite;
488 std::vector<int> IndexSuivantIntercoExtremite;
490 bool Expansion =
false;
492 std::vector<int> NumeroDeContrainteEnergieHydraulique;
493 std::vector<int> NumeroDeContrainteMinEnergieHydraulique;
494 std::vector<int> NumeroDeContrainteMaxEnergieHydraulique;
495 std::vector<int> NumeroDeContrainteMaxPompage;
496 std::vector<int> NumeroDeContrainteDeSoldeDEchange;
498 std::vector<int> NumeroDeContrainteEquivalenceStockFinal;
499 std::vector<int> NumeroDeContrainteExpressionStockFinal;
501 std::vector<int> NumeroDeVariableStockFinal;
502 std::vector<std::vector<int>> NumeroDeVariableDeTrancheDeStock;
504 bool YaDeLaReserveJmoins1 =
false;
506 std::vector<ALL_MUST_RUN_GENERATION> AllMustRunGeneration;
511 std::shared_ptr<AdequacyPatchRuntimeData> adequacyPatchRuntimeData;
514 std::vector<double> CoefficientEcretementPMaxHydraulique;
515 std::vector<double> previousSimulationFinalLevel;
518 std::vector<RESULTATS_HORAIRES> ResultatsHoraires;
519 std::vector<VARIABLES_DUALES_INTERCONNEXIONS> VariablesDualesDesContraintesDeNTC;
521 std::vector<double> coutOptimalSolution1;
522 std::vector<double> coutOptimalSolution2;
524 TIME_MEASURES timeMeasure;
528 char SecondeOptimisationRelaxee;
529 char MarketPoolActivated;
530 char FlexUpPoolActivated;
531 char FlexDownPoolActivated;
532 char ImpressionDuCritere;
533 char UnitCommitmentExact;
534 char BorneDeLaDefaillancePositive;
536 int NumberOfMarketOfferPool;
537 int NumberOfMarketDemandPool;
538 int NumberOfFlexUpOfferPool;
539 int NumberOfFlexUpDemandPool;
540 int NumberOfFlexDownOfferPool;
541 int NumberOfFlexDownDemandPool;
543 int** IsInMarketOfferPool;
544 int** IsInMarketDemandPool;
545 int** IsInFlexUpOfferPool;
546 int** IsInFlexUpDemandPool;
547 int** IsInFlexDownOfferPool;
548 int** IsInFlexDownDemandPool;
550 int NumberOfMarketEdge;
551 int* OfferPoolOfMarketEdge;
552 int* DemandPoolOfMarketEdge;
554 int* IndexFirstMarketEdgeOffer;
555 int* IndexNextMarketEdgeOffer;
556 int* IndexFirstMarketEdgeDemand;
557 int* IndexNextMarketEdgeDemand;
559 int NumberOfFlexUpEdge;
560 int* OfferPoolOfFlexUpEdge;
561 int* DemandPoolOfFlexUpEdge;
563 int* IndexFirstFlexUpEdgeOffer;
564 int* IndexNextFlexUpEdgeOffer;
565 int* IndexFirstFlexUpEdgeDemand;
566 int* IndexNextFlexUpEdgeDemand;
568 int NumberOfFlexDownEdge;
569 int* OfferPoolOfFlexDownEdge;
570 int* DemandPoolOfFlexDownEdge;
572 int* IndexFirstFlexDownEdgeOffer;
573 int* IndexNextFlexDownEdgeOffer;
574 int* IndexFirstFlexDownEdgeDemand;
575 int* IndexNextFlexDownEdgeDemand;
577 double** MarketPoolQuota;
579 double** FlexUpPoolQuota;
581 double** FlexDownPoolQuota;
595 int* MarketOfferPoolOfNode;
596 int* MarketDemandPoolOfNode;
597 int* FlexUpOfferPoolOfNode;
598 int* FlexUpDemandPoolOfNode;
599 int* FlexDownOfferPoolOfNode;
600 int* FlexDownDemandPoolOfNode;
605 std::vector<int> NbGrpCourbeGuide;
606 std::vector<int> NbGrpOpt;
608 std::unique_ptr<PROBLEME_ANTARES_A_RESOUDRE> ProblemeAResoudre;
610 double maxPminThermiqueByDay[366];