From fb2dfa0dbfd9deedb103494380d90bec9e02791c Mon Sep 17 00:00:00 2001 From: schoen <schoen@irmb.tu-bs.de> Date: Fri, 16 Jul 2021 08:57:39 +0200 Subject: [PATCH] fix vector size when number of grid level are set in main --- src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp | 2 ++ src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp | 12 +++++------- src/gpu/VirtualFluids_GPU/Parameter/Parameter.h | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp index 42b39be68..f7320f4d5 100644 --- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp +++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp @@ -81,6 +81,8 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, std this->para = para; devCheck(comm->mapCudaDevice(para->getMyID(), para->getNumprocs(), para->getDevices(), para->getMaxDev())); + + para->initLBMSimulationParameter(); gridProvider->allocAndCopyForcing(); gridProvider->allocAndCopyQuadricLimiters(); diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp index ffabc467d..f394ea968 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp @@ -50,7 +50,7 @@ Parameter::Parameter(const vf::basics::ConfigurationFile &configData, int number ic.myid = myId; readConfigData(configData); - initLBMSimulationParameter(); + //initLBMSimulationParameter(); } void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData) @@ -373,12 +373,7 @@ void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData) this->setDoRestart(configData.getValue<bool>("DoRestart")); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (configData.contains("NOGL")) - { - maxlevel = configData.getValue<int>("NOGL") - 1; - fine = maxlevel; - } - parH.resize(maxlevel + 1); - parD.resize(maxlevel + 1); + setMaxLevel(configData.getValue<int>("NOGL")); this->setGridX(std::vector<int>(this->getMaxLevel() + 1, 32)); this->setGridY(std::vector<int>(this->getMaxLevel() + 1, 32)); @@ -622,6 +617,9 @@ void Parameter::setD3Qxx(int d3qxx) void Parameter::setMaxLevel(int maxlevel) { this->maxlevel = maxlevel-1; + this->fine = this->maxlevel; + parH.resize(this->maxlevel + 1); + parD.resize(this->maxlevel + 1); } void Parameter::setParticleBasicLevel(int pbl) { diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h index c95a79771..60beb9f63 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h @@ -314,6 +314,7 @@ class VIRTUALFLUIDS_GPU_EXPORT Parameter { public: Parameter(const vf::basics::ConfigurationFile &configData, int numberOfProcesses, int myId); + void initLBMSimulationParameter(); std::shared_ptr<LBMSimulationParameter> getParH(int level); std::shared_ptr<LBMSimulationParameter> getParD(int level); @@ -750,11 +751,10 @@ public: void setInitialCondition(std::function<void(real, real, real, real &, real &, real &, real &)> initialCondition); std::function<void(real, real, real, real &, real &, real &, real &)> &getInitialCondition(); - std::vector<std::shared_ptr<LBMSimulationParameter>> parH; - std::vector<std::shared_ptr<LBMSimulationParameter>> parD; + std::vector<std::shared_ptr<LBMSimulationParameter>> parH = std::vector<std::shared_ptr<LBMSimulationParameter>>(1); + std::vector<std::shared_ptr<LBMSimulationParameter>> parD = std::vector<std::shared_ptr<LBMSimulationParameter>>(1); private: void readConfigData(const vf::basics::ConfigurationFile &configData); - void initLBMSimulationParameter(); bool compOn { false }; bool diffOn { false }; -- GitLab