From 9fd536ccf36982a71b459e3e96eb136b217f0204 Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Mon, 8 Aug 2022 11:44:55 +0300 Subject: [PATCH] Added linear and non linear chronos euler simulation model classes in order to be able to out-of-the-box use them with a factory class --- chronoseulerlinearsimulationmodel.cpp | 13 +++++++++++++ chronoseulerlinearsimulationmodel.hpp | 15 +++++++++++++++ chronoseulernonlinearsimulationmodel.cpp | 13 +++++++++++++ chronoseulernonlinearsimulationmodel.hpp | 16 ++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 chronoseulerlinearsimulationmodel.cpp create mode 100644 chronoseulerlinearsimulationmodel.hpp create mode 100644 chronoseulernonlinearsimulationmodel.cpp create mode 100644 chronoseulernonlinearsimulationmodel.hpp diff --git a/chronoseulerlinearsimulationmodel.cpp b/chronoseulerlinearsimulationmodel.cpp new file mode 100644 index 0000000..538641a --- /dev/null +++ b/chronoseulerlinearsimulationmodel.cpp @@ -0,0 +1,13 @@ +#include "chronoseulerlinearsimulationmodel.hpp" + +ChronosEulerLinearSimulationModel::ChronosEulerLinearSimulationModel() {} + +SimulationResults ChronosEulerLinearSimulationModel::executeSimulation( + const std::shared_ptr &pJob) { + ChronosEulerSimulationModel simulationModel; + simulationModel.settings.analysisType = + ChronosEulerSimulationModel::Settings::AnalysisType::Linear; + auto simulationResults = simulationModel.executeSimulation(pJob); + simulationResults.simulationModelUsed = label; + return simulationResults; +} diff --git a/chronoseulerlinearsimulationmodel.hpp b/chronoseulerlinearsimulationmodel.hpp new file mode 100644 index 0000000..d1b7420 --- /dev/null +++ b/chronoseulerlinearsimulationmodel.hpp @@ -0,0 +1,15 @@ +#ifndef CHRONOSEULERLINEARSIMULATIONMODEL_HPP +#define CHRONOSEULERLINEARSIMULATIONMODEL_HPP + +#include "chronoseulersimulationmodel.hpp" + +class ChronosEulerLinearSimulationModel : public ChronosEulerSimulationModel { +public: + ChronosEulerLinearSimulationModel(); + SimulationResults + executeSimulation(const std::shared_ptr &pJob); + inline static std::string label{"Linear_" + + ChronosEulerSimulationModel::label}; +}; + +#endif // CHRONOSEULERLINEARSIMULATIONMODEL_HPP diff --git a/chronoseulernonlinearsimulationmodel.cpp b/chronoseulernonlinearsimulationmodel.cpp new file mode 100644 index 0000000..53976b1 --- /dev/null +++ b/chronoseulernonlinearsimulationmodel.cpp @@ -0,0 +1,13 @@ +#include "chronoseulernonlinearsimulationmodel.hpp" + +ChronosEulerNonLinearSimulationModel::ChronosEulerNonLinearSimulationModel() {} + +SimulationResults ChronosEulerNonLinearSimulationModel::executeSimulation( + const std::shared_ptr &pJob) { + ChronosEulerSimulationModel simulationModel; + simulationModel.settings.analysisType = + ChronosEulerSimulationModel::Settings::AnalysisType::NonLinear; + auto simulationResults = simulationModel.executeSimulation(pJob); + simulationResults.simulationModelUsed = label; + return simulationResults; +} diff --git a/chronoseulernonlinearsimulationmodel.hpp b/chronoseulernonlinearsimulationmodel.hpp new file mode 100644 index 0000000..205e8cd --- /dev/null +++ b/chronoseulernonlinearsimulationmodel.hpp @@ -0,0 +1,16 @@ +#ifndef CHRONOSEULERNONLINEARSIMULATIONMODEL_HPP +#define CHRONOSEULERNONLINEARSIMULATIONMODEL_HPP + +#include "chronoseulersimulationmodel.hpp" + +class ChronosEulerNonLinearSimulationModel + : public ChronosEulerSimulationModel { +public: + ChronosEulerNonLinearSimulationModel(); + SimulationResults + executeSimulation(const std::shared_ptr &pJob); + inline static std::string label{"NonLinear_" + + ChronosEulerSimulationModel::label}; +}; + +#endif // CHRONOSEULERNONLINEARSIMULATIONMODEL_HPP