Antares Simulator
Power System Simulator
generation.h File Reference

Generic renewable generation variables for solar and wind power. More...

#include <algorithm>
#include <string_view>
#include <antares/study/area/area.h>
#include "timeseries_base.h"

Go to the source code of this file.

Classes

struct  Antares::Solver::Variable::Economy::SolarTag
 Tag type for solar generation variables. More...
 
struct  Antares::Solver::Variable::Economy::WindTag
 Tag type for wind generation variables. More...
 
struct  Antares::Solver::Variable::Economy::SolarTraits
 Traits for solar generation time series. More...
 
struct  Antares::Solver::Variable::Economy::WindTraits
 Traits for wind generation time series. More...
 
struct  Antares::Solver::Variable::Economy::GenerationTraits< SolarTag >
 Specialization mapping SolarTag to SolarTraits. More...
 
struct  Antares::Solver::Variable::Economy::GenerationTraits< WindTag >
 Specialization mapping WindTag to WindTraits. More...
 
class  Antares::Solver::Variable::Economy::TimeSeriesValuesGenerationImpl< TraitsType, NextT >
 Common implementation for renewable generation time series. More...
 

Typedefs

VCard Type Aliases
using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesSolar = VCardTimeSeriesBase< SolarTraits >
 VCard for solar generation variables. More...
 
using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesWind = VCardTimeSeriesBase< WindTraits >
 VCard for wind generation variables. More...
 
Legacy Compatibility Layer
template<class Tag >
using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesGeneration = VCardTimeSeriesBase< GenerationTraits< Tag > >
 Legacy VCard template using tag-based traits. More...
 
Type Aliases for Backward Compatibility
template<class Tag , class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesGeneration = TimeSeriesValuesGenerationImpl< GenerationTraits< Tag >, NextT >
 Legacy generation variable template using tags. More...
 
template<class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesSolar = TimeSeriesValuesGenerationImpl< SolarTraits, NextT >
 Solar generation time series variable. More...
 
template<class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesWind = TimeSeriesValuesGenerationImpl< WindTraits, NextT >
 Wind generation time series variable. More...
 

Detailed Description

Generic renewable generation variables for solar and wind power.

  • This file provides a unified implementation for renewable generation time series variables (solar and wind). It demonstrates the practical application of the time series base framework defined in timeseries_base.h.

Generation-Specific Behavior:

The generation variables have special behavior for renewable energy:

  • Data is copied at year beginning if aggregation is enabled
  • No hourly processing needed (values pre-aggregated)
  • Respects study configuration for renewable generation aggregation
See also
timeseries_base.h for the base framework
load.h, hydro.h for other time series implementations

Typedef Documentation

◆ TimeSeriesValuesGeneration

template<class Tag , class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesGeneration = typedef TimeSeriesValuesGenerationImpl<GenerationTraits<Tag>, NextT>

Legacy generation variable template using tags.

  • Provides backward compatibility for existing code using the tag-based approach. Maps tags to the new traits-based implementation.
  • Template Parameters
    TagGeneration type tag (SolarTag or WindTag)
    NextTNext variable in the processing chain
  • ## Usage:
    // Legacy approach (maintained for compatibility)
    TimeSeriesValuesGeneration<SolarTag> solar;
    TimeSeriesValuesGeneration<WindTag> wind;
  • ## Migration Path: For new code, prefer the direct trait-based approach:
    // Modern approach (recommended)
    TimeSeriesValuesSolar<> solar;
    TimeSeriesValuesWind<> wind;

◆ TimeSeriesValuesSolar

template<class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesSolar = typedef TimeSeriesValuesGenerationImpl<SolarTraits, NextT>

Solar generation time series variable.

  • Modern, direct implementation for solar generation time series. Recommended for new code as it provides better type safety and clearer intent than the tag-based approach.
  • Template Parameters
    NextTNext variable in the processing chain
  • ## Features:
  • Type-safe access to solar data via SolarTraits::areaMember
  • Optimized bulk data copying for renewable generation
  • Proper integration with simulation lifecycle
  • Thread-safe parallel processing support
  • ## Usage:
    // Standalone solar variable
    TimeSeriesValuesSolar<> solarOnly;
    // Chained with other variables
    TimeSeriesValuesSolar<TimeSeriesValuesWind<>> solarAndWind;

◆ TimeSeriesValuesWind

template<class NextT = Container::EndOfList>
using Antares::Solver::Variable::Economy::TimeSeriesValuesWind = typedef TimeSeriesValuesGenerationImpl<WindTraits, NextT>

Wind generation time series variable.

  • Modern, direct implementation for wind generation time series. Recommended for new code as it provides better type safety and clearer intent than the tag-based approach.
  • Template Parameters
    NextTNext variable in the processing chain
  • ## Features:
  • Type-safe access to wind data via WindTraits::areaMember
  • Optimized bulk data copying for renewable generation
  • Proper integration with simulation lifecycle
  • Thread-safe parallel processing support
  • ## Usage:
    // Standalone wind variable
    TimeSeriesValuesWind<> windOnly;
    * // Chained with other variables
    TimeSeriesValuesWind<TimeSeriesValuesSolar<>> windAndSolar;

◆ VCardTimeSeriesValuesGeneration

template<class Tag >
using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesGeneration = typedef VCardTimeSeriesBase<GenerationTraits<Tag> >

Legacy VCard template using tag-based traits.

  • Provides backward compatibility for code using the old tag-based approach. New code should use VCardTimeSeriesValuesSolar/Wind directly.
  • Template Parameters
    TagGeneration tag type (SolarTag or WindTag)

◆ VCardTimeSeriesValuesSolar

using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesSolar = typedef VCardTimeSeriesBase<SolarTraits>

VCard for solar generation variables.

  • Provides metadata and configuration for solar generation time series. Inherits common properties from TimeSeriesTraits and adds solar-specific information from SolarTraits.

◆ VCardTimeSeriesValuesWind

using Antares::Solver::Variable::Economy::VCardTimeSeriesValuesWind = typedef VCardTimeSeriesBase<WindTraits>

VCard for wind generation variables.

  • Provides metadata and configuration for wind generation time series. Inherits common properties from TimeSeriesTraits and adds wind-specific information from WindTraits.