Skip to content
Snippets Groups Projects

Added engine_efficiency capability

Merged Maren Huxel requested to merge feature/engine_efficiency into develop
Files
4
@@ -37,19 +37,26 @@ namespace design
{
void Rubber::initialize()
{
/* Initialize the EngineDesigner */
EngineDesigner::initialize();
/* Check whether the engine efficiency technology factor is 1.0 */
const auto efficiency_factor = static_cast<float>(
this->configuration()->at(
"module_configuration_file/program_settings/technology_factors/engine_efficiency/value"));
if (std::abs(efficiency_factor - 1.0) > 1e-6)
{
/** @todo Actually implement the change in the engine efficiency factor. */
throw std::runtime_error("[design::Rubber::initialize()] The engine efficiency technology factor is not 1.0. Changing this factor is not yet supported!");
std::filesystem::path path_to_csv = EngineDesigner::engine_database();
std::string engine_name = this->configuration()->at("module_configuration_file/program_settings/propulsion/engine/Rubber/engine_model/value");
std::string added_path = (std::filesystem::path(path_to_csv) / engine_name / engine_name).string();
DeckData deck_data = DeckData::from_csv(added_path.append("_WF.csv"));
DeckData deck_data_scaled = EngineDesigner::scale_deck_data_values(deck_data, EngineDesigner::technology_factor("engine_efficiency"));
EngineDesigner::write_deck_value(deck_data_scaled, engine_name);
utility::print(std::format(
"Design with engine efficiency factor = {:.2f}", efficiency_factor), Level::Info);
}
/* Initialize the EngineDesigner */
EngineDesigner::initialize();
/* Loop through all propulsion settings */
for (const auto &propulsion : this->configuration()->getVector("module_configuration_file/program_settings/propulsion"))
{
Loading