diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp index 42b39be681fffac655e9ee8fff8d04cda79f5783..f7320f4d5e3dd22ea59ab9f03fd1d8547597e5ee 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 ffabc467d049bf9b93e6b199dc92ad90242031ff..f394ea968a7362264fa77071d8c90b26b4d01348 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 c95a79771a4433036a695b3990d306fca6709a3c..60beb9f637644d0654732b1f2ece5df43ae1f456 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 };