Antares Simulator
Power System Simulator
FillerContext.h
1 #pragma once
2 
3 #include "antares/modeler-optimisation-container/OptimEntityContainer.h"
4 #include "antares/optimisation/linear-problem-api/linearProblemFiller.h"
5 
7 {
8 
10 {
11 public:
12  explicit VarFillerContext(OptimEntityContainer& optimEntityContainer):
13  optimEntityContainer_(optimEntityContainer)
14  {
15  }
16 
17  void addVariables(const FillContext& ctx) override;
18  void addConstraints(const FillContext& ctx) override;
19  void addObjectives(const FillContext& ctx) override;
20 
21  std::array<std::array<int, 3>, 5> timeseries = {
22  {{1, 3, 5}, {2, 4, 6}, {7, 9, 11}, {8, 10, 12}, {13, 15, 17}}};
23  OptimEntityContainer& optimEntityContainer_;
24 };
25 
26 void VarFillerContext::addVariables([[maybe_unused]] const FillContext& ctx)
27 {
28  for (unsigned timestep = ctx.getLocalFirstTimeStep(); timestep < ctx.getLocalLastTimeStep();
29  timestep++)
30  {
31  for (unsigned scenario: ctx.getSelectedScenarios())
32  {
33  optimEntityContainer_.Problem().addNumVariable(timeseries[timestep][scenario],
34  timeseries[timestep][scenario],
35  "variable-ts" + std::to_string(timestep)
36  + "-sc" + std::to_string(scenario));
37  }
38  }
39 }
40 
41 void VarFillerContext::addConstraints([[maybe_unused]] const FillContext& ctx)
42 {
43 }
44 
45 void VarFillerContext::addObjectives([[maybe_unused]] const FillContext& ctx)
46 {
47 }
48 
49 } // namespace Antares::Optimisation::LinearProblemApi
Context for filling linear problem data. Contains temporal information.
Definition: ILinearProblemData.h:35
virtual IMipVariable * addNumVariable(double lb, double ub, const std::string &name)=0
Create a continuous variable.
Definition: OptimEntityContainer.h:46
Namespace for the classes related to the linear problem API.
Definition: SimulationTableGenerator.h:41