Skip to content

Commit

Permalink
clean code
Browse files Browse the repository at this point in the history
  • Loading branch information
a-zakir committed Sep 22, 2023
1 parent 84c6348 commit 2f449c5
Show file tree
Hide file tree
Showing 16 changed files with 42 additions and 111 deletions.
15 changes: 5 additions & 10 deletions src/solver/optimisation/constraints/AreaBalance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,24 @@ static void shortTermStorageBalance(const ::ShortTermStorage::AREA_INPUT& shortT

void AreaBalance::add(int pdt, int pays)
{
CORRESPONDANCES_DES_VARIABLES& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];
CorrespondanceCntNativesCntOptim.NumeroDeContrainteDesBilansPays[pays]
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;

// TODO improve this
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
namer.AreaBalance(problemeHebdo->ProblemeAResoudre->NombreDeContraintes);
}

builder.updateHourWithinWeek(pdt);
builder.updateHourWithinWeek(pdt);

int interco = problemeHebdo->IndexDebutIntercoOrigine[pays];
while (interco >= 0)
{
int interco = problemeHebdo->IndexDebutIntercoOrigine[pays];
while (interco >= 0)
{
builder.NTCDirect(interco, 1.0);
interco = problemeHebdo->IndexSuivantIntercoOrigine[interco];
}
}

interco = problemeHebdo->IndexDebutIntercoExtremite[pays];
while (interco >= 0)
Expand Down
2 changes: 0 additions & 2 deletions src/solver/optimisation/constraints/AreaHydroLevel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

void AreaHydroLevel::add(int pays, int pdt)
{
const auto& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];
CorrespondanceCntNativesCntOptim.NumeroDeContrainteDesNiveauxPays[pays]
Expand Down
15 changes: 5 additions & 10 deletions src/solver/optimisation/constraints/BindingConstraintDay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void BindingConstraintDay::add(int cntCouplante)
= MatriceDesContraintesCouplantes.NombreDePaliersDispatchDansLaContrainteCouplante;

const int NombreDePasDeTempsPourUneOptimisation
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation; // TODO
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;
const int NombreDePasDeTempsDUneJournee = problemeHebdo->NombreDePasDeTempsDUneJournee;
int pdtDebut = 0;
while (pdtDebut < NombreDePasDeTempsPourUneOptimisation)
Expand Down Expand Up @@ -57,17 +57,12 @@ void BindingConstraintDay::add(int cntCouplante)
.NumeroDeContrainteDesContraintesCouplantes[cntCouplante]
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;

std::vector<double*>& AdresseOuPlacerLaValeurDesCoutsMarginaux
= problemeHebdo->ProblemeAResoudre->AdresseOuPlacerLaValeurDesCoutsMarginaux;

char op = MatriceDesContraintesCouplantes.SensDeLaContrainteCouplante;
builder.SetOperator(op);
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(jour);
namer.BindingConstraintDay(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
}
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(jour);
namer.BindingConstraintDay(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
builder.build();
pdtDebut += problemeHebdo->NombreDePasDeTempsDUneJournee;
}
Expand Down
10 changes: 4 additions & 6 deletions src/solver/optimisation/constraints/BindingConstraintHour.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,9 @@ void BindingConstraintHour::add(int pdt, int cntCouplante)

char op = MatriceDesContraintesCouplantes.SensDeLaContrainteCouplante;
builder.SetOperator(op);
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.BindingConstraintHour(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
}
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.BindingConstraintHour(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
builder.build();
}
12 changes: 5 additions & 7 deletions src/solver/optimisation/constraints/BindingConstraintWeek.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,10 @@ void BindingConstraintWeek::add(int cntCouplante)
CorrespondanceCntNativesCntOptimHebdomadaires
.NumeroDeContrainteDesContraintesCouplantes[cntCouplante]
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;
// Name
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(semaine);
namer.BindingConstraintWeek(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
}

ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(semaine);
namer.BindingConstraintWeek(problemeHebdo->ProblemeAResoudre->NombreDeContraintes,
MatriceDesContraintesCouplantes.NomDeLaContrainteCouplante);
builder.build();
}
5 changes: 2 additions & 3 deletions src/solver/optimisation/constraints/ConstraintBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ void ConstraintBuilder::build()
{
std::vector<double>& Pi = problemeAResoudre.Pi;
std::vector<int>& Colonne = problemeAResoudre.Colonne;
// TODO check operator_

if (nombreDeTermes_ > 0)
{
// Matrix
OPT_ChargerLaContrainteDansLaMatriceDesContraintes(
&problemeAResoudre, Pi, Colonne, nombreDeTermes_, operator_);
}
Expand Down Expand Up @@ -44,7 +43,7 @@ void ConstraintBuilder::AddVariable(int varIndex, double coeff)
nombreDeTermes_++;
}
}
Variable::VariableManager ConstraintBuilder::GetVariableManager(int offset, int delta)
Variable::VariableManager ConstraintBuilder::GetVariableManager(int offset, int delta) const
{
auto pdt = GetShiftedTimeStep(offset, delta);
return Variable::VariableManager(varNative[pdt],
Expand Down
6 changes: 2 additions & 4 deletions src/solver/optimisation/constraints/ConstraintBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ class ConstraintBuilder
class ConstraintBuilderInvalidOperator : public std::runtime_error
{
public:
ConstraintBuilderInvalidOperator(const std::string& error_message) :
explicit ConstraintBuilderInvalidOperator(const std::string& error_message) :
std::runtime_error(error_message)
{
}
Expand Down Expand Up @@ -344,9 +344,7 @@ class ConstraintBuilder
unsigned int hourInWeek_ = 0;

char operator_ = '=';
double rhs_ = 0;
int nombreDeTermes_ = 0;
// ConstraintNamer ConstraintNameManager;

int GetShiftedTimeStep(int offset, int delta) const;
void AddVariable(int index, double coeff);
Expand All @@ -357,7 +355,7 @@ class ConstraintBuilder
* @param delta: number of time steps for the variable
* @return VariableManager object
*/
Variable::VariableManager GetVariableManager(int offset = 0, int delta = 0);
Variable::VariableManager GetVariableManager(int offset = 0, int delta = 0) const;
};

/*! factory class to build a Constraint */
Expand Down
16 changes: 4 additions & 12 deletions src/solver/optimisation/constraints/FictitiousLoad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,16 @@

void FictitiousLoad::add(int pdt, int pays)
{
/** can be done without this --- keep it for now**/
CORRESPONDANCES_DES_VARIABLES& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];
CorrespondanceCntNativesCntOptim.NumeroDeContraintePourEviterLesChargesFictives[pays]
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;

/******/
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);

// TODO improve this
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);

namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
namer.FictiveLoads(problemeHebdo->ProblemeAResoudre->NombreDeContraintes);
}
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
namer.FictiveLoads(problemeHebdo->ProblemeAResoudre->NombreDeContraintes);

builder.updateHourWithinWeek(pdt);
exportPaliers(*problemeHebdo, builder, pays);
Expand Down
24 changes: 8 additions & 16 deletions src/solver/optimisation/constraints/FlowDissociation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,19 @@ void FlowDissociation::add(int pdt, int interco)
if (const COUTS_DE_TRANSPORT& CoutDeTransport = problemeHebdo->CoutDeTransport[interco];
CoutDeTransport.IntercoGereeAvecDesCouts)
{
/** can be done without this --- keep it for now**/
CORRESPONDANCES_DES_VARIABLES& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];
CorrespondanceCntNativesCntOptim.NumeroDeContrainteDeDissociationDeFlux[interco]
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;
/******/

// TODO improve this

{
const auto origin
= problemeHebdo->NomsDesPays[problemeHebdo->PaysOrigineDeLInterconnexion[interco]];
const auto destination
= problemeHebdo->NomsDesPays[problemeHebdo->PaysExtremiteDeLInterconnexion[interco]];
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.FlowDissociation(
problemeHebdo->ProblemeAResoudre->NombreDeContraintes, origin, destination);
}
const auto origin
= problemeHebdo->NomsDesPays[problemeHebdo->PaysOrigineDeLInterconnexion[interco]];
const auto destination
= problemeHebdo->NomsDesPays[problemeHebdo->PaysExtremiteDeLInterconnexion[interco]];
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear * 168 + pdt);
namer.FlowDissociation(
problemeHebdo->ProblemeAResoudre->NombreDeContraintes, origin, destination);

builder.updateHourWithinWeek(pdt);
builder.NTCDirect(interco, 1.0)
Expand Down
10 changes: 4 additions & 6 deletions src/solver/optimisation/constraints/HydroPower.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,10 @@ void HydroPower::add(int pays)
= problemeHebdo->ProblemeAResoudre->NombreDeContraintes;

builder.equalTo();
{
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear);
namer.HydroPower(problemeHebdo->ProblemeAResoudre->NombreDeContraintes);
}
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
namer.UpdateTimeStep(problemeHebdo->weekInTheYear);
namer.HydroPower(problemeHebdo->ProblemeAResoudre->NombreDeContraintes);
builder.build();
}
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ void HydroPowerSmoothingUsingVariationSum::add(int pays)
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;
for (int pdt = 0; pdt < nombreDePasDeTempsPourUneOptimisation; pdt++)
{
const auto& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
int nombreDeTermes = 0;

int pdt1 = pdt + 1;
if (pdt1 >= nombreDePasDeTempsPourUneOptimisation)
pdt1 = 0;
Expand All @@ -26,9 +22,9 @@ void HydroPowerSmoothingUsingVariationSum::add(int pays)

builder.updateHourWithinWeek(pdt)
.HydProd(pays, 1.0)
.updateHourWithinWeek(pdt1) /* /!\ Re-check*/
.updateHourWithinWeek(pdt1)
.HydProd(pays, -1.0)
.updateHourWithinWeek(pdt) /* /!\ Re-check*/
.updateHourWithinWeek(pdt)
.HydProdDown(pays, -1.0)
.HydProdUp(pays, 1.0)
.equalTo()
Expand Down
4 changes: 0 additions & 4 deletions src/solver/optimisation/constraints/MinDownTime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ void MinDownTime::add(int pays, int cluster, int clusterIndex, int pdt, bool Sim
int NombreDePasDeTempsPourUneOptimisation
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;

const std::vector<int>& NombreMaxDeGroupesEnMarcheDuPalierThermique
= PaliersThermiquesDuPays.PuissanceDisponibleEtCout[clusterIndex]
.NombreMaxDeGroupesEnMarcheDuPalierThermique;

builder.updateHourWithinWeek(pdt).NumberOfDispatchableUnits(cluster, 1.0);

for (int k = pdt - DureeMinimaleDArretDUnGroupeDuPalierThermique + 1; k <= pdt; k++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ void NbDispUnitsMinBoundSinceMinUpTime::add(int pays,
int NombreDePasDeTempsPourUneOptimisation
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;

const std::vector<int>& NombreMaxDeGroupesEnMarcheDuPalierThermique
= PaliersThermiquesDuPays.PuissanceDisponibleEtCout[clusterIndex]
.NombreMaxDeGroupesEnMarcheDuPalierThermique;

builder.updateHourWithinWeek(pdt).NumberOfDispatchableUnits(cluster, 1.0);

for (int k = pdt - DureeMinimaleDeMarcheDUnGroupeDuPalierThermique + 1; k <= pdt; k++)
Expand Down
6 changes: 0 additions & 6 deletions src/solver/optimisation/constraints/ShortTermStorageLevel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@

void ShortTermStorageLevel::add(int pdt, int pays)
{
// TODO improve this
ConstraintNamer namer(problemeHebdo->ProblemeAResoudre->NomDesContraintes);
/** can be done without this --- keep it for now**/
CORRESPONDANCES_DES_VARIABLES& CorrespondanceVarNativesVarOptim
= problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];

/******/

const int hourInTheYear = problemeHebdo->weekInTheYear * 168 + pdt;
namer.UpdateTimeStep(hourInTheYear);
namer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ void OPT_ConstruireLaMatriceDesContraintesDuProblemeLineaireCoutsDeDemarrage(
int nombreDePasDeTempsPourUneOptimisation
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;

std::vector<double>& Pi = ProblemeAResoudre->Pi;
std::vector<int>& Colonne = ProblemeAResoudre->Colonne;
ConstraintNamer constraintNamer(ProblemeAResoudre->NomDesContraintes);
int nbTermesContraintesPourLesCoutsDeDemarrage = 0;
for (uint32_t pays = 0; pays < problemeHebdo->NombreDePays; pays++)
Expand Down Expand Up @@ -130,9 +128,7 @@ void OPT_ConstruireLaMatriceDesContraintesDuProblemeLineaireCoutsDeDemarrage(
constraintNamer.UpdateArea(problemeHebdo->NomsDesPays[pays]);
for (int index = 0; index < PaliersThermiquesDuPays.NombreDePaliersThermiques; index++)
{
int DureeMinimaleDeMarcheDUnGroupeDuPalierThermique
= PaliersThermiquesDuPays.DureeMinimaleDeMarcheDUnGroupeDuPalierThermique[index];
if (DureeMinimaleDeMarcheDUnGroupeDuPalierThermique <= 0)
if (PaliersThermiquesDuPays.DureeMinimaleDeMarcheDUnGroupeDuPalierThermique[index] <= 0)
continue;
const int palier
= PaliersThermiquesDuPays.NumeroDuPalierDansLEnsembleDesPaliersThermiques[index];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@ void OPT_ConstruireLaMatriceDesContraintesDuProblemeLineaire(PROBLEME_HEBDO* pro
int nombreDePasDeTempsPourUneOptimisation
= problemeHebdo->NombreDePasDeTempsPourUneOptimisation;

std::vector<double>& Pi = ProblemeAResoudre->Pi;
std::vector<int>& Colonne = ProblemeAResoudre->Colonne;

ProblemeAResoudre->NombreDeContraintes = 0;
ProblemeAResoudre->NombreDeTermesDansLaMatriceDesContraintes = 0;
ConstraintNamer constraintNamer(ProblemeAResoudre->NomDesContraintes);
Expand Down Expand Up @@ -97,9 +94,6 @@ void OPT_ConstruireLaMatriceDesContraintesDuProblemeLineaire(PROBLEME_HEBDO* pro
{
int timeStepInYear = problemeHebdo->weekInTheYear * 168 + pdt;
constraintNamer.UpdateTimeStep(timeStepInYear);
CORRESPONDANCES_DES_VARIABLES& CorrespondanceVarNativesVarOptim = problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];

for (uint32_t pays = 0; pays < problemeHebdo->NombreDePays; pays++)
{
Expand Down Expand Up @@ -183,10 +177,6 @@ void OPT_ConstruireLaMatriceDesContraintesDuProblemeLineaire(PROBLEME_HEBDO* pro

for (int pdt = 0; pdt < nombreDePasDeTempsPourUneOptimisation; pdt++)
{
const auto& CorrespondanceVarNativesVarOptim = problemeHebdo->CorrespondanceVarNativesVarOptim[pdt];
CORRESPONDANCES_DES_CONTRAINTES& CorrespondanceCntNativesCntOptim
= problemeHebdo->CorrespondanceCntNativesCntOptim[pdt];

int timeStepInYear = problemeHebdo->weekInTheYear * 168 + pdt;
constraintNamer.UpdateTimeStep(timeStepInYear);
for (uint32_t pays = 0; pays < problemeHebdo->NombreDePays; pays++)
Expand Down

0 comments on commit 2f449c5

Please sign in to comment.