26#include "antares/study/binding_constraint/BindingConstraint.h"
27#include "antares/study/fwd.h"
29#include "bindConstraints.h"
31namespace Antares::Solver::Variable
34void BindingConstraints<NextT>::buildSurveyReport(SurveyResults& results,
39 if (
bool bcDataLevel = dataLevel & Category::DataLevel::bindingConstraint; !bcDataLevel)
44 for (uint i = 0; i != pBCcount; ++i)
46 const NextType& bc = pBindConstraints[i];
48 bc.buildSurveyReport(results, dataLevel, fileLevel, precision);
53void BindingConstraints<NextT>::buildAnnualSurveyReport(SurveyResults& results,
59 if (
bool bcDataLevel = dataLevel & Category::DataLevel::bindingConstraint; !bcDataLevel)
64 for (uint i = 0; i != pBCcount; ++i)
66 const NextType& bc = pBindConstraints[i];
68 bc.buildAnnualSurveyReport(results, dataLevel, fileLevel, precision, numSpace);
73template<
class PredicateT>
76 NextType::RetrieveVariableList(predicate);
84 if (VCardType::nodeDepthForGUI)
86 infos.template beginNode<VCardType>();
88 NextType::template provideInformations<I>(infos);
95 infos.template addVCard<VCardType>();
97 NextType::template provideInformations<I>(infos);
102void BindingConstraints<NextT>::simulationBegin()
104 for (
auto& bc: pBindConstraints)
106 bc.simulationBegin();
111void BindingConstraints<NextT>::simulationEnd()
113 for (
auto& bc: pBindConstraints)
120void BindingConstraints<NextT>::yearEndBuild(
State& , uint , uint )
125void BindingConstraints<NextT>::initializeFromStudy(
Data::Study& study)
127 const std::vector<std::shared_ptr<Data::BindingConstraint>>
128 inequalityByPtr = study.bindingConstraints.getPtrForInequalityBindingConstraints();
132 pBCcount = (uint)inequalityByPtr.size();
137 pBindConstraints.resize(pBCcount);
140 for (uint i = 0; i != pBCcount; ++i)
142 NextType& bc = pBindConstraints[i];
144 bc.setAssociatedBindConstraint(inequalityByPtr[i]);
145 bc.initializeFromStudy(study);
148 bc.getPrintStatusFromStudy(study);
164 NextType& bc = pBindConstraints[0];
165 bc.setBindConstraintsCount(pBCcount);
166 bc.supplyMaxNumberOfColumns(study);
171void BindingConstraints<NextT>::computeSummary(std::map<unsigned int, unsigned int>& numSpaceToYear,
172 unsigned int nbYearsForCurrentSummary)
174 for (uint i = 0; i != pBCcount; ++i)
177 pBindConstraints[i].computeSummary(numSpaceToYear, nbYearsForCurrentSummary);
182void BindingConstraints<NextT>::yearBegin(uint year, uint numSpace)
185 for (uint i = 0; i != pBCcount; ++i)
187 pBindConstraints[i].yearBegin(year, numSpace);
192void BindingConstraints<NextT>::yearEnd(uint year, uint numSpace)
195 for (uint i = 0; i != pBCcount; ++i)
197 pBindConstraints[i].yearEnd(year, numSpace);
202void BindingConstraints<NextT>::weekBegin(
State& state)
204 for (uint i = 0; i != pBCcount; ++i)
206 pBindConstraints[i].weekBegin(state);
211void BindingConstraints<NextT>::weekEnd(
State& state)
213 for (uint i = 0; i != pBCcount; ++i)
215 pBindConstraints[i].weekEnd(state);
220void BindingConstraints<NextT>::hourBegin(uint hourInTheYear)
222 for (uint i = 0; i != pBCcount; ++i)
224 pBindConstraints[i].hourBegin(hourInTheYear);
229void BindingConstraints<NextT>::hourEnd(
State& state, uint hourInTheYear)
231 for (uint i = 0; i != pBCcount; ++i)
233 pBindConstraints[i].hourEnd(state, hourInTheYear);
238void BindingConstraints<NextT>::weekForEachArea(
State& state,
unsigned int numSpace)
240 for (uint i = 0; i != pBCcount; ++i)
242 pBindConstraints[i].weekForEachArea(state, numSpace);
247void BindingConstraints<NextT>::hourForEachArea(
State& state,
unsigned int numSpace)
249 for (uint i = 0; i != pBCcount; ++i)
251 pBindConstraints[i].hourForEachArea(state, numSpace);
256template<
class VCardToFindT>
257inline void BindingConstraints<NextT>::retrieveResultsForArea(
261 NextType::template retrieveResultsForArea<VCardToFindT>(result, area);
265void BindingConstraints<NextT>::buildDigest(SurveyResults& results,
269 for (uint i = 0; i != pBCcount; ++i)
271 pBindConstraints[i].buildDigest(results, digestLevel, dataLevel);
277void BindingConstraints<NextT>::simulationEndSpatialAggregates(V& allVars)
279 NextType::template simulationEndSpatialAggregates<V>(allVars);
284void BindingConstraints<NextT>::computeSpatialAggregatesSummary(
286 std::map<unsigned int, unsigned int>& numSpaceToYear,
287 unsigned int nbYearsForCurrentSummary)
289 NextType::template computeSpatialAggregatesSummary<V>(allVars,
291 nbYearsForCurrentSummary);
295void BindingConstraints<NextT>::beforeYearByYearExport(uint year, uint numSpace)
297 for (uint i = 0; i != pBCcount; ++i)
299 pBindConstraints[i].beforeYearByYearExport(year, numSpace);
304template<
class SearchVCardT,
class O>
305inline void BindingConstraints<NextT>::computeSpatialAggregateWith(O& out,
309 NextType::template computeSpatialAggregateWith<SearchVCardT, O>(out, area, numSpace);
313template<
class VCardToFindT>
314inline void BindingConstraints<NextT>::retrieveResultsForLink(
318 NextType::template retrieveResultsForLink<VCardToFindT>(result, link);
322template<
class VCardToFindT>
323inline void BindingConstraints<NextT>::retrieveResultsForThermalCluster(
327 NextType::template retrieveResultsForThermalCluster<VCardToFindT>(result, cluster);
Definition of a link between two areas (Interconnection)
Definition links.h:50
Definition for a single area.
Definition area.h:52
A single thermal cluster.
Definition cluster.h:78
Definition bindConstraints.h:72
static void RetrieveVariableList(PredicateT &predicate)
Retrieve the list of all individual variables.
Definition bindConstraints.hxx:74
Definition cbuilder.h:120
VariableAccessor< typenameVCardT::ResultsType, VCardT::columnCount >::Type ResultsType
The true type used for the results.
Definition info.h:764