From 47f22646b44cb880b405f6b97faebff3dd8312d0 Mon Sep 17 00:00:00 2001 From: Kutscher <kutscher@irmb.tu-bs.de> Date: Fri, 28 Apr 2023 22:04:54 +0200 Subject: [PATCH] refactoring of pythonbindings --- apps/cpu/TPMSRow/TPMSRow.cpp | 112 +++++++++--------- .../src/cpu/submodules/boundaryconditions.cpp | 32 ++--- .../simulationconfig/AbstractLBMSystem.h | 6 +- .../include/simulationconfig/D3Q27LBMSystem.h | 4 +- .../include/simulationconfig/Simulation.h | 14 +-- .../simulationconfig/src/D3Q27LBMSystem.cpp | 4 +- src/cpu/simulationconfig/src/Simulation.cpp | 47 ++++---- 7 files changed, 109 insertions(+), 110 deletions(-) diff --git a/apps/cpu/TPMSRow/TPMSRow.cpp b/apps/cpu/TPMSRow/TPMSRow.cpp index 15df6e243..9adcaadde 100644 --- a/apps/cpu/TPMSRow/TPMSRow.cpp +++ b/apps/cpu/TPMSRow/TPMSRow.cpp @@ -78,46 +78,46 @@ void run(string configname) //////////////////////////////////////////////////////////////////////// // BC Adapter - // BCAdapterPtr gradientAdapter(new VelocityBCAdapter(true, true, true, pdxC, pdyC, pdzC, 0.0, + // BCPtr gradientAdapter(new VelocityBC(true, true, true, pdxC, pdyC, pdzC, 0.0, // BCFunction::INFCONST)); - // gradientAdapter->setBcAlgorithm(BCAlgorithmPtr(new FluxBCAlgorithm())); - // BCAdapterPtr cubeNoslipAdapter(new NoSlipBCAdapter(1)); - SPtr<BCAdapter> tpmsNoslipAdapter(new NoSlipBCAdapter()); - //SPtr<BCAdapter> funnelNoslipAdapter(new NoSlipBCAdapter(1)); - - // SPtr<BCAdapter> xMinApr(new DensityBCAdapter(0.0000001)); - SPtr<BCAdapter> xMinApr(new DensityBCAdapter()); - // SPtr<BCAdapter> xMinApr(new VelocityBCAdapter(vx, 0., BCFunction::INFCONST, 0., 0., BCFunction::INFCONST, + // gradientAdapter->setBcAlgorithm(BCStrategyPtr(new FluxBCStrategy())); + // BCPtr cubeNoslipAdapter(new NoSlipBC(1)); + SPtr<BC> tpmsNoslipAdapter(new NoSlipBC()); + //SPtr<BC> funnelNoslipAdapter(new NoSlipBC(1)); + + // SPtr<BC> xMinApr(new DensityBC(0.0000001)); + SPtr<BC> xMinApr(new DensityBC()); + // SPtr<BC> xMinApr(new VelocityBC(vx, 0., BCFunction::INFCONST, 0., 0., BCFunction::INFCONST, // 0.,0., BCFunction::INFCONST)); - SPtr<BCAdapter> xMaxApr(new DensityBCAdapter(0.)); - //SPtr<BCAdapter> yMinApr(new NoSlipBCAdapter(1)); - //SPtr<BCAdapter> yMaxApr(new NoSlipBCAdapter(1)); - SPtr<BCAdapter> zMinApr(new NoSlipBCAdapter()); - SPtr<BCAdapter> zMaxApr(new NoSlipBCAdapter()); + SPtr<BC> xMaxApr(new DensityBC(0.)); + //SPtr<BC> yMinApr(new NoSlipBC(1)); + //SPtr<BC> yMaxApr(new NoSlipBC(1)); + SPtr<BC> zMinApr(new NoSlipBC()); + SPtr<BC> zMaxApr(new NoSlipBC()); - //SPtr<BCAdapter> zMinFunnelApr(new NoSlipBCAdapter(1)); - //SPtr<BCAdapter> zMaxFunnelApr(new NoSlipBCAdapter(1)); + //SPtr<BC> zMinFunnelApr(new NoSlipBC(1)); + //SPtr<BC> zMaxFunnelApr(new NoSlipBC(1)); - //tpmsNoslipAdapter->setBcAlgorithm(BCAlgorithmPtr(new NoSlipBCAlgorithm())); - //tpmsNoslipAdapter->setBcAlgorithm(SPtr<BCAlgorithm>(new ThinWallNoSlipBCAlgorithm())); + //tpmsNoslipAdapter->setBcAlgorithm(BCStrategyPtr(new NoSlipBCStrategy())); + //tpmsNoslipAdapter->setBcAlgorithm(SPtr<BCStrategy>(new ThinWallNoSlipBCStrategy())); - tpmsNoslipAdapter->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); - //funnelNoslipAdapter->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); + tpmsNoslipAdapter->setBCStrategy(SPtr<BCStrategy>(new NoSlipBCStrategy())); + //funnelNoslipAdapter->setBcAlgorithm(SPtr<BCStrategy>(new NoSlipBCStrategy())); - //xMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NonEqDensityBCAlgorithm())); - // xMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new VelocityBCAlgorithm())); - xMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NonReflectingInflowBCAlgorithm())); - // xMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new VelocityWithDensityBCAlgorithm())); - //xMaxApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NonEqDensityBCAlgorithm())); - xMaxApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NonReflectingOutflowBCAlgorithmWithRelaxation())); - //yMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); - //yMaxApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); - zMinApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); - zMaxApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); + //xMinApr->setBcAlgorithm(SPtr<BCStrategy>(new NonEqDensityBCStrategy())); + // xMinApr->setBcAlgorithm(SPtr<BCStrategy>(new VelocityBCStrategy())); + xMinApr->setBCStrategy(SPtr<BCStrategy>(new NonReflectingInflowBCStrategy())); + // xMinApr->setBcAlgorithm(SPtr<BCStrategy>(new VelocityWithDensityBCStrategy())); + //xMaxApr->setBcAlgorithm(SPtr<BCStrategy>(new NonEqDensityBCStrategy())); + xMaxApr->setBCStrategy(SPtr<BCStrategy>(new NonReflectingOutflowWithRelaxationBCStrategy())); + //yMinApr->setBcAlgorithm(SPtr<BCStrategy>(new NoSlipBCStrategy())); + //yMaxApr->setBcAlgorithm(SPtr<BCStrategy>(new NoSlipBCStrategy())); + zMinApr->setBCStrategy(SPtr<BCStrategy>(new NoSlipBCStrategy())); + zMaxApr->setBCStrategy(SPtr<BCStrategy>(new NoSlipBCStrategy())); - //zMinFunnelApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); - //zMaxFunnelApr->setBcAlgorithm(SPtr<BCAlgorithm>(new NoSlipBCAlgorithm())); + //zMinFunnelApr->setBcAlgorithm(SPtr<BCStrategy>(new NoSlipBCStrategy())); + //zMaxFunnelApr->setBcAlgorithm(SPtr<BCStrategy>(new NoSlipBCStrategy())); //////////////////////////////////////////////////////////////////////// // BC visitor @@ -160,8 +160,8 @@ void run(string configname) // kernel->setWithForcing(true); // // SPtr<ThinWallBCProcessor> bcProc(new ThinWallBCProcessor()); - SPtr<BCProcessor> bcProc(new BCProcessor()); - kernel->setBCProcessor(bcProc); + SPtr<BCSet> bcProc(new BCSet()); + kernel->setBCSet(bcProc); SPtr<Grid3DVisitor> metisVisitor(new MetisPartitioningGridVisitor( @@ -170,10 +170,10 @@ void run(string configname) ////////////////////////////////////////////////////////////////////////// // restart SPtr<UbScheduler> mSch(new UbScheduler(cpStep, cpStart)); - SPtr<MPIIOMigrationCoProcessor> migCoProcessor( - new MPIIOMigrationCoProcessor(grid, mSch,metisVisitor, pathname + "/mig", comm)); - migCoProcessor->setLBMKernel(kernel); - migCoProcessor->setBCProcessor(bcProc); + SPtr<MPIIOMigrationSimulationObserver> migSimulationObserver( + new MPIIOMigrationSimulationObserver(grid, mSch,metisVisitor, pathname + "/mig", comm)); + migSimulationObserver->setLBMKernel(kernel); + migSimulationObserver->setBCSet(bcProc); ////////////////////////////////////////////////////////////////////////// if (newStart) { @@ -247,10 +247,10 @@ void run(string configname) GenBlocksGridVisitor genBlocks(gridCube); grid->accept(genBlocks); - SPtr<CoProcessor> ppblocks(new WriteBlocksCoProcessor(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, + SPtr<SimulationObserver> ppblocks(new WriteBlocksSimulationObserver(grid, SPtr<UbScheduler>(new UbScheduler(1)), pathname, WbWriterVtkXmlBinary::getInstance(), comm)); - ppblocks->process(0); + ppblocks->update(0); // GbObject3DPtr solidcube(new GbCuboid3D(0, g_minX2, g_minX3, TPMSL[0], g_maxX2, g_maxX3)); // if (myid == 0) GbSystem3D::writeGeoObject(solidcube.get(), pathname + "/geo/solidcube", @@ -363,7 +363,7 @@ void run(string configname) PQueuePartitioningGridVisitor pqPartVisitor(numOfThreads); grid->accept(pqPartVisitor); - ppblocks->process(0); + ppblocks->update(0); ppblocks.reset(); ////////////////////////////////////////////////////////////////////////// @@ -419,8 +419,8 @@ void run(string configname) // boundary conditions grid { SPtr<UbScheduler> geoSch(new UbScheduler(1)); - SPtr<CoProcessor> ppgeo(new WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); - ppgeo->process(0); + SPtr<SimulationObserver> ppgeo(new WriteBoundaryConditionsSimulationObserver(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), comm)); + ppgeo->update(0); ppgeo.reset(); } if (myid == 0) @@ -440,7 +440,7 @@ void run(string configname) UBLOG(logINFO, "path = " << pathname); } - migCoProcessor->restart((int)restartStep); + migSimulationObserver->restart((int)restartStep); grid->setTimeStep(restartStep); if (myid == 0) @@ -456,11 +456,11 @@ void run(string configname) SPtr<UbScheduler> visSch(new UbScheduler(outTime/*,beginTime,endTime*/)); - SPtr<CoProcessor> pp(new WriteMacroscopicQuantitiesCoProcessor(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); + SPtr<SimulationObserver> pp(new WriteMacroscopicQuantitiesSimulationObserver(grid, visSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm)); SPtr<UbScheduler> tavSch(new UbScheduler(100, timeAvStart, timeAvStop)); - SPtr<TimeAveragedValuesCoProcessor> tav(new TimeAveragedValuesCoProcessor(grid, pathname, WbWriterVtkXmlBinary::getInstance(), tavSch, comm, - TimeAveragedValuesCoProcessor::Density | TimeAveragedValuesCoProcessor::Velocity | TimeAveragedValuesCoProcessor::Fluctuations)); + SPtr<TimeAveragedValuesSimulationObserver> tav(new TimeAveragedValuesSimulationObserver(grid, pathname, WbWriterVtkXmlBinary::getInstance(), tavSch, comm, + TimeAveragedValuesSimulationObserver::Density | TimeAveragedValuesSimulationObserver::Velocity | TimeAveragedValuesSimulationObserver::Fluctuations)); tav->setWithGhostLayer(true); SPtr<UbScheduler> nuSch(new UbScheduler(100, 0, endTime / 2)); @@ -471,25 +471,25 @@ void run(string configname) fnu.DefineConst("T", endTime); fnu.DefineConst("L", (UnitEdgeLength / dx)); fnu.DefineConst("u", vx); - SPtr<CoProcessor> nupr(new DecreaseViscosityCoProcessor(grid, nuSch, &fnu, comm)); + SPtr<SimulationObserver> nupr(new DecreaseViscositySimulationObserver(grid, nuSch, &fnu, comm)); SPtr<UbScheduler> nupsSch(new UbScheduler(100, 100, 100000000)); - SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm)); + SPtr<SimulationObserver> npr(new NUPSCounterSimulationObserver(grid, nupsSch, numOfThreads, comm)); //omp_set_num_threads(numOfThreads); numOfThreads = 1; SPtr<UbScheduler> stepGhostLayer(visSch); - SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, int(endTime))); + SPtr<Simulation> calculator(new Simulation(grid, stepGhostLayer, int(endTime))); - //calculator->addCoProcessor(nupr); - calculator->addCoProcessor(npr); - calculator->addCoProcessor(pp); - calculator->addCoProcessor(migCoProcessor); - calculator->addCoProcessor(tav); + //calculator->addSimulationObserver(nupr); + calculator->addSimulationObserver(npr); + calculator->addSimulationObserver(pp); + calculator->addSimulationObserver(migSimulationObserver); + calculator->addSimulationObserver(tav); if (myid == 0) UBLOG(logINFO, "Simulation-start"); - calculator->calculate(); + calculator->run(); if (myid == 0) UBLOG(logINFO, "Simulation-end"); } catch (std::exception &e) { diff --git a/pythonbindings/src/cpu/submodules/boundaryconditions.cpp b/pythonbindings/src/cpu/submodules/boundaryconditions.cpp index d7cd0b578..40ad9f0a9 100644 --- a/pythonbindings/src/cpu/submodules/boundaryconditions.cpp +++ b/pythonbindings/src/cpu/submodules/boundaryconditions.cpp @@ -32,14 +32,14 @@ //======================================================================================= #include <pybind11/pybind11.h> #include <pybind11/stl.h> -#include <BoundaryConditions/DensityBCAdapter.h> -#include <BoundaryConditions/NonReflectingOutflowBCAlgorithm.h> -#include <BoundaryConditions/BCAdapter.h> -#include <BoundaryConditions/NoSlipBCAdapter.h> -#include <BoundaryConditions/VelocityBCAdapter.h> -#include <BoundaryConditions/NoSlipBCAlgorithm.h> -#include <BoundaryConditions/VelocityBCAlgorithm.h> -#include <BoundaryConditions/HighViscosityNoSlipBCAlgorithm.h> +#include <BoundaryConditions/DensityBC.h> +#include <BoundaryConditions/NonReflectingOutflowBCStrategy.h> +#include <BoundaryConditions/BC.h> +#include <BoundaryConditions/NoSlipBC.h> +#include <BoundaryConditions/VelocityBC.h> +#include <BoundaryConditions/NoSlipBCStrategy.h> +#include <BoundaryConditions/VelocityBCStrategy.h> +#include <BoundaryConditions/HighViscosityNoSlipBCStrategy.h> namespace boundaryconditions { @@ -47,8 +47,8 @@ namespace boundaryconditions using namespace py::literals; template<class adapter, class algorithm, - class = std::enable_if_t<std::is_base_of<BCAdapter, adapter>::value>, - class = std::enable_if_t<std::is_base_of<BCAlgorithm, algorithm>::value>> + class = std::enable_if_t<std::is_base_of<BC, adapter>::value>, + class = std::enable_if_t<std::is_base_of<BCStrategy, algorithm>::value>> class PyBoundaryCondition : public adapter { public: @@ -60,22 +60,22 @@ namespace boundaryconditions }; template<class adapter, class algorithm> - using bc_class = py::class_<PyBoundaryCondition<adapter, algorithm>, BCAdapter, + using bc_class = py::class_<PyBoundaryCondition<adapter, algorithm>, BC, std::shared_ptr<PyBoundaryCondition<adapter, algorithm>>>; void makeModule(py::module_ &parentModule) { py::module_ bcModule = parentModule.def_submodule("boundaryconditions"); - auto _ = py::class_<BCAdapter, std::shared_ptr<BCAdapter>>(bcModule, "BCAdapter"); + auto _ = py::class_<BC, std::shared_ptr<BC>>(bcModule, "BC"); - bc_class<NoSlipBCAdapter, NoSlipBCAlgorithm>(bcModule, "NoSlipBoundaryCondition") + bc_class<NoSlipBC, NoSlipBCStrategy>(bcModule, "NoSlipBoundaryCondition") .def(py::init()); - bc_class<NoSlipBCAdapter, HighViscosityNoSlipBCAlgorithm>(bcModule, "HighViscosityNoSlipBoundaryCondition") + bc_class<NoSlipBC, HighViscosityNoSlipBCStrategy>(bcModule, "HighViscosityNoSlipBoundaryCondition") .def(py::init()); - bc_class<VelocityBCAdapter, VelocityBCAlgorithm>(bcModule, "VelocityBoundaryCondition") + bc_class<VelocityBC, VelocityBCStrategy>(bcModule, "VelocityBoundaryCondition") .def(py::init()) .def(py::init<bool &, bool &, bool &, mu::Parser &, real &, real &>(), "vx1"_a, "vx2"_a, "vx3"_a, @@ -89,7 +89,7 @@ namespace boundaryconditions "vx2"_a, "vx2_start_time"_a, "vx2_end_time"_a, "vx3"_a, "vx3_start_time"_a, "vx3_end_time"_a); - bc_class<DensityBCAdapter, NonReflectingOutflowBCAlgorithm>(bcModule, "NonReflectingOutflow") + bc_class<DensityBC, NonReflectingOutflowBCStrategy>(bcModule, "NonReflectingOutflow") .def(py::init()); } diff --git a/src/cpu/simulationconfig/include/simulationconfig/AbstractLBMSystem.h b/src/cpu/simulationconfig/include/simulationconfig/AbstractLBMSystem.h index 156649c6f..77ab8798d 100644 --- a/src/cpu/simulationconfig/include/simulationconfig/AbstractLBMSystem.h +++ b/src/cpu/simulationconfig/include/simulationconfig/AbstractLBMSystem.h @@ -2,7 +2,7 @@ #define VIRTUALFLUIDSPYTHONBINDINGS_ABSTRACTLBMSYSTEM_H #include <Interactors/Interactor3D.h> -#include <BoundaryConditions/BCAdapter.h> +#include <BoundaryConditions/BC.h> #include <memory> class AbstractLBMSystem { @@ -19,11 +19,11 @@ public: virtual std::shared_ptr<Interactor3D> makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type) = 0; + std::shared_ptr<BC> bcAdapter, int type) = 0; virtual std::shared_ptr<Interactor3D> makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type, Interactor3D::Accuracy accuracy) = 0; + std::shared_ptr<BC> bcAdapter, int type, Interactor3D::Accuracy accuracy) = 0; }; diff --git a/src/cpu/simulationconfig/include/simulationconfig/D3Q27LBMSystem.h b/src/cpu/simulationconfig/include/simulationconfig/D3Q27LBMSystem.h index c9883a61a..374d64318 100644 --- a/src/cpu/simulationconfig/include/simulationconfig/D3Q27LBMSystem.h +++ b/src/cpu/simulationconfig/include/simulationconfig/D3Q27LBMSystem.h @@ -16,10 +16,10 @@ public: makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, int type) override; std::shared_ptr<Interactor3D> makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type) override; + std::shared_ptr<BC> bcAdapter, int type) override; std::shared_ptr<Interactor3D> makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type, + std::shared_ptr<BC> bcAdapter, int type, Interactor3D::Accuracy accuracy) override; }; diff --git a/src/cpu/simulationconfig/include/simulationconfig/Simulation.h b/src/cpu/simulationconfig/include/simulationconfig/Simulation.h index 63298db81..ba5c5eb27 100644 --- a/src/cpu/simulationconfig/include/simulationconfig/Simulation.h +++ b/src/cpu/simulationconfig/include/simulationconfig/Simulation.h @@ -9,9 +9,9 @@ #include <geometry3d/GbPoint3D.h> #include <Interactors/Interactor3D.h> -#include <BoundaryConditions/BCAdapter.h> +#include <BoundaryConditions/BC.h> #include <Visitors/BoundaryConditionsBlockVisitor.h> -#include <CoProcessors/CoProcessor.h> +#include <SimulationObservers/SimulationObserver.h> #include <LBM/LBMUnitConverter.h> #include "KernelFactory.h" #include "AbstractLBMSystem.h" @@ -31,7 +31,7 @@ private: std::shared_ptr<Grid3D> grid; std::vector<std::shared_ptr<Interactor3D>> interactors; BoundaryConditionsBlockVisitor bcVisitor; - std::set<std::shared_ptr<BCAdapter>> registeredAdapters; + std::set<std::shared_ptr<BC>> registeredAdapters; std::shared_ptr<LBMKernelConfiguration> kernelConfig; std::shared_ptr<RuntimeParameters> simulationParameters; @@ -57,10 +57,10 @@ public: void setKernelConfiguration(const std::shared_ptr<LBMKernelConfiguration> &kernel); - void addObject(const std::shared_ptr<GbObject3D> &object, const std::shared_ptr<BCAdapter> &bcAdapter, int state, + void addObject(const std::shared_ptr<GbObject3D> &object, const std::shared_ptr<BC> &bcAdapter, int state, const std::string &folderPath); - void addBCAdapter(const std::shared_ptr<BCAdapter> &bcAdapter); + void addBC(const std::shared_ptr<BC> &bcAdapter); void run(); @@ -73,7 +73,7 @@ private: void writeBoundaryConditions() const; - std::shared_ptr<CoProcessor> makeMacroscopicQuantitiesCoProcessor(const std::shared_ptr<LBMUnitConverter> &converter, + std::shared_ptr<SimulationObserver> makeMacroscopicQuantitiesSimulationObserver(const std::shared_ptr<LBMUnitConverter> &converter, const std::shared_ptr<UbScheduler> &visualizationScheduler) const; static std::shared_ptr<LBMUnitConverter> makeLBMUnitConverter(); @@ -93,7 +93,7 @@ private: void initializeDistributions(); - std::shared_ptr<CoProcessor> makeNupsCoProcessor() const; + std::shared_ptr<SimulationObserver> makeNupsSimulationObserver() const; }; #endif \ No newline at end of file diff --git a/src/cpu/simulationconfig/src/D3Q27LBMSystem.cpp b/src/cpu/simulationconfig/src/D3Q27LBMSystem.cpp index b1a01ca7b..1e34e91c7 100644 --- a/src/cpu/simulationconfig/src/D3Q27LBMSystem.cpp +++ b/src/cpu/simulationconfig/src/D3Q27LBMSystem.cpp @@ -20,14 +20,14 @@ D3Q27LBMSystem::makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_p std::shared_ptr<Interactor3D> D3Q27LBMSystem::makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type) + std::shared_ptr<BC> bcAdapter, int type) { return std::shared_ptr<Interactor3D>(new D3Q27Interactor(object, grid, bcAdapter, type)); } std::shared_ptr<Interactor3D> D3Q27LBMSystem::makeInteractor(std::shared_ptr<GbObject3D> object, std::shared_ptr<Grid3D> grid, - std::shared_ptr<BCAdapter> bcAdapter, int type, Interactor3D::Accuracy accuracy) + std::shared_ptr<BC> bcAdapter, int type, Interactor3D::Accuracy accuracy) { return std::shared_ptr<Interactor3D>(new D3Q27Interactor(object, grid, bcAdapter, type, accuracy)); } diff --git a/src/cpu/simulationconfig/src/Simulation.cpp b/src/cpu/simulationconfig/src/Simulation.cpp index 098f913d6..8fd14885d 100644 --- a/src/cpu/simulationconfig/src/Simulation.cpp +++ b/src/cpu/simulationconfig/src/Simulation.cpp @@ -10,15 +10,14 @@ #include <geometry3d/GbCuboid3D.h> #include <geometry3d/GbSystem3D.h> -#include <BoundaryConditions/BCProcessor.h> -#include <CoProcessors/CoProcessor.h> -#include <CoProcessors/NUPSCounterCoProcessor.h> -#include <CoProcessors/WriteBlocksCoProcessor.h> -#include <CoProcessors/WriteBoundaryConditionsCoProcessor.h> -#include <CoProcessors/WriteMacroscopicQuantitiesCoProcessor.h> -#include <Grid/BasicCalculator.h> -#include <Grid/Calculator.h> -#include <Grid/Grid3D.h> +#include <BoundaryConditions/BCSet.h> +#include <SimulationObservers/SimulationObserver.h> +#include <SimulationObservers/NUPSCounterSimulationObserver.h> +#include <SimulationObservers/WriteBlocksSimulationObserver.h> +#include <SimulationObservers/WriteBoundaryConditionsSimulationObserver.h> +#include <SimulationObservers/WriteMacroscopicQuantitiesSimulationObserver.h> +#include <Simulation/Simulation.h> +#include <Simulation/Grid3D.h> #include <Interactors/InteractorsHelper.h> #include <LBM/CompressibleOffsetMomentsInterpolationProcessor.h> #include <LBM/LBMKernel.h> @@ -61,7 +60,7 @@ void Simulation::setRuntimeParameters(std::shared_ptr<RuntimeParameters> paramet } void -Simulation::addObject(const std::shared_ptr<GbObject3D> &object, const std::shared_ptr<BCAdapter> &bcAdapter, int state, +Simulation::addObject(const std::shared_ptr<GbObject3D> &object, const std::shared_ptr<BCA> &bcAdapter, int state, const std::string &folderPath) { const bool is_in = registeredAdapters.find(bcAdapter) != registeredAdapters.end(); @@ -72,7 +71,7 @@ Simulation::addObject(const std::shared_ptr<GbObject3D> &object, const std::shar GbSystem3D::writeGeoObject(object, writerConfig.outputPath + folderPath, writerConfig.getWriter()); } -void Simulation::addBCAdapter(const std::shared_ptr<BCAdapter> &bcAdapter) +void Simulation::addBCAdapter(const std::shared_ptr<BC> &bcAdapter) { registeredAdapters.insert(bcAdapter); this->bcVisitor.addBC(bcAdapter); @@ -150,15 +149,15 @@ void Simulation::run() #endif auto visualizationScheduler = std::make_shared<UbScheduler>(simulationParameters->timeStepLogInterval); - auto mqCoProcessor = makeMacroscopicQuantitiesCoProcessor(converter, + auto mqSimulationObserver = makeMacroscopicQuantitiesSimulationObserver(converter, visualizationScheduler); - auto nupsCoProcessor = makeNupsCoProcessor(); + auto nupsSimulationObserver = makeNupsSimulationObserver(); auto calculator = std::make_shared<BasicCalculator>(grid, visualizationScheduler, simulationParameters->numberOfTimeSteps); - calculator->addCoProcessor(nupsCoProcessor); - calculator->addCoProcessor(mqCoProcessor); + calculator->addSimulationObserver(nupsSimulationObserver); + calculator->addSimulationObserver(mqSimulationObserver); if (isMainProcess()) UBLOG(logINFO, "Simulation-start") calculator->calculate(); @@ -223,7 +222,7 @@ Simulation::makeLBMUnitConverter() void Simulation::writeBoundaryConditions() const { auto geoSch = std::make_shared<UbScheduler>(1); - WriteBoundaryConditionsCoProcessor ppgeo(grid, geoSch, writerConfig.outputPath, writerConfig.getWriter(), + WriteBoundaryConditionsSimulationObserver ppgeo(grid, geoSch, writerConfig.outputPath, writerConfig.getWriter(), communicator); ppgeo.process(0); } @@ -232,7 +231,7 @@ void Simulation::writeBlocksToFile() const { UBLOG(logINFO, "Write block grid to VTK-file") auto scheduler = std::make_shared<UbScheduler>(1); - auto ppblocks = std::make_shared<WriteBlocksCoProcessor>(grid, + auto ppblocks = std::make_shared<WriteBlocksSimulationObserver>(grid, scheduler, writerConfig.outputPath, writerConfig.getWriter(), @@ -272,23 +271,23 @@ void Simulation::initializeDistributions() grid->accept(initVisitor); } -std::shared_ptr<CoProcessor> -Simulation::makeMacroscopicQuantitiesCoProcessor(const std::shared_ptr<LBMUnitConverter> &converter, +std::shared_ptr<SimulationObserver> +Simulation::makeMacroscopicQuantitiesSimulationObserver(const std::shared_ptr<LBMUnitConverter> &converter, const std::shared_ptr<UbScheduler> &visualizationScheduler) const { - auto mqCoProcessor = std::make_shared<WriteMacroscopicQuantitiesCoProcessor>(grid, visualizationScheduler, + auto mqSimulationObserver = std::make_shared<WriteMacroscopicQuantitiesSimulationObserver>(grid, visualizationScheduler, writerConfig.outputPath, writerConfig.getWriter(), converter, communicator); - mqCoProcessor->process(0); - return mqCoProcessor; + mqSimulationObserver->process(0); + return mqSimulationObserver; } -std::shared_ptr<CoProcessor> Simulation::makeNupsCoProcessor() const +std::shared_ptr<SimulationObserver> Simulation::makeNupsSimulationObserver() const { auto scheduler = std::make_shared<UbScheduler>(100, 100); - return std::make_shared<NUPSCounterCoProcessor>(grid, scheduler, + return std::make_shared<NUPSCounterSimulationObserver>(grid, scheduler, simulationParameters->numberOfThreads, communicator); } -- GitLab