1#ifndef SIMULATION_CLASS_UNIT_TESTING_H
2#define SIMULATION_CLASS_UNIT_TESTING_H
38 std::string m_init_str{
"InitChain"};
39 std::string m_preTs_str{
"PreTimeStepChain"};
40 std::string m_postTs_str{
"PostTimeStepChain"};
41 std::string m_postNonLinIter_str{
"PostNonLinIterChain"};
42 std::string m_output_str{
"OutputChain"};
45 std::vector<std::shared_ptr<GenericManagingModule<T>>> m_all_modules{};
46 std::vector<std::shared_ptr<GenericSubmodule<T>>> m_all_submodules{};
54 (std::filesystem::path(
PROJECT_ROOT) /
"build/tests/ini_files/");
58 std::vector<std::string>
lines;
64 if (
line.rfind(
"ini_folder_path =", 0) == 0)
73 for (
const auto&
l :
lines)
87 this->m_simulation_config.loadUserInput(
88 this->m_simulation_config.getStringParameters(
"ini_folder_path") +
user_ini);
94 this->setAbsoluteDefaultIniPath();
108 std::unique_ptr<ShapeFactory<T>>
shape_creator{std::make_unique<ShapeFactory<T>>(
109 this, this->m_simulation_config.getBoolParameters(
"use_shape_file"),
110 this->m_simulation_config.getStringParameters(
"spatial_dimension"))};
112 std::unique_ptr<GridFactory<T>>
grid_creator{std::make_unique<GridFactory<T>>(
114 this->m_simulation_config.getStringParameters(
"spatial_dimension"))};
117 this->m_field_map.insert(
118 {
"Temperature", std::valarray<double>(
119 this->m_simulation_config.getDoubleParameters(
"initial_temperature"),
120 this->m_simulation_config.getIntParameters(
"numerical_layers")
121 *
this->m_simulation_config.getIntParameters(
"number_of_facets"))});
126 this, this->m_simulation_config.getStringVectorParameters(
"managing_modules"));
136 m_global_chain.autoLoader(
137 m_all_modules, this->m_simulation_config.getStringVectorParameters(
"managing_modules"));
139 catch (
const std::exception&
e)
141 std::cerr <<
"[Warning] Failed to load managing modules from config: " <<
e.what() <<
"\n"
142 <<
"Falling back to loading all modules.\n";
143 m_global_chain.autoLoader(m_all_modules);
146 runSetup<T>(m_all_modules, m_all_submodules, m_global_chain.getManagingModuleNames());
155 std::unique_ptr<ShapeFactory<T>>
shape_creator{std::make_unique<ShapeFactory<T>>(
156 this, this->m_simulation_config.getBoolParameters(
"use_shape_file"),
157 this->m_simulation_config.getStringParameters(
"spatial_dimension"))};
159 std::unique_ptr<GridFactory<T>>
grid_creator{std::make_unique<GridFactory<T>>(
161 this->m_simulation_config.getStringParameters(
"spatial_dimension"))};
164 this->m_field_map.insert(
165 {
"Temperature", std::valarray<double>(
166 this->m_simulation_config.getDoubleParameters(
"initial_temperature"),
167 this->m_simulation_config.getIntParameters(
"numerical_layers")
168 *
this->m_simulation_config.getIntParameters(
"number_of_facets"))});
173 this, this->m_simulation_config.getStringVectorParameters(
"managing_modules"));
183 m_global_chain.autoLoader(
184 m_all_modules, this->m_simulation_config.getStringVectorParameters(
"managing_modules"));
186 catch (
const std::exception&
e)
188 std::cerr <<
"[Warning] Failed to load managing modules from config: " <<
e.what() <<
"\n"
189 <<
"Falling back to loading all modules.\n";
190 m_global_chain.autoLoader(m_all_modules);
193 runSetup<T>(m_all_modules, m_all_submodules, m_global_chain.getManagingModuleNames());
225 this->setInitChainStr();
226 m_global_chain.runChain(this->m_current_position);
Concrete implementation of a matrix class representing a Compressed Sparse Rows (CSR) matrix....
Definition CsrMatrix.h:35
CsrSparseMatrix()
Constructor for an empty CsrSparseMatrix object. Leaves all storage arrays empty but sets the flag to...
Definition CsrMatrix.h:92
std::pair< int, int > size() const
Function that returns the size of the matrix as a pair in (rows, columns) format.
Definition GenericMatrix.h:118
static std::vector< std::shared_ptr< GenericManagingModule< T > > > createAllSelectedManagingModules(SimulationClassBase< T > *sim_pointer, const std::vector< std::string > &list_of_mananging_modules_to_load)
Only creates instances of managing modules that have been specified by the user. (This allows only ha...
Definition ModuleFactory.h:195
static std::vector< std::shared_ptr< GenericSubmodule< T > > > createAllSelectedSubmodules(SimulationClassBase< T > *sim_pointer, const std::vector< std::shared_ptr< GenericManagingModule< T > > > &loaded_managing_modules)
Only creates submodules that are used within the simulation. Iteratively requests the submodule list ...
Definition ModuleFactory.h:225
static std::vector< std::shared_ptr< GenericManagingModule< T > > > createAllManagingModules(SimulationClassBase< T > *sim_pointer)
Creates every module in the module registry.
Definition ModuleFactory.h:153
Definition SimulationClassBase.h:19
Definition SimulationClassUnitTesting.h:22
bool runModuleCheck(const std::vector< std::string > &managing_modules, const std::vector< std::string > &submodules)
Definition SimulationClassUnitTesting.h:151
SimulationClassUnitTesting()
Definition SimulationClassUnitTesting.h:92
int runInitChain()
Definition SimulationClassUnitTesting.h:223
void setAbsoluteDefaultIniPath()
Definition SimulationClassUnitTesting.h:50
void setUserIni(const std::string &user_ini) override
Definition SimulationClassUnitTesting.h:85
int run() override
Definition SimulationClassUnitTesting.h:105
~SimulationClassUnitTesting() override=default