Antares Simulator
Power System Simulator
IWriter.h
1 
2 // Copyright 2007-2025, RTE (https://www.rte-france.com)
3 // See AUTHORS.txt
4 // SPDX-License-Identifier: MPL-2.0
5 // This file is part of Antares-Simulator,
6 // Adequacy and Performance assessment for interconnected energy networks.
7 //
8 // Antares_Simulator is free software: you can redistribute it and/or modify
9 // it under the terms of the Mozilla Public Licence 2.0 as published by
10 // the Mozilla Foundation, either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // Antares_Simulator is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // Mozilla Public Licence 2.0 for more details.
17 //
18 // You should have received a copy of the Mozilla Public Licence 2.0
19 // along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20 
21 #pragma once
22 
23 #include "data.h"
24 
25 namespace Antares::Optimization
26 {
27 class VariableDictionary;
28 }
29 
30 namespace Antares::Optimisation::LinearProblemMpsolverImpl
31 {
32 class OrtoolsLinearProblem;
33 class OrtoolsMipSolution;
34 } // namespace Antares::Optimisation::LinearProblemMpsolverImpl
35 
36 namespace Antares::Optimisation
37 {
38 class OptimEntityContainer;
39 
40 namespace LinearProblemApi
41 {
42 class IMipVariable;
43 class ILinearProblem;
44 class ILinearProblemData;
45 class IMipSolution;
46 class FillContext;
47 } // namespace LinearProblemApi
48 } // namespace Antares::Optimisation
49 
50 namespace Antares::ModelerStudy::SystemModel
51 {
52 class Component;
53 }
54 
55 namespace Antares::Solver
56 {
57 // TODO this class needs to be revamped
58 class IWriter
59 {
60 public:
61  virtual ~IWriter() = default;
62  virtual void init(const std::string& simulationId) = 0;
63  virtual void writeSimulationTable(
66  const Antares::Modeler::Data& modelerData,
67  const Optimisation::OptimEntityContainer& variableContainer,
68  const Optimisation::LinearProblemApi::FillContext& fillContext) const
69  = 0;
70  virtual const std::filesystem::path& outputPath() const = 0;
71 };
72 } // namespace Antares::Solver
Context for filling linear problem data. Contains temporal information.
Definition: ILinearProblemData.h:35
Definition: OptimEntityContainer.h:46
Definition: IWriter.h:59
Definition: VariableNode.h:9
Definition: data.h:38