Skip to content

Commit

Permalink
move optimisation sources
Browse files Browse the repository at this point in the history
  • Loading branch information
pet-mit committed Feb 4, 2025
1 parent 7d3ce4c commit daa1cb4
Show file tree
Hide file tree
Showing 73 changed files with 355 additions and 377 deletions.
9 changes: 5 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -271,10 +271,11 @@ if(BUILD_UI)
add_subdirectory(ui) #all antares ui libs + antares simulator
endif()

add_subdirectory(expressions) #modeler expressions (AST)
add_subdirectory(study) #antares study model
add_subdirectory(solver) #antares solver and all associated libs
add_subdirectory(analyzer) #antares analyser
add_subdirectory(expressions) #modeler expressions (AST)
add_subdirectory(optimisation) #optimisation APIs
add_subdirectory(study) #antares study model
add_subdirectory(solver) #antares solver and all associated libs
add_subdirectory(analyzer) #antares analyser

# Tools
if (BUILD_TOOLS)
Expand Down
3 changes: 3 additions & 0 deletions src/optimisation/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
add_subdirectory(linear-problem-data-impl)
add_subdirectory(linear-problem-api)
add_subdirectory(linear-problem-mpsolver-impl)
25 changes: 25 additions & 0 deletions src/optimisation/linear-problem-api/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
set(PROJ linear-problem-api)

set(SRC_API
include/antares/optimisation/linear-problem-api/mipVariable.h
include/antares/optimisation/linear-problem-api/mipSolution.h
include/antares/optimisation/linear-problem-api/mipConstraint.h
include/antares/optimisation/linear-problem-api/hasBounds.h
include/antares/optimisation/linear-problem-api/hasName.h
include/antares/optimisation/linear-problem-api/ILinearProblemData.h
include/antares/optimisation/linear-problem-api/linearProblem.h
include/antares/optimisation/linear-problem-api/linearProblemFiller.h
include/antares/optimisation/linear-problem-api/linearProblemBuilder.h
linearProblemBuilder.cpp
)

add_library(${PROJ} ${SRC_API})
add_library(Antares::${PROJ} ALIAS ${PROJ})

set_target_properties(${PROJ} PROPERTIES LINKER_LANGUAGE CXX)


target_include_directories(${PROJ}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <string>

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

class ILinearProblemData
Expand All @@ -15,4 +15,4 @@ class ILinearProblemData
= 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

#pragma once

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

/// Used to handle bounds for IMipVariable and IMipConstraint
Expand All @@ -39,4 +39,4 @@ class IHasBounds
virtual double getUb() const = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

#include <string>

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

/// Inherited by IMipVariable and IMipConstraint
Expand All @@ -34,4 +34,4 @@ class IHasName
virtual const std::string& getName() const = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "mipVariable.h"

/// Namespace for the classes related to the linear problem API
namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

/**
Expand Down Expand Up @@ -111,4 +111,4 @@ class ILinearProblem
virtual double infinity() const = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

#include "linearProblemFiller.h"

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

class LinearProblemBuilder
Expand All @@ -38,4 +38,4 @@ class LinearProblemBuilder
const std::vector<LinearProblemFiller*>& fillers_;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
#include <memory>
#include <unordered_map>

#include <antares/solver/modeler/api/ILinearProblemData.h>
#include <antares/solver/modeler/api/linearProblem.h>
#include <antares/optimisation/linear-problem-api/ILinearProblemData.h>
#include <antares/optimisation/linear-problem-api/linearProblem.h>

namespace Antares::Expressions::Visitors
{
Expand All @@ -37,7 +37,7 @@ namespace Antares::Expressions::Nodes
class Node;
}

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{
struct FillContext
{
Expand Down Expand Up @@ -80,4 +80,4 @@ class LinearProblemFiller
virtual ~LinearProblemFiller() = default;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

#include "mipVariable.h"

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

class IMipConstraint: public IHasBounds, public IHasName
Expand All @@ -34,4 +34,4 @@ class IMipConstraint: public IHasBounds, public IHasName
virtual double getCoefficient(IMipVariable* var) = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

#include "mipVariable.h"

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

enum class MipStatus
Expand Down Expand Up @@ -56,4 +56,4 @@ class IMipSolution
virtual const std::map<std::string, double>& getOptimalValues() const = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "hasBounds.h"
#include "hasName.h"

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

class IMipVariable: public IHasBounds, public IHasName
Expand All @@ -33,4 +33,4 @@ class IMipVariable: public IHasBounds, public IHasName
virtual bool isInteger() const = 0;
};

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@

#include <algorithm>

#include <antares/solver/modeler/api/linearProblemBuilder.h>
#include <antares/optimisation/linear-problem-api/linearProblemBuilder.h>

namespace Antares::Solver::Modeler::Api
namespace Antares::Optimisation::LinearProblemApi
{

LinearProblemBuilder::LinearProblemBuilder(const std::vector<LinearProblemFiller*>& fillers):
Expand All @@ -41,4 +41,4 @@ void LinearProblemBuilder::build(ILinearProblem& pb, ILinearProblemData& data, F
[&](const auto& filler) { filler->addObjective(pb, data, ctx); });
}

} // namespace Antares::Solver::Modeler::Api
} // namespace Antares::Optimisation::LinearProblemApi
32 changes: 32 additions & 0 deletions src/optimisation/linear-problem-data-impl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
set(SRC_DATA_SERIES
include/antares/optimisation/linear-problem-data-impl/dataSeries.h

include/antares/optimisation/linear-problem-data-impl/timeSeriesSet.h
timeSeriesSet.cpp
timeSeriesSetExceptions.cpp

include/antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h
dataSeriesRepo.cpp
dataSeriesRepoExceptions.cpp

include/antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h
scenarioGroupRepo.cpp
scenarioGroupRepoExceptions.cpp

include/antares/optimisation/linear-problem-data-impl/linearProblemData.h
linearProblemData.cpp
)

add_library(linear-problem-data-impl ${SRC_DATA_SERIES})
set_target_properties(linear-problem-data-impl PROPERTIES LINKER_LANGUAGE CXX)

target_link_libraries(linear-problem-data-impl
PUBLIC
linear-problem-api
)

target_include_directories(linear-problem-data-impl
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h"
#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{
void DataSeriesRepository::addDataSeries(std::unique_ptr<IDataSeries> dataSeries)
{
Expand All @@ -24,4 +24,4 @@ IDataSeries& DataSeriesRepository::getDataSeries(const std::string& setId)
}
return *(dataSeries_[setId]);
}
} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include <string>

#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h"
#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{
DataSeriesRepository::Empty::Empty():
std::invalid_argument("Data series repo is empty, and somebody requests data from it")
Expand All @@ -19,4 +19,4 @@ DataSeriesRepository::DataSeriesAlreadyExists::DataSeriesAlreadyExists(const std
{
}

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <string>

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{

class IDataSeries
Expand All @@ -25,4 +25,4 @@ class IDataSeries
std::string name_;
};

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include "dataSeries.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{

class DataSeriesRepository
Expand Down Expand Up @@ -41,4 +41,4 @@ class DataSeriesRepository
};
};

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@
#include <memory>
#include <string>

#include "antares/solver/modeler/api/ILinearProblemData.h"
#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h"
#include "antares/solver/modeler/dataSeries/scenarioGroupRepo.h"
#include "antares/optimisation/linear-problem-api/ILinearProblemData.h"
#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h"
#include "antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{

class LinearProblemData: public Api::ILinearProblemData
class LinearProblemData: public LinearProblemApi::ILinearProblemData
{
public:
double getData(const std::string& dataSetId,
Expand All @@ -43,8 +43,8 @@ class LinearProblemData: public Api::ILinearProblemData
void addDataSeries(std::unique_ptr<IDataSeries> dataSeries);

private:
DataSeries::DataSeriesRepository dataSeriesRepository_;
DataSeries::ScenarioGroupRepository groupRepository_;
DataSeriesRepository dataSeriesRepository_;
ScenarioGroupRepository groupRepository_;
};

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <stdexcept>
#include <string>

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{
class ScenarioGroupRepository
{
Expand Down Expand Up @@ -36,4 +36,4 @@ class ScenarioGroupRepository
explicit ScenarioNotExist(const std::string& groupId, unsigned scenario);
};
};
} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include "dataSeries.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{
class TimeSeriesSet: public IDataSeries
{
Expand Down Expand Up @@ -45,4 +45,4 @@ class TimeSeriesSet: public IDataSeries
};
};

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
* along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
*/

#include "antares/solver/modeler/dataSeries/linearProblemData.h"
#include "antares/optimisation/linear-problem-data-impl/linearProblemData.h"

namespace Antares::Solver::Modeler::DataSeries
namespace Antares::Optimisation::LinearProblemDataImpl
{

void LinearProblemData::addScenarioGroup(const std::string& groupId,
Expand All @@ -44,4 +44,4 @@ double LinearProblemData::getData(const std::string& dataSetId,
return dataSeriesRepository_.getDataSeries(dataSetId).getData(rank, hour);
}

} // namespace Antares::Solver::Modeler::DataSeries
} // namespace Antares::Optimisation::LinearProblemDataImpl
Loading

0 comments on commit daa1cb4

Please sign in to comment.