Skip to content

Commit

Permalink
Changements ALI
Browse files Browse the repository at this point in the history
aalzoobi committed Jan 23, 2025
1 parent ea05a63 commit 9790daf
Showing 1 changed file with 199 additions and 1 deletion.
200 changes: 199 additions & 1 deletion src/solver/optimisation/post_process_commands.cpp
Original file line number Diff line number Diff line change
@@ -24,6 +24,7 @@
#include "antares/solver/optimisation/adequacy_patch_csr/adq_patch_curtailment_sharing.h"
#include "antares/solver/simulation/adequacy_patch_runtime_data.h"
#include "antares/solver/simulation/common-eco-adq.h"
#include "antares/solver/utils/filename.h"

namespace Antares::Solver::Simulation
{
@@ -166,6 +167,18 @@ DTGnettingAfterCSRcmd::DTGnettingAfterCSRcmd(PROBLEME_HEBDO* problemeHebdo,

void DTGnettingAfterCSRcmd::execute(const optRuntimeData&)
{
// for (uint hour = 0; hour < nbHoursInWeek; hour++)
// {
// if (problemeHebdo_->adequacyPatchRuntimeData->wasCSRTriggeredAtAreaHour(Area, hour);)
// {
// AdequacyPatchOptimization::solve(,hour)
// void AdequacyPatchOptimization::solve(uint weekInTheYear, int hourInTheYear)
// ::SIM_RenseignementProblemeHebdo(study_, *problemeHebdo_, weekInTheYear, thread_number_, hourInTheYear);
// OPT_OptimisationHebdomadaire(options_, problemeHebdo_, adqPatchParams_, writer_);

// }
// }

for (uint32_t Area = 0; Area < problemeHebdo_->NombreDePays; Area++)
{
auto& hourlyResults = problemeHebdo_->ResultatsHoraires[Area];
@@ -259,15 +272,200 @@ void CurtailmentSharingPostProcessCmd::execute(const optRuntimeData& opt_runtime
<< ".Total LMR violation:" << totalLmrViolation;
const std::set<int> hoursRequiringCurtailmentSharing = getHoursRequiringCurtailmentSharing();
HourlyCSRProblem hourlyCsrProblem(adqPatchParams_, problemeHebdo_);

auto variableManager = VariableManagerFromProblemHebdo(problemeHebdo_);
// int var = variableManager_.NTCDirect(Interco, triggeredHour);
// Xmax[var] = ValeursDeNTC.ValeurDeNTCOrigineVersExtremite[Interco]
for (auto cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
logs.info() << "[adq-patch] Hello ValeurDeFlux BEFORE AdqP is:"<<cnxn.ValeurDuFlux;
}
// apply ADQP
for (int hourInWeek: hoursRequiringCurtailmentSharing)
{

{
// for (uint32_t Interco = 0; Interco < problemeHebdo_->NombreDInterconnexions; ++Interco){
// int var = variableManager.NTCDirect(Interco, hourInWeek);
// problemAresdoudre.Xmax[var] = ValeursDeNTC.ValeurDeNTCOrigineVersExtremite[Interco]
// logs.info() << "[adq-patch] Hello NTCs";

// }


// problemAresdoudre. etc . Xmax[var] = ValeursDeNTC.ValeurDeNTCOrigineVersExtremite[Interco]

logs.info() << "[adq-patch] CSR triggered for Year:" << year + 1
<< " Hour:" << week * nbHoursInWeek + hourInWeek + 1;
hourlyCsrProblem.setHour(hourInWeek);
hourlyCsrProblem.run(week, year);
// To redispatch here
//problemeHebdo_[numSpace].solve();
// OPT_OptimisationHebdomadaire(options_, problemeHebdo_, writer_, simulationObserver_.get());
//opt_runtime_data.weeklyOptimization.problemeHebdo_.ValeursDeNTC;


//auto interco = opt_runtime_data.weeklyOptimization.study.runtime.Interco
//auto R = opt_runtime_data.weeklyOptimization.problemeHebdo_->ResultatsHoraires
// Here to check
// opt_runtime_data.weekly_optimization.problemeHebdo_.ValeursDeNTC;
logs.info() << "[adq-patch] CSR triggered for Year:";


}

for (auto cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
logs.info() << "[adq-patch] Hello ValeurDeFlux After AdqP is:"<<cnxn.ValeurDuFlux;
}
// for (auto& cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
// logs.info() << "[adq-patch] Hello ValeurDeFlux AFTER adq is:"<<cnxn.ValeurDuFlux;
// cnxn.ValeurDeNTCOrigineVersExtremite = cnxn.ValeurDuFlux;
// cnxn.ValeurDeNTCExtremiteVersOrigine = cnxn.ValeurDuFlux;
// }
// for (auto& cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
// for (auto& v: cnxn.ValeurDeNTCOrigineVersExtremite){
// v = v + 1;
// }
// for (auto& v: cnxn.ValeurDeNTCExtremiteVersOrigine){
// v = v + 1;
// }
// }



// // REDISPATCH
// for (int hourInWeek: hoursRequiringCurtailmentSharing){
// for (uint32_t Interco = 0; Interco < problemeHebdo_->NombreDInterconnexions; ++Interco){
// int var = variableManager.NTCDirect(Interco, hourInWeek);
// auto& Xmax = problemeHebdo_->ProblemeAResoudre.get()->Xmax[Interco];// .Xmax[var] = 1;
// auto& Xmin = problemeHebdo_->ProblemeAResoudre.get()->Xmin[Interco];// .Xmax[var] = 1;

// auto f = problemeHebdo_->ValeursDeNTC[Interco].ValeurDuFlux[Interco];// ->ValeurDeNTCOrigineVersExtremite[Interco].ValeurDeFlux;
// Xmax = f + 1;
// Xmin = f - 1;
// // auto c = b[Interco].ValeurDuFlux;

// }
// logs.info() << "[adq-patch] Hello NTCs";

// }


// // REDISPATCH OLD Flow cons
// for (int hourInWeek: hoursRequiringCurtailmentSharing){
// for (uint32_t Interco = 0; Interco < problemeHebdo_->NombreDInterconnexions; ++Interco){
// // int var = variableManager.NTCDirect(Interco, hourInWeek);
// auto& Xmax = problemeHebdo_->ProblemeAResoudre.get()->Xmax[Interco];// .Xmax[var] = 1;
// auto& Xmin = problemeHebdo_->ProblemeAResoudre.get()->Xmin[Interco];// .Xmax[var] = 1;

// auto f = problemeHebdo_->ValeursDeNTC[Interco].ValeurDuFlux[Interco];// ->ValeurDeNTCOrigineVersExtremite[Interco].ValeurDeFlux;
// Xmax = f + 1;
// Xmin = f - 1;
// // auto c = b[Interco].ValeurDuFlux;

// }
// logs.info() << "[adq-patch] Hello NTCs";

// }





// auto variableManager = VariableManagerFromProblemHebdo(problemeHebdo);
// for (int pdtHebdo = PremierPdtDeLIntervalle, pdtJour = 0; pdtHebdo < DernierPdtDeLIntervalle;
// pdtHebdo++, pdtJour++)
// {
// VALEURS_DE_NTC_ET_RESISTANCES& ValeursDeNTC = problemeHebdo->ValeursDeNTC[pdtHebdo];

// for (uint32_t interco = 0; interco < problemeHebdo->NombreDInterconnexions; interco++)
// {
// int var = variableManager.NTCDirect(interco, pdtJour);
// const COUTS_DE_TRANSPORT& CoutDeTransport = problemeHebdo->CoutDeTransport[interco];

// Xmax[var] = ValeursDeNTC.ValeurDeNTCOrigineVersExtremite[interco];
// Xmin[var] = -(ValeursDeNTC.ValeurDeNTCExtremiteVersOrigine[interco]);

// if (std::isinf(Xmax[var]) && Xmax[var] > 0)
// {



// REDISPATCH NEW Flow COnst
std::vector<double>& Xmax = problemeHebdo_->ProblemeAResoudre.get()->Xmax;
std::vector<double>& Xmin = problemeHebdo_->ProblemeAResoudre.get()->Xmin;

for (int hourInWeek: hoursRequiringCurtailmentSharing){
for (uint32_t Interco = 0; Interco < problemeHebdo_->NombreDInterconnexions; ++Interco){
int var = variableManager.NTCDirect(Interco, hourInWeek);
// auto& Xmax[var] = problemeHebdo->ValeursDeNTC[problemeHebdo_].ValeursDeNTC.ValeurDeNTCOrigineVersExtremite[interco];
// auto& Xmax = problemeHebdo->ValeursDeNTC[pdtHebdo];
// Xmax[var] = problemeHebdo_->ProblemeAResoudre.get()->Xmax[var];// .Xmax[var] = 1;
// Xmin[var] = problemeHebdo_->ProblemeAResoudre.get()->Xmin[var];// .Xmax[var] = 1;

// auto f = problemeHebdo_->ValeursDeNTC[Interco].ValeurDuFlux[var];// ->ValeurDeNTCOrigineVersExtremite[Interco].ValeurDeFlux;
auto f = problemeHebdo_->ValeursDeNTC[hourInWeek].ValeurDuFlux[Interco];// ->ValeurDeNTCOrigineVersExtremite[Interco].ValeurDeFlux;
Xmax[var] = f + 1;
Xmin[var] = f - 1;
logs.info() << "Hello Inside";
// auto c = b[Interco].ValeurDuFlux;

}
logs.info() << "[adq-patch] Hello NTCs";

}


for (auto cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
logs.info() << "[adq-patch] Hello ValeurDeFlux After cnxn upd is:"<<cnxn.ValeurDuFlux;
}
// here we redispatch truly and smarlty
OPT_OptimisationHebdomadaire(opt_runtime_data.weeklyOptimization.options_,
problemeHebdo_,
opt_runtime_data.weeklyOptimization.writer_,
opt_runtime_data.weeklyOptimization.simulationObserver_);


// // opt_runtime_data.weeklyOptimization.solve();

// opt_runtime_data.weeklyOptimization.solve();







const int NombreDePasDeTempsPourUneOptimisation = problemeHebdo_
->NombreDePasDeTempsPourUneOptimisation;

int DernierPdtDeLIntervalle;
for (uint pdtHebdo = 0, numeroDeLIntervalle = 0; pdtHebdo < problemeHebdo_->NombreDePasDeTemps;
pdtHebdo = DernierPdtDeLIntervalle, numeroDeLIntervalle++)
{
int PremierPdtDeLIntervalle = pdtHebdo;
DernierPdtDeLIntervalle = pdtHebdo + NombreDePasDeTempsPourUneOptimisation;
auto optPeriodStringGenerator = createOptPeriodAsString(problemeHebdo_->OptimisationAuPasHebdomadaire,
numeroDeLIntervalle,
problemeHebdo_->weekInTheYear,
problemeHebdo_->year);
// bool b = OPT_AppelDuSimplexe(opt_runtime_data.weeklyOptimization.options_,
// problemeHebdo_,
// numeroDeLIntervalle,
// 1,
// *optPeriodStringGenerator,
// opt_runtime_data.weeklyOptimization.writer_);

}


for (auto cnxn: opt_runtime_data.weeklyOptimization.problemeHebdo_->ValeursDeNTC){
logs.info() << "[adq-patch] Hello ValeurDeFlux AFTER Redispatch is:"<<cnxn.ValeurDuFlux;
}


}



double CurtailmentSharingPostProcessCmd::calculateDensNewAndTotalLmrViolation()
{
double totalLmrViolation = 0.0;

0 comments on commit 9790daf

Please sign in to comment.