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 = state.study.runtime.rangeLimits.hour[Data::rangeBegin];
193 i <= state.study.runtime.rangeLimits.hour[Data::rangeEnd];
196 pValuesForTheCurrentYear[numSpace][i] += state.thermalClusterOperatingCostForYear[i];
198 state.annualSystemCost += state.thermalClusterOperatingCostForYear[i];
202 NextType::yearEndBuildForEachThermalCluster(state, year, numSpace);
205 void yearEndBuild(
State& state,
unsigned int year,
unsigned int numSpace)
208 NextType::yearEndBuild(state, year, numSpace);
211 void yearEnd(
unsigned int year,
unsigned int numSpace)
214 pValuesForTheCurrentYear[numSpace].computeStatisticsForTheCurrentYear();
217 NextType::yearEnd(year, numSpace);
220 void computeSummary(std::map<unsigned int, unsigned int>& numSpaceToYear,
221 unsigned int nbYearsForCurrentSummary)
223 for (
unsigned int numSpace = 0; numSpace < nbYearsForCurrentSummary; ++numSpace)
227 pValuesForTheCurrentYear[numSpace]);
231 NextType::computeSummary(numSpaceToYear, nbYearsForCurrentSummary);
234 void hourBegin(
unsigned int hourInTheYear)
237 NextType::hourBegin(hourInTheYear);
240 void hourForEachArea(
State& state,
unsigned int numSpace)
242 const double costForSpilledOrUnsuppliedEnergy =
244 (state.hourlyResults->ValeursHorairesDeDefaillancePositive[state.hourInTheWeek]
245 * state.area->thermal.unsuppliedEnergyCost)
246 + (state.hourlyResults->ValeursHorairesDeDefaillanceNegative[state.hourInTheWeek]
247 * state.area->thermal.spilledEnergyCost)
249 + (state.hourlyResults->valeurH2oHoraire[state.hourInTheWeek]
250 * (state.hourlyResults->TurbinageHoraire[state.hourInTheWeek]
251 - state.area->hydro.pumpingEfficiency
252 * state.hourlyResults->PompageHoraire[state.hourInTheWeek]));
254 pValuesForTheCurrentYear[numSpace][state.hourInTheYear] += costForSpilledOrUnsuppliedEnergy;
257 state.annualSystemCost += costForSpilledOrUnsuppliedEnergy;
260 NextType::hourForEachArea(state, numSpace);
263 Antares::Memory::Stored<double>::ConstReturnType retrieveRawHourlyValuesForCurrentYear(
265 unsigned int numSpace)
const
267 return pValuesForTheCurrentYear[numSpace].hour;
270 void localBuildAnnualSurveyReport(SurveyResults&
results,
273 unsigned int numSpace)
const
276 results.isCurrentVarNA = AncestorType::isNonApplicable;
278 if (AncestorType::isPrinted[0])
283 pValuesForTheCurrentYear[numSpace]
284 .template buildAnnualSurveyReport<VCardType>(
results, fileLevel, precision);
290 typename VCardType::IntermediateValuesType pValuesForTheCurrentYear;
291 unsigned int pNbYearsParallel;