Antares Simulator
Power System Simulator
sim_structure_probleme_economique.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 
22 #ifndef __SOLVER_SIMULATION_ECO_STRUCTS_H__
23 #define __SOLVER_SIMULATION_ECO_STRUCTS_H__
24 
25 #include <memory>
26 #include <vector>
27 
28 #include "antares/solver/optimisation/opt_constants.h"
29 #include "antares/solver/optimisation/opt_structure_probleme_a_resoudre.h"
30 #include "antares/solver/utils/optimization_statistics.h"
31 #include "antares/study/fwd.h"
32 #include "antares/study/study.h"
33 
35 
37 {
38  // Avoid accidental copies
42 
43  std::vector<int> NumeroDeVariableDeLInterconnexion;
44  std::vector<int> NumeroDeVariableCoutOrigineVersExtremiteDeLInterconnexion;
45  std::vector<int> NumeroDeVariableCoutExtremiteVersOrigineDeLInterconnexion;
46 
47  std::vector<int> NumeroDeVariableDuPalierThermique;
48 
49  std::vector<int> NumeroDeVariablesDeLaProdHyd;
50 
51  std::vector<int> NumeroDeVariablesDePompage;
52  std::vector<int> NumeroDeVariablesDeNiveau;
53  std::vector<int> NumeroDeVariablesDeDebordement;
54 
55  std::vector<int> NumeroDeVariableDefaillancePositive;
56 
57  std::vector<int> NumeroDeVariableDefaillanceNegative;
58 
59  std::vector<int> NumeroDeVariablesVariationHydALaBaisse;
60 
61  std::vector<int> NumeroDeVariablesVariationHydALaHausse;
62 
63  std::vector<int> NumeroDeVariableDuNombreDeGroupesEnMarcheDuPalierThermique;
64  std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiDemarrentDuPalierThermique;
65  std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiSArretentDuPalierThermique;
66  std::vector<int> NumeroDeVariableDuNombreDeGroupesQuiTombentEnPanneDuPalierThermique;
67 
68  struct
69  {
70  std::vector<int> InjectionVariable;
71  std::vector<int> WithdrawalVariable;
72  std::vector<int> LevelVariable;
73  std::vector<int> CostVariationInjection;
74  std::vector<int> CostVariationWithdrawal;
75  std::vector<int> OverflowVariable;
76  } SIM_ShortTermStorage;
77 };
78 
80 {
81  // Avoid accidental copies
85 
86  std::vector<int> NumeroDeContrainteDesBilansPays;
87  std::vector<int> NumeroDeContraintePourEviterLesChargesFictives;
88 
89  std::vector<int> NumeroPremiereContrainteDeReserveParZone;
90  std::vector<int> NumeroDeuxiemeContrainteDeReserveParZone;
91 
92  std::vector<int> NumeroDeContrainteDeDissociationDeFlux;
93  std::vector<int> NumeroDeContrainteDesContraintesCouplantes;
94 
95  std::vector<int> NumeroDeContrainteDesContraintesDeDureeMinDeMarche;
96  std::vector<int> NumeroDeContrainteDesContraintesDeDureeMinDArret;
97  std::vector<int> NumeroDeLaDeuxiemeContrainteDesContraintesDesGroupesQuiTombentEnPanne;
98 
99  std::vector<int> NumeroDeContrainteDesNiveauxPays;
100 
101  std::vector<int> ShortTermStorageLevelConstraint;
106 };
107 
109 {
110  std::vector<int> NumeroDeContrainteDesContraintesCouplantes;
111 };
112 
114 {
115  std::vector<int> NumeroDeContrainteDesContraintesCouplantes;
116  std::vector<int> ShortTermStorageCumulation;
117 };
118 
120 {
121  std::vector<double> ValeurDeNTCOrigineVersExtremite;
122  std::vector<double> ValeurDeNTCExtremiteVersOrigine;
123  std::vector<double> ValeurDeLoopFlowOrigineVersExtremite;
124  std::vector<double> ValeurDuFlux;
125 
126  std::vector<double> ResistanceApparente;
127 };
128 
130 {
131  double* TransferBoundMarketEdge;
132  double* TransferLevelMarketEdge;
133 };
134 
136 {
137  double* TransferBoundFlexUpEdge;
138  double* TransferLevelFlexUpEdge;
139 };
140 
142 {
143  double* TransferBoundFlexDownEdge;
144  double* TransferLevelFlexDownEdge;
145 };
146 
148 {
149  char TypeDeContrainteCouplante;
150  char SensDeLaContrainteCouplante;
151 
152  std::vector<double> SecondMembreDeLaContrainteCouplante;
153 
154  int NombreDInterconnexionsDansLaContrainteCouplante;
155 
156  std::vector<double> PoidsDeLInterconnexion;
157  std::vector<int> NumeroDeLInterconnexion;
158  std::vector<int> OffsetTemporelSurLInterco;
159 
160  int NombreDePaliersDispatchDansLaContrainteCouplante;
161 
162  std::vector<double> PoidsDuPalierDispatch;
163  std::vector<int> PaysDuPalierDispatch;
164  std::vector<int> NumeroDuPalierDispatch;
165  std::vector<int> OffsetTemporelSurLePalierDispatch;
166 
167  const char* NomDeLaContrainteCouplante;
168 
169  std::shared_ptr<Antares::Data::BindingConstraint> bindingConstraint;
170 };
171 
173 {
174  double reservoirCapacity;
175  double injectionNominalCapacity;
176  double withdrawalNominalCapacity;
177  double injectionEfficiency;
178  double withdrawalEfficiency;
179  double initialLevel;
180  bool initialLevelOptim;
181  bool penalizeVariationWithdrawal;
182  bool penalizeVariationInjection;
183  bool allowOverflow{false};
184  double overflowCost{0.0};
185 
186  std::shared_ptr<Antares::Data::ShortTermStorage::Series> series;
187  std::vector<std::shared_ptr<Antares::Data::ShortTermStorage::AdditionalConstraints>>
188  additionalConstraints;
189  int clusterGlobalIndex;
190  std::string name;
191 };
192 
193 using AREA_INPUT = std::vector<PROPERTIES>; // index is local
194 
195 struct RESULTS
196 {
197  // Index is the number of the STS in the area
198  std::vector<double> level; // MWh
199  std::vector<double> injection; // MWh
200  std::vector<double> withdrawal; // MWh
201 };
202 
204 {
205  double* TotalDemandOfMarketPool;
206 };
207 
209 {
210  double* FosteredDemandOfFlexUpPool;
211 };
212 
214 {
215  double* FosteredDemandOfFlexDownPool;
216 };
217 
219 {
220  double* BoundFlexUpNode;
221 };
222 
224 {
225  double* BoundFlexDownNode;
226 };
227 
229 {
230  double* LevelFlexUpNode;
231 };
232 
234 {
235  double* LevelFlexDownNode;
236 };
237 
239 {
240  std::vector<double> ConsommationAbattueDuPays;
241 };
242 
244 {
245  std::vector<double> AllMustRunGenerationOfArea;
246 };
247 
249 {
250  std::vector<double> SoldeMoyenDuPays;
251 };
252 
254 {
255  std::vector<double> PuissanceDisponibleDuPalierThermique;
256  std::vector<double> PuissanceDisponibleDuPalierThermiqueRef;
257 
258  std::vector<double> PuissanceMinDuPalierThermique;
259  std::vector<double> PuissanceMinDuPalierThermiqueRef;
260 
261  std::vector<double> CoutHoraireDeProductionDuPalierThermique;
262 
263  std::vector<int> NombreMaxDeGroupesEnMarcheDuPalierThermique;
264  std::vector<int> NombreMinDeGroupesEnMarcheDuPalierThermique;
265 };
266 
268 {
269  int NombreDePaliersThermiques;
270 
271  std::vector<int> minUpDownTime;
272 
273  std::vector<double> TailleUnitaireDUnGroupeDuPalierThermique;
274  std::vector<double> PminDuPalierThermiquePendantUneHeure;
275  std::vector<double> PminDuPalierThermiquePendantUnJour;
276  std::vector<int> NumeroDuPalierDansLEnsembleDesPaliersThermiques;
277  std::vector<PDISP_ET_COUTS_HORAIRES_PAR_PALIER> PuissanceDisponibleEtCout;
278 
279  std::vector<double> CoutDeDemarrageDUnGroupeDuPalierThermique;
280  std::vector<double> CoutDArretDUnGroupeDuPalierThermique;
281  std::vector<double> CoutFixeDeMarcheDUnGroupeDuPalierThermique;
282  std::vector<double> pminDUnGroupeDuPalierThermique;
283  std::vector<double> PmaxDUnGroupeDuPalierThermique;
284  std::vector<int> DureeMinimaleDeMarcheDUnGroupeDuPalierThermique;
285  std::vector<int> DureeMinimaleDArretDUnGroupeDuPalierThermique;
286  std::vector<std::string> NomsDesPaliersThermiques;
287 };
288 
290 {
291  std::vector<double> MinEnergieHydrauParIntervalleOptimise;
292  std::vector<double> MaxEnergieHydrauParIntervalleOptimise;
293 
294  std::vector<double> CntEnergieH2OParIntervalleOptimise;
295  std::vector<double> CntEnergieH2OParJour;
296 
297  std::vector<double> ContrainteDePmaxHydrauliqueHoraire;
298  std::vector<double> ContrainteDePmaxHydrauliqueHoraireRef;
299 
300  std::vector<double> MaxEnergiePompageParIntervalleOptimise;
301  std::vector<double> ContrainteDePmaxPompageHoraire;
302 
303  double MaxDesPmaxHydrauliques;
304 
305  bool PresenceDePompageModulable;
306  bool PresenceDHydrauliqueModulable;
307 
308  double PenalisationDeLaVariationDeProductionHydrauliqueSurSommeDesVariations;
309  double PenalisationDeLaVariationDeProductionHydrauliqueSurVariationMax;
310 
311  double WeeklyWaterValueStateRegular;
312 
313  bool TurbinageEntreBornes;
314  bool SansHeuristique;
315  bool SuiviNiveauHoraire;
316 
317  std::vector<double> NiveauHoraireSup;
318  std::vector<double> NiveauHoraireInf;
319 
320  std::vector<double> ApportNaturelHoraire;
321  std::vector<double> MingenHoraire; /*Minimum Hourly Hydro-Storage Generation*/
322  double NiveauInitialReservoir;
323  double TailleReservoir;
324  double PumpingRatio;
325 
326  double WeeklyGeneratingModulation;
327  double WeeklyPumpingModulation;
328  bool DirectLevelAccess; /* determines the type of constraints bearing on the final stok level*/
329  bool AccurateWaterValue; /* determines the type of modelling used for water budget*/
330  std::vector<double> WaterLayerValues; /* reference costs for the last time step (caution :
331  dimension set to 100, should be made dynamic)*/
332  std::vector<double> InflowForTimeInterval; /* Energy input to the reservoir, used to in the
333  bounding constraint on final level*/
334 };
335 
337 {
338  std::vector<double> ReserveHoraireJMoins1;
339 };
340 
342 {
343  std::vector<double> ProductionThermiqueDuPalier;
344 
345  std::vector<double> NombreDeGroupesEnMarcheDuPalier;
346  std::vector<double> NombreDeGroupesQuiDemarrentDuPalier;
347 
348  std::vector<double> NombreDeGroupesQuiSArretentDuPalier;
349 
350  std::vector<double> NombreDeGroupesQuiTombentEnPanneDuPalier;
351 };
352 
354 {
355  std::vector<double> ValeursHorairesDeDefaillancePositive;
356  std::vector<double> ValeursHorairesDeDefaillancePositiveCSR;
357  std::vector<double> ValeursHorairesDENS; // adq patch domestic unsupplied energy
358  std::vector<int> ValeursHorairesLmrViolations; // adq patch lmr violations
359  std::vector<double> ValeursHorairesDtgMrgCsr; // adq patch DTG MRG after CSR
360 
361  std::vector<double> ValeursHorairesDeDefaillanceNegative;
362 
363  std::vector<double> PompageHoraire;
364  std::vector<double> TurbinageHoraire;
365 
366  std::vector<double> niveauxHoraires;
367  std::vector<double> valeurH2oHoraire;
368 
369  std::vector<double> debordementsHoraires;
370 
371  std::vector<double> CoutsMarginauxHoraires;
372  std::vector<double> CoutsMarginauxHorairesCSR;
373  std::vector<PRODUCTION_THERMIQUE_OPTIMALE> ProductionThermique; // index is pdtHebdo
374 
375  std::vector<::RESULTS> ShortTermStorage;
376 };
377 
379 {
380  bool IntercoGereeAvecDesCouts;
381  bool IntercoGereeAvecLoopFlow;
382  std::vector<double> CoutDeTransportOrigineVersExtremite;
383  std::vector<double> CoutDeTransportExtremiteVersOrigine;
384 
385  std::vector<double> CoutDeTransportOrigineVersExtremiteRef;
386  std::vector<double> CoutDeTransportExtremiteVersOrigineRef;
387 };
388 
390 {
391  long solveTime = 0;
392  long updateTime = 0;
393 };
394 
395 using TIME_MEASURES = std::array<TIME_MEASURE, 2>;
396 
398 {
399  std::vector<double> VariableDualeParInterconnexion;
400 };
401 
403 {
404  uint32_t weekInTheYear = 0;
405  uint32_t year = 0;
406 
407  /* Business problem */
408  bool OptimisationAuPasHebdomadaire = false;
409  char TypeDeLissageHydraulique = PAS_DE_LISSAGE_HYDRAULIQUE;
410  bool OptimisationAvecCoutsDeDemarrage = false;
411  bool OptimisationAvecVariablesEntieres = false;
412  uint32_t NombreDePays = 0;
413  std::vector<const char*> NomsDesPays;
414  uint32_t NombreDePaliersThermiques = 0;
415 
416  uint32_t NombreDInterconnexions = 0;
417  std::vector<int> PaysOrigineDeLInterconnexion;
418  std::vector<int> PaysExtremiteDeLInterconnexion;
419  std::vector<COUTS_DE_TRANSPORT> CoutDeTransport;
420 
421  std::vector<VALEURS_DE_NTC_ET_RESISTANCES> ValeursDeNTC;
422 
423  uint32_t NombreDePasDeTemps = 0;
424  std::vector<int32_t> NumeroDeJourDuPasDeTemps;
425 
426  // TODO use uint32_t and figure why tests fails
427  int32_t NombreDePasDeTempsPourUneOptimisation = 0;
428  std::vector<int32_t> NumeroDIntervalleOptimiseDuPasDeTemps;
429  uint32_t NombreDeJours = 0;
430 
431  // TODO same as NombreDePasDeTemps
432  int32_t NombreDePasDeTempsDUneJournee = 0;
433 
434  std::vector<CONSOMMATIONS_ABATTUES> ConsommationsAbattues;
435 
436  std::vector<double> CoutDeDefaillancePositive;
437  std::vector<double> CoutDeDefaillanceNegative;
438 
439  std::vector<double> CoutDeDebordement;
440 
441  std::vector<PALIERS_THERMIQUES> PaliersThermiquesDuPays;
442  std::vector<ENERGIES_ET_PUISSANCES_HYDRAULIQUES> CaracteristiquesHydrauliques;
443 
444  uint32_t NumberOfShortTermStorages = 0;
445  std::vector<::AREA_INPUT> ShortTermStorage;
446 
447  /* Optimization problem */
448  std::vector<bool> DefaillanceNegativeUtiliserPMinThermique;
449  std::vector<bool> DefaillanceNegativeUtiliserHydro;
450  std::vector<bool> DefaillanceNegativeUtiliserConsoAbattue;
451 
452  std::vector<std::vector<double>> BruitSurCoutHydraulique;
453 
454  uint32_t NombreDeContraintesCouplantes = 0;
455  std::vector<CONTRAINTES_COUPLANTES> MatriceDesContraintesCouplantes;
456  std::unordered_map<std::shared_ptr<Data::BindingConstraint>, std::vector<double>>
457  ResultatsContraintesCouplantes;
458 
459  std::vector<SOLDE_MOYEN_DES_ECHANGES> SoldeMoyenHoraire; // Used for quadratic opt
460  /* Implementation details : I/O, error management, etc. */
461 
462  Data::mpsExportStatus ExportMPS = Data::mpsExportStatus::NO_EXPORT;
463  bool exportMPSOnError = false;
464  bool NamedProblems = false;
465  bool exportSolutions = false;
466 
467  uint32_t HeureDansLAnnee = 0;
468  bool LeProblemeADejaEteInstancie = false;
469 
470  std::vector<CORRESPONDANCES_DES_VARIABLES> CorrespondanceVarNativesVarOptim;
471  std::vector<CORRESPONDANCES_DES_CONTRAINTES> CorrespondanceCntNativesCntOptim;
472  std::vector<CORRESPONDANCES_DES_CONTRAINTES_JOURNALIERES>
473  CorrespondanceCntNativesCntOptimJournalieres;
474  CORRESPONDANCES_DES_CONTRAINTES_HEBDOMADAIRES CorrespondanceCntNativesCntOptimHebdomadaires;
475 
476  std::vector<RESERVE_JMOINS1> ReserveJMoins1;
477 
478  std::vector<int> IndexDebutIntercoOrigine;
479  std::vector<int> IndexSuivantIntercoOrigine;
480  std::vector<int> IndexDebutIntercoExtremite;
481  std::vector<int> IndexSuivantIntercoExtremite;
482 
483  bool Expansion = false;
484 
485  std::vector<int> NumeroDeContrainteEnergieHydraulique;
486  std::vector<int> NumeroDeContrainteMinEnergieHydraulique;
487  std::vector<int> NumeroDeContrainteMaxEnergieHydraulique;
488  std::vector<int> NumeroDeContrainteMaxPompage;
489  std::vector<int> NumeroDeContrainteDeSoldeDEchange;
490 
491  std::vector<int> NumeroDeContrainteEquivalenceStockFinal;
492  std::vector<int> NumeroDeContrainteExpressionStockFinal;
493 
494  std::vector<int> NumeroDeVariableStockFinal;
495  std::vector<std::vector<int>> NumeroDeVariableDeTrancheDeStock;
496 
497  bool YaDeLaReserveJmoins1 = false;
498 
499  std::vector<ALL_MUST_RUN_GENERATION> AllMustRunGeneration;
500 
501  OptimizationStatistics optimizationStatistics[2];
502 
503  /* Adequacy Patch */
504  std::shared_ptr<AdequacyPatchRuntimeData> adequacyPatchRuntimeData;
505 
506  /* Hydro management */
507  std::vector<double> CoefficientEcretementPMaxHydraulique;
508  std::vector<double> previousSimulationFinalLevel;
509 
510  /* Results */
511  std::vector<RESULTATS_HORAIRES> ResultatsHoraires;
512  std::vector<VARIABLES_DUALES_INTERCONNEXIONS> VariablesDualesDesContraintesDeNTC;
513 
514  std::vector<double> coutOptimalSolution1;
515  std::vector<double> coutOptimalSolution2;
516 
517  TIME_MEASURES timeMeasure;
518 
519  /* Unused for now, will be used in future revisions */
520 #if 0
521  char SecondeOptimisationRelaxee;
522  char MarketPoolActivated;
523  char FlexUpPoolActivated;
524  char FlexDownPoolActivated;
525  char ImpressionDuCritere;
526  char UnitCommitmentExact;
527  char BorneDeLaDefaillancePositive;
528 
529  int NumberOfMarketOfferPool;
530  int NumberOfMarketDemandPool;
531  int NumberOfFlexUpOfferPool;
532  int NumberOfFlexUpDemandPool;
533  int NumberOfFlexDownOfferPool;
534  int NumberOfFlexDownDemandPool;
535 
536  int** IsInMarketOfferPool;
537  int** IsInMarketDemandPool;
538  int** IsInFlexUpOfferPool;
539  int** IsInFlexUpDemandPool;
540  int** IsInFlexDownOfferPool;
541  int** IsInFlexDownDemandPool;
542 
543  int NumberOfMarketEdge;
544  int* OfferPoolOfMarketEdge;
545  int* DemandPoolOfMarketEdge;
546 
547  int* IndexFirstMarketEdgeOffer;
548  int* IndexNextMarketEdgeOffer;
549  int* IndexFirstMarketEdgeDemand;
550  int* IndexNextMarketEdgeDemand;
551 
552  int NumberOfFlexUpEdge;
553  int* OfferPoolOfFlexUpEdge;
554  int* DemandPoolOfFlexUpEdge;
555 
556  int* IndexFirstFlexUpEdgeOffer;
557  int* IndexNextFlexUpEdgeOffer;
558  int* IndexFirstFlexUpEdgeDemand;
559  int* IndexNextFlexUpEdgeDemand;
560 
561  int NumberOfFlexDownEdge;
562  int* OfferPoolOfFlexDownEdge;
563  int* DemandPoolOfFlexDownEdge;
564 
565  int* IndexFirstFlexDownEdgeOffer;
566  int* IndexNextFlexDownEdgeOffer;
567  int* IndexFirstFlexDownEdgeDemand;
568  int* IndexNextFlexDownEdgeDemand;
569 
570  double** MarketPoolQuota;
571 
572  double** FlexUpPoolQuota;
573 
574  double** FlexDownPoolQuota;
575 
576  TRANSFER_BOUND_AND_LEVEL_MARKET_EDGE** DataMarketEdges;
577  TRANSFER_BOUND_AND_LEVEL_FLEX_UP_EDGE** DataFlexUpEdges;
578  TRANSFER_BOUND_AND_LEVEL_FLEX_DOWN_EDGE** DataFlexDownEdges;
579 
580  DEMAND_MARKET_POOL** DemandMarketPool;
581  DEMAND_FLEX_UP_POOL** DemandFlexUpPool;
582  DEMAND_FLEX_DOWN_POOL** DemandFlexDownPool;
583  BOUND_FLEX_UP_NODE** BoundFlexUpNode;
584  BOUND_FLEX_DOWN_NODE** BoundFlexDownNode;
585  LEVEL_FLEX_UP_NODE** LevelFlexUpNode;
586  LEVEL_FLEX_DOWN_NODE** LevelFlexDownNode;
587 
588  int* MarketOfferPoolOfNode;
589  int* MarketDemandPoolOfNode;
590  int* FlexUpOfferPoolOfNode;
591  int* FlexUpDemandPoolOfNode;
592  int* FlexDownOfferPoolOfNode;
593  int* FlexDownDemandPoolOfNode;
594 #endif
595 
596 public:
597  /* Unknown status */
598  std::vector<int> NbGrpCourbeGuide; // ?
599  std::vector<int> NbGrpOpt; // ?
600 
601  std::unique_ptr<PROBLEME_ANTARES_A_RESOUDRE>
602  ProblemeAResoudre = std::make_unique<PROBLEME_ANTARES_A_RESOUDRE>();
603 
604  // TODO: 1 study but several PROBLEME_HEBDO, may cause race conditions
605  Modeler::Data* modelerData = nullptr;
606 };
607 #endif
Definition: adequacy_patch_runtime_data.h:32
Definition: optimization_statistics.h:29
Definition: ShortTermStorageCostVariation.h:49
Definition: ShortTermStorageCostVariation.h:63
Definition: ShortTermStorageCostVariation.h:77
Definition: ShortTermStorageCostVariation.h:91
Definition: ShortTermStorageCumulation.h:26
Definition: sim_structure_probleme_economique.h:244
Definition: data.h:38
Definition: sim_structure_probleme_economique.h:224
Definition: sim_structure_probleme_economique.h:219
Definition: sim_structure_probleme_economique.h:239
Definition: sim_structure_probleme_economique.h:148
Definition: sim_structure_probleme_economique.h:114
Definition: sim_structure_probleme_economique.h:109
Definition: sim_structure_probleme_economique.h:80
Definition: sim_structure_probleme_economique.h:37
Definition: sim_structure_probleme_economique.h:379
Definition: sim_structure_probleme_economique.h:214
Definition: sim_structure_probleme_economique.h:209
Definition: sim_structure_probleme_economique.h:204
Definition: sim_structure_probleme_economique.h:290
Definition: sim_structure_probleme_economique.h:234
Definition: sim_structure_probleme_economique.h:229
Definition: sim_structure_probleme_economique.h:268
Definition: sim_structure_probleme_economique.h:254
Definition: sim_structure_probleme_economique.h:403
Definition: sim_structure_probleme_economique.h:342
Definition: sim_structure_probleme_economique.h:173
Definition: sim_structure_probleme_economique.h:337
Definition: sim_structure_probleme_economique.h:354
Definition: sim_structure_probleme_economique.h:196
Definition: sim_structure_probleme_economique.h:249
Definition: sim_structure_probleme_economique.h:390
Definition: sim_structure_probleme_economique.h:142
Definition: sim_structure_probleme_economique.h:136
Definition: sim_structure_probleme_economique.h:130
Definition: sim_structure_probleme_economique.h:120
Definition: sim_structure_probleme_economique.h:398