From bfa0d6753f179fe5f435fa827af3a36081326213 Mon Sep 17 00:00:00 2001 From: peters <peters@irmb.tu-bs.de> Date: Thu, 24 Jun 2021 17:07:47 +0200 Subject: [PATCH] Extend parametertest until multikernel input --- src/basics/config/ConfigurationFile.cpp | 8 ++++++++ src/basics/config/ConfigurationFile.h | 10 ++++------ src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp | 5 ++--- src/gpu/VirtualFluids_GPU/Parameter/Parameter.h | 2 +- src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp | 10 ++++++++++ src/gpu/VirtualFluids_GPU/Parameter/parameterTest.cfg | 5 +++++ 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/basics/config/ConfigurationFile.cpp b/src/basics/config/ConfigurationFile.cpp index eae1a9226..026d13e15 100644 --- a/src/basics/config/ConfigurationFile.cpp +++ b/src/basics/config/ConfigurationFile.cpp @@ -65,6 +65,14 @@ bool ConfigurationFile::load(const std::string& file) return true; } + +////////////////////////////////////////////////////////////////////////// +template<> +bool ConfigurationFile::fromString<bool>(const std::string& str) const +{ + return str == "true"; +} + ////////////////////////////////////////////////////////////////////////// bool ConfigurationFile::contains(const std::string& key) const { diff --git a/src/basics/config/ConfigurationFile.h b/src/basics/config/ConfigurationFile.h index 4f608faab..8988d1065 100644 --- a/src/basics/config/ConfigurationFile.h +++ b/src/basics/config/ConfigurationFile.h @@ -103,17 +103,15 @@ std::vector<T> ConfigurationFile::getVector(const std::string& key) const template<class T> T ConfigurationFile::fromString(const std::string& str) const { - //boolean hack - if (str == "true") - return true; - else if (str == "false") - return false; - ////////////// std::istringstream stream(str); T t; stream >> t; return t; } + +template<> +bool ConfigurationFile::fromString<bool>(const std::string& str) const; + ////////////////////////////////////////////////////////////////////////// template<class T> T ConfigurationFile::getValue(const std::string& key) const diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp index 9d67bd9b3..8d163c0b6 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp @@ -425,7 +425,7 @@ void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData) } if (configData.contains("MultiKernelName")) - this->setMultiKernel(StringUtil::toStringVector(configData.getValue<std::string>("MultiKernelName"))); + this->setMultiKernel(configData.getVector<std::string>("MultiKernelName")); else if (this->getMultiKernelOn()) { std::vector<std::string> tmp; for (int i = 0; i < this->getMaxLevel() + 1; i++) { @@ -437,7 +437,6 @@ void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData) void Parameter::initLBMSimulationParameter() { - factor_gridNZ = 2; coarse = 0; fine = this->maxlevel; parH.resize(this->maxlevel+1); @@ -2685,7 +2684,7 @@ std::vector< int> Parameter::getMultiKernelLevel() { return multiKernelLevel; } -std::vector< std::string> Parameter::getMultiKernel() +std::vector<std::string> Parameter::getMultiKernel() { return multiKernel; } diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h index 3e8d99490..e128f47e4 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h @@ -771,7 +771,7 @@ private: int diffMod{ 27 }; int maxlevel{ 0 }; int coarse, fine; - int factor_gridNZ; + int factor_gridNZ {2}; int D3Qxx{ 27 }; InitCondition ic; double memsizeGPU; diff --git a/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp b/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp index 624dcefdd..b38b5ca2e 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp @@ -135,6 +135,16 @@ TEST(ParameterTest, check_all_Parameter_CanBePassedToConstructor) EXPECT_THAT(para.getDistY(), testing::ElementsAreArray({500, 501})); EXPECT_THAT(para.getDistZ(), testing::ElementsAreArray({600, 601})); EXPECT_THAT(para.getNeedInterface(), testing::ElementsAreArray({true, true, true, true, true, true})); + + EXPECT_THAT(para.getMainKernel(), testing::Eq("KernelName")); + EXPECT_THAT(para.getMultiKernelOn(), testing::Eq(true)); + EXPECT_THAT(para.getMultiKernelLevel(), testing::ElementsAreArray({3, 2, 1})); + + std::vector<std::string> kernel {"Kernel1", "Kernel2", "Kernel3"}; + auto kernel_actual = para.getMultiKernel(); + for (size_t i = 0; i < kernel.size(); ++i) { + EXPECT_THAT(kernel_actual[i], testing::Eq(kernel[i])); + } } diff --git a/src/gpu/VirtualFluids_GPU/Parameter/parameterTest.cfg b/src/gpu/VirtualFluids_GPU/Parameter/parameterTest.cfg index ae13ba02c..edae0daa0 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/parameterTest.cfg +++ b/src/gpu/VirtualFluids_GPU/Parameter/parameterTest.cfg @@ -87,3 +87,8 @@ DistX = 400 401 DistY = 500 501 DistZ = 600 601 NeedInterface = true true true true true true + +MainKernelName = KernelName +MultiKernelOn = true +MultiKernelLevel = 3 2 1 +MultiKernelName = Kernel1 Kernel2 Kernel3 \ No newline at end of file -- GitLab