26 #include "antares/study/binding_constraint/BindingConstraint.h"
27 #include "antares/study/fwd.h"
29 #include "bindConstraints.h"
31 namespace Antares::Solver::Variable
34 void 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);
53 void 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);
73 template<
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);
101 template<
class NextT>
102 void BindingConstraints<NextT>::simulationBegin()
104 for (
auto& bc: pBindConstraints)
106 bc.simulationBegin();
110 template<
class NextT>
111 void BindingConstraints<NextT>::simulationEnd()
113 for (
auto& bc: pBindConstraints)
119 template<
class NextT>
120 void BindingConstraints<NextT>::yearEndBuild(
State& , uint , uint )
124 template<
class NextT>
125 void 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);
170 template<
class NextT>
171 void BindingConstraints<NextT>::computeSummary(
unsigned int year,
unsigned int numSpace)
173 for (uint i = 0; i != pBCcount; ++i)
176 pBindConstraints[i].computeSummary(year, numSpace);
180 template<
class NextT>
181 void BindingConstraints<NextT>::yearBegin(uint year, uint numSpace)
184 for (uint i = 0; i != pBCcount; ++i)
186 pBindConstraints[i].yearBegin(year, numSpace);
190 template<
class NextT>
191 void BindingConstraints<NextT>::yearEnd(uint year, uint numSpace)
194 for (uint i = 0; i != pBCcount; ++i)
196 pBindConstraints[i].yearEnd(year, numSpace);
200 template<
class NextT>
201 void BindingConstraints<NextT>::weekBegin(
State& state)
203 for (uint i = 0; i != pBCcount; ++i)
205 pBindConstraints[i].weekBegin(state);
209 template<
class NextT>
210 void BindingConstraints<NextT>::weekEnd(
State& state)
212 for (uint i = 0; i != pBCcount; ++i)
214 pBindConstraints[i].weekEnd(state);
218 template<
class NextT>
219 void BindingConstraints<NextT>::hourBegin(uint hourInTheYear)
221 for (uint i = 0; i != pBCcount; ++i)
223 pBindConstraints[i].hourBegin(hourInTheYear);
227 template<
class NextT>
228 void BindingConstraints<NextT>::hourEnd(
State& state, uint hourInTheYear)
230 for (uint i = 0; i != pBCcount; ++i)
232 pBindConstraints[i].hourEnd(state, hourInTheYear);
236 template<
class NextT>
237 void BindingConstraints<NextT>::weekForEachArea(
State& state,
unsigned int numSpace)
239 for (uint i = 0; i != pBCcount; ++i)
241 pBindConstraints[i].weekForEachArea(state, numSpace);
245 template<
class NextT>
246 void BindingConstraints<NextT>::hourForEachArea(
State& state,
unsigned int numSpace)
248 for (uint i = 0; i != pBCcount; ++i)
250 pBindConstraints[i].hourForEachArea(state, numSpace);
254 template<
class NextT>
255 template<
class VCardToFindT>
256 inline void BindingConstraints<NextT>::retrieveResultsForArea(
260 NextType::template retrieveResultsForArea<VCardToFindT>(result, area);
263 template<
class NextT>
264 void BindingConstraints<NextT>::buildDigest(SurveyResults& results,
268 for (uint i = 0; i != pBCcount; ++i)
270 pBindConstraints[i].buildDigest(results, digestLevel, dataLevel);
274 template<
class NextT>
276 void BindingConstraints<NextT>::simulationEndSpatialAggregates(V& allVars)
278 NextType::template simulationEndSpatialAggregates<V>(allVars);
281 template<
class NextT>
283 void BindingConstraints<NextT>::computeSpatialAggregatesSummary(V& allVars,
285 unsigned int numSpace)
287 NextType::template computeSpatialAggregatesSummary<V>(allVars, year, numSpace);
290 template<
class NextT>
291 void BindingConstraints<NextT>::beforeYearByYearExport(uint year, uint numSpace)
293 for (uint i = 0; i != pBCcount; ++i)
295 pBindConstraints[i].beforeYearByYearExport(year, numSpace);
299 template<
class NextT>
300 template<
class SearchVCardT,
class O>
301 inline void BindingConstraints<NextT>::computeSpatialAggregateWith(O& out,
305 NextType::template computeSpatialAggregateWith<SearchVCardT, O>(out, area, numSpace);
308 template<
class NextT>
309 template<
class VCardToFindT>
310 inline void BindingConstraints<NextT>::retrieveResultsForLink(
314 NextType::template retrieveResultsForLink<VCardToFindT>(result, link);
317 template<
class NextT>
318 template<
class VCardToFindT>
319 inline void BindingConstraints<NextT>::retrieveResultsForThermalCluster(
323 NextType::template retrieveResultsForThermalCluster<VCardToFindT>(result, cluster);
Definition of a link between two areas (Interconnection)
Definition: links.h:58
Definition for a single area.
Definition: area.h:51
A single thermal cluster.
Definition: cluster.h:76
Definition: bindConstraints.h:68
static void RetrieveVariableList(PredicateT &predicate)
Retrieve the list of all individual variables.
Definition: bindConstraints.hxx:74
Definition: cbuilder.h:120
VariableAccessor< typename VCardT::ResultsType, VCardT::columnCount >::Type ResultsType
The true type used for the results.
Definition: info.h:760