Antares Simulator
Power System Simulator
OneVarFiller.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 
9 class OneVarFiller final: public LinearProblemFiller
10 {
11 public:
12  explicit OneVarFiller(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 private:
22  std::string added_var_name_ = "var-by-OneVarFiller";
23  OptimEntityContainer& optimEntityContainer_;
24 };
25 
26 void OneVarFiller::addVariables([[maybe_unused]] const FillContext& ctx)
27 {
28  optimEntityContainer_.Problem().addNumVariable(0, 1, added_var_name_);
29 }
30 
31 void OneVarFiller::addConstraints([[maybe_unused]] const FillContext& ctx)
32 {
33 }
34 
35 void OneVarFiller::addObjectives([[maybe_unused]] const FillContext& ctx)
36 {
37  auto* var = optimEntityContainer_.Problem().lookupVariable(added_var_name_);
38  optimEntityContainer_.Problem().setObjectiveCoefficient(var, 1);
39 }
40 
41 } // namespace Antares::Optimisation::LinearProblemApi
Context for filling linear problem data. Contains temporal information.
Definition: ILinearProblemData.h:35
virtual void setObjectiveCoefficient(IMipVariable *var, double coefficient)=0
Set the objective coefficient for a given variable.
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