120 template<
int CDataLevel,
int CFile>
136 pNbYearsParallel = study.maxNbYearsInParallel;
142 pValuesForTheCurrentYear.resize(pNbYearsParallel);
143 for (
unsigned int numSpace = 0; numSpace < pNbYearsParallel; numSpace++)
145 pValuesForTheCurrentYear[numSpace].initializeFromStudy(study);
149 NextType::initializeFromStudy(study);
155 VariableAccessorType::InitializeAndReset(
results, study);
161 NextType::initializeFromArea(study, area);
167 NextType::initializeFromAreaLink(study, link);
170 void simulationBegin()
173 NextType::simulationBegin();
178 NextType::simulationEnd();
181 void yearBegin(
unsigned int year,
unsigned int numSpace)
184 pValuesForTheCurrentYear[numSpace].reset();
186 NextType::yearBegin(year, numSpace);
189 void yearEndBuildForEachThermalCluster(
State& state, uint year,
unsigned int numSpace)
192 for (
unsigned int i = 0; i < state.study.runtime.rangeLimits.hour[Data::rangeCount]; ++i)
194 pValuesForTheCurrentYear[numSpace][i] += state.thermalClusterOperatingCostForYear[i];
198 NextType::yearEndBuildForEachThermalCluster(state, year, numSpace);
201 void yearEndBuild(
State& state,
unsigned int year,
unsigned int numSpace)
204 NextType::yearEndBuild(state, year, numSpace);
207 void yearEnd(
unsigned int year,
unsigned int numSpace)
210 pValuesForTheCurrentYear[numSpace].computeStatisticsForTheCurrentYear();
213 NextType::yearEnd(year, numSpace);
216 void computeSummary(std::map<unsigned int, unsigned int>& numSpaceToYear,
217 unsigned int nbYearsForCurrentSummary)
219 for (
unsigned int numSpace = 0; numSpace < nbYearsForCurrentSummary; ++numSpace)
223 pValuesForTheCurrentYear[numSpace]);
227 NextType::computeSummary(numSpaceToYear, nbYearsForCurrentSummary);
230 void hourBegin(
unsigned int hourInTheYear)
233 NextType::hourBegin(hourInTheYear);
236 void hourForEachArea(
State& state,
unsigned int numSpace)
238 auto area = state.area;
239 auto& thermal = state.thermal;
241 pValuesForTheCurrentYear[numSpace][state.hourInTheYear] +=
243 (state.hourlyResults->ValeursHorairesDeDefaillancePositive[state.hourInTheWeek]
244 * area->thermal.unsuppliedEnergyCost)
245 + ((state.hourlyResults->ValeursHorairesDeDefaillanceNegative[state.hourInTheWeek]
246 + state.resSpilled.entry[area->index][state.hourInTheWeek])
247 * area->thermal.spilledEnergyCost);
250 pValuesForTheCurrentYear[numSpace].hour[state.hourInTheYear]
251 += state.problemeHebdo->CaracteristiquesHydrauliques[state.area->index]
252 .WeeklyWaterValueStateRegular
253 * (state.hourlyResults->TurbinageHoraire[state.hourInTheWeek]
254 - area->hydro.pumpingEfficiency
255 * state.hourlyResults->PompageHoraire[state.hourInTheWeek]);
258 for (
auto& cluster: area->thermal.list.each_enabled())
260 pValuesForTheCurrentYear[numSpace][state.hourInTheYear]
261 += thermal[area->index].thermalClustersOperatingCost[cluster->enabledIndex];
265 NextType::hourForEachArea(state, numSpace);
268 Antares::Memory::Stored<double>::ConstReturnType retrieveRawHourlyValuesForCurrentYear(
270 unsigned int numSpace)
const
272 return pValuesForTheCurrentYear[numSpace].hour;
275 void localBuildAnnualSurveyReport(SurveyResults&
results,
278 unsigned int numSpace)
const
281 results.isCurrentVarNA = AncestorType::isNonApplicable;
283 if (AncestorType::isPrinted[0])
289 pValuesForTheCurrentYear[numSpace]
290 .template buildAnnualSurveyReport<VCardType>(
results, fileLevel, precision);
296 typename VCardType::IntermediateValuesType pValuesForTheCurrentYear;
297 unsigned int pNbYearsParallel;