From 641736cd788c135e7b63a9511c4ee4e3f974e360 Mon Sep 17 00:00:00 2001 From: Konstantin Kutscher <kutscher@irmb.tu-bs.de> Date: Wed, 24 Jan 2018 09:59:35 +0100 Subject: [PATCH] Calculator constructor signature is changed --- source/Applications/DLR-F16-Solid/f16.cpp | 13 +++------- .../Grid/BasicCalculator.cpp | 7 +++--- .../VirtualFluidsCore/Grid/BasicCalculator.h | 2 +- source/VirtualFluidsCore/Grid/Calculator.cpp | 24 +++++-------------- source/VirtualFluidsCore/Grid/Calculator.h | 10 ++++---- 5 files changed, 18 insertions(+), 38 deletions(-) diff --git a/source/Applications/DLR-F16-Solid/f16.cpp b/source/Applications/DLR-F16-Solid/f16.cpp index 479658d94..31cb5adb8 100644 --- a/source/Applications/DLR-F16-Solid/f16.cpp +++ b/source/Applications/DLR-F16-Solid/f16.cpp @@ -574,10 +574,7 @@ void run(string configname) //TimeseriesCoProcessor tsp1(grid, stepMV, mic1, pathOut+"/mic/mic1", comm); omp_set_num_threads(numOfThreads); - SPtr<Calculator> calculator(new BasicCalculator()); - calculator->setGrid(grid); - calculator->setLastTimeStep(endTime); - calculator->setVisScheduler(stepSch); + SPtr<Calculator> calculator(new BasicCalculator(grid, stepSch, endTime)); calculator->addCoProcessor(nupsCoProcessor); calculator->addCoProcessor(restartCoProcessor); calculator->addCoProcessor(writeMQCoProcessor); @@ -677,13 +674,9 @@ void test_run() SPtr<WriteMacroscopicQuantitiesCoProcessor> writeMQCoProcessor(new WriteMacroscopicQuantitiesCoProcessor(grid, stepSch, pathOut, WbWriterVtkXmlBinary::getInstance(), conv, comm)); //omp_set_num_threads(numOfThreads); - SPtr<Calculator> calculator(new BasicCalculator()); - calculator->setGrid(grid); - calculator->setLastTimeStep(2); - calculator->setVisScheduler(stepSch); + SPtr<Calculator> calculator(new BasicCalculator(grid, stepSch, 2)); calculator->addCoProcessor(writeMQCoProcessor); - calculator->setVisScheduler(stepSch); - + if (myid==0) UBLOG(logINFO, "Simulation-start"); calculator->calculate(); diff --git a/source/VirtualFluidsCore/Grid/BasicCalculator.cpp b/source/VirtualFluidsCore/Grid/BasicCalculator.cpp index 53fb06011..984c93579 100644 --- a/source/VirtualFluidsCore/Grid/BasicCalculator.cpp +++ b/source/VirtualFluidsCore/Grid/BasicCalculator.cpp @@ -15,7 +15,8 @@ //#define TIMING //#include "UbTiming.h" -BasicCalculator::BasicCalculator() +BasicCalculator::BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps) : + Calculator(grid, additionalGhostLayerUpdateScheduler, numberOfTimeSteps) { } @@ -43,7 +44,7 @@ void BasicCalculator::calculate() double time[6]; #endif - for (calcStep = startTimeStep; calcStep<=lastTimeStep+1; calcStep++) + for (calcStep = startTimeStep; calcStep<=numberOfTimeSteps+1; calcStep++) { coProcess((double)(calcStep-1)); @@ -123,7 +124,7 @@ void BasicCalculator::calculate() } } //exchange data between blocks for visualization - if ((int)visScheduler->getNextDueTime()==calcStep) + if ((int)additionalGhostLayerUpdateScheduler->getNextDueTime()==calcStep) { exchangeBlockData(straightStartLevel, maxInitLevel); } diff --git a/source/VirtualFluidsCore/Grid/BasicCalculator.h b/source/VirtualFluidsCore/Grid/BasicCalculator.h index ee55d69f0..b77ac017f 100644 --- a/source/VirtualFluidsCore/Grid/BasicCalculator.h +++ b/source/VirtualFluidsCore/Grid/BasicCalculator.h @@ -12,7 +12,7 @@ class Block3DConnector; class BasicCalculator : public Calculator { public: - BasicCalculator(); + BasicCalculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps); virtual ~BasicCalculator(); virtual void calculate(); diff --git a/source/VirtualFluidsCore/Grid/Calculator.cpp b/source/VirtualFluidsCore/Grid/Calculator.cpp index 7d8616af7..0e8916073 100644 --- a/source/VirtualFluidsCore/Grid/Calculator.cpp +++ b/source/VirtualFluidsCore/Grid/Calculator.cpp @@ -8,17 +8,10 @@ #include <basics/utilities/UbException.h> -Calculator::Calculator() -{ - -} -////////////////////////////////////////////////////////////////////////// -Calculator::~Calculator() -{ - -} -////////////////////////////////////////////////////////////////////////// -void Calculator::setGrid(SPtr<Grid3D> grid) +Calculator::Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps) : + grid(grid), + additionalGhostLayerUpdateScheduler(additionalGhostLayerUpdateScheduler), + numberOfTimeSteps(numberOfTimeSteps) { this->grid = grid; startTimeStep = int(grid->getTimeStep())+1; @@ -49,14 +42,9 @@ void Calculator::setGrid(SPtr<Grid3D> grid) initRemoteConnectors(); } ////////////////////////////////////////////////////////////////////////// -void Calculator::setLastTimeStep(int t) -{ - this->lastTimeStep = t; -} -////////////////////////////////////////////////////////////////////////// -void Calculator::setVisScheduler(SPtr<UbScheduler> s) +Calculator::~Calculator() { - visScheduler = s; + } ////////////////////////////////////////////////////////////////////////// void Calculator::addCoProcessor(SPtr<CoProcessor> coProcessor) diff --git a/source/VirtualFluidsCore/Grid/Calculator.h b/source/VirtualFluidsCore/Grid/Calculator.h index 0c33b7402..ab266aaa2 100644 --- a/source/VirtualFluidsCore/Grid/Calculator.h +++ b/source/VirtualFluidsCore/Grid/Calculator.h @@ -17,11 +17,9 @@ class CoProcessor; class Calculator { public: - Calculator(); + Calculator(SPtr<Grid3D> grid, SPtr<UbScheduler> additionalGhostLayerUpdateScheduler, int numberOfTimeSteps); virtual ~Calculator(); - void setGrid(SPtr<Grid3D> grid); - void setLastTimeStep(int t); - void setVisScheduler(SPtr<UbScheduler> s); + //! control of coProcessors void addCoProcessor(SPtr<CoProcessor> coProcessor); void coProcess(double step); @@ -36,13 +34,13 @@ protected: int minLevel, maxLevel; int startTimeStep; - int lastTimeStep; + int numberOfTimeSteps; std::vector< std::vector< SPtr<Block3DConnector> > > localConns; std::vector< std::vector< SPtr<Block3DConnector> > > remoteConns; bool refinement; SPtr<Grid3D> grid; - SPtr<UbScheduler> visScheduler; + SPtr<UbScheduler> additionalGhostLayerUpdateScheduler; std::vector< std::vector<SPtr<Block3D> > > blocks; //localInterConns and remoteInterConns save interpolation connectors -- GitLab