Skip to content

Commit

Permalink
Add NetPosition hourly variable
Browse files Browse the repository at this point in the history
  • Loading branch information
flomnes committed Dec 30, 2024
1 parent f5f634c commit 24697e7
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/solver/optimisation/constraints/ConstraintBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ ConstraintBuilder& ConstraintBuilder::DispatchableProduction(unsigned int index,
return *this;
}

ConstraintBuilder& ConstraintBuilder::NetPosition(unsigned int index, double coeff)
{
AddVariable(variableManager_.NetPosition(index, hourInWeek_), coeff);
return *this;
}

ConstraintBuilder& ConstraintBuilder::NumberOfDispatchableUnits(unsigned int index, double coeff)
{
AddVariable(variableManager_.NumberOfDispatchableUnits(index, hourInWeek_), coeff);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ class ConstraintBuilder
int offset = 0,
int delta = 0);

ConstraintBuilder& NetPosition(unsigned int index, double coeff);

ConstraintBuilder& HydProd(unsigned int index, double coeff);

ConstraintBuilder& HydProdDown(unsigned int index, double coeff);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@ void OPT_ConstruireLaListeDesVariablesOptimiseesDuProblemeLineaire(PROBLEME_HEBD
NombreDeVariables++;
}

// NetPosition
ProblemeAResoudre->TypeDeVariable[NombreDeVariables] = VARIABLE_NON_BORNEE;
variableManager.NetPosition(pays, pdt) = NombreDeVariables;
NombreDeVariables++;

for (const auto& storage: problemeHebdo->ShortTermStorage[pays])
{
const int clusterGlobalIndex = storage.clusterGlobalIndex;
Expand Down
9 changes: 9 additions & 0 deletions src/solver/optimisation/variables/VariableManagement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,15 @@ int& VariableManager::ShortTermStorageCostVariationWithdrawal(unsigned int index
.SIM_ShortTermStorage.CostVariationWithdrawal[index];
}

int& VariableManager::NetPosition(unsigned int index,
unsigned int hourInWeek,
int offset,
int delta)
{
auto pdt = GetShiftedTimeStep(offset, delta, hourInWeek);
return CorrespondanceVarNativesVarOptim_[pdt].NumeroDeVariableNetPosition[index];
}

int& VariableManager::HydProd(unsigned int index, unsigned int hourInWeek, int offset, int delta)
{
auto pdt = GetShiftedTimeStep(offset, delta, hourInWeek);
Expand Down
2 changes: 2 additions & 0 deletions src/solver/optimisation/variables/VariableManagement.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ class VariableManager
int offset = 0,
int delta = 0);

int& NetPosition(unsigned int index, unsigned int hourInWeek, int offset = 0, int delta = 0);

int& HydProd(unsigned int index, unsigned int hourInWeek, int offset = 0, int delta = 0);

int& HydProdDown(unsigned int index, unsigned int hourInWeek, int offset = 0, int delta = 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ struct CORRESPONDANCES_DES_VARIABLES

std::vector<int> NumeroDeVariableDuPalierThermique;

std::vector<int> NumeroDeVariableNetPosition;
std::vector<int> NumeroDeVariablesDeLaProdHyd;

std::vector<int> NumeroDeVariablesDePompage;
Expand Down
1 change: 1 addition & 0 deletions src/solver/simulation/sim_alloc_probleme_hebdo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ void SIM_AllocationProblemePasDeTemps(PROBLEME_HEBDO& problem,

variablesMapping.NumeroDeVariableDuPalierThermique
.assign(study.runtime.thermalPlantTotalCount, 0);
variablesMapping.NumeroDeVariableNetPosition.assign(nbPays, 0);
variablesMapping.NumeroDeVariablesDeLaProdHyd.assign(nbPays, 0);
variablesMapping.NumeroDeVariablesDePompage.assign(nbPays, 0);
variablesMapping.NumeroDeVariablesDeNiveau.assign(nbPays, 0);
Expand Down

0 comments on commit 24697e7

Please sign in to comment.