From 9546a228faa725df3a1956995f5c247ac8c79f51 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 14 Jan 2019 15:42:21 +0100 Subject: Remove unnecessary managed pointers --- apps/adrian/poiseuille2d/poiseuille2d.cpp | 84 +++++++++++++++---------------- src/refinement/coupler2D.hh | 6 +-- src/refinement/grid2D.h | 2 - src/refinement/grid2D.hh | 16 ++---- 4 files changed, 48 insertions(+), 60 deletions(-) diff --git a/apps/adrian/poiseuille2d/poiseuille2d.cpp b/apps/adrian/poiseuille2d/poiseuille2d.cpp index 3d263fa..8b8640e 100644 --- a/apps/adrian/poiseuille2d/poiseuille2d.cpp +++ b/apps/adrian/poiseuille2d/poiseuille2d.cpp @@ -186,114 +186,114 @@ int main(int argc, char* argv[]) const Vector coarseExtend {lx, ly}; IndicatorCuboid2D coarseCuboid(coarseExtend, coarseOrigin); - auto coarseGrid = Grid2D::make(coarseCuboid, N, baseTau, Re); - prepareGeometry(coarseGrid->getConverter(), coarseGrid->getSuperGeometry()); + Grid2D coarseGrid(coarseCuboid, N, baseTau, Re); + prepareGeometry(coarseGrid.getConverter(), coarseGrid.getSuperGeometry()); const Vector fineExtend {3.0, 1.5}; const Vector fineOrigin {0.8, (ly-fineExtend[1])/2}; - auto fineGrid = &coarseGrid->refine(fineOrigin, fineExtend); - prepareGeometry(fineGrid->getConverter(), fineGrid->getSuperGeometry()); + auto& fineGrid = coarseGrid.refine(fineOrigin, fineExtend); + prepareGeometry(fineGrid.getConverter(), fineGrid.getSuperGeometry()); - auto refinedOverlap = fineGrid->getRefinedOverlap(); - coarseGrid->getSuperGeometry().rename(1,0,*refinedOverlap); - coarseGrid->getSuperGeometry().rename(2,0,*refinedOverlap); + auto refinedOverlap = fineGrid.getRefinedOverlap(); + coarseGrid.getSuperGeometry().rename(1,0,*refinedOverlap); + coarseGrid.getSuperGeometry().rename(2,0,*refinedOverlap); BGKdynamics coarseBulkDynamics( - coarseGrid->getConverter().getLatticeRelaxationFrequency(), + coarseGrid.getConverter().getLatticeRelaxationFrequency(), instances::getBulkMomenta()); - sOnLatticeBoundaryCondition2D coarseSBoundaryCondition(coarseGrid->getSuperLattice()); + sOnLatticeBoundaryCondition2D coarseSBoundaryCondition(coarseGrid.getSuperLattice()); createLocalBoundaryCondition2D(coarseSBoundaryCondition); prepareLattice( - coarseGrid->getConverter(), - coarseGrid->getSuperLattice(), + coarseGrid.getConverter(), + coarseGrid.getSuperLattice(), coarseBulkDynamics, coarseSBoundaryCondition, - coarseGrid->getSuperGeometry()); + coarseGrid.getSuperGeometry()); BGKdynamics fineBulkDynamics( - fineGrid->getConverter().getLatticeRelaxationFrequency(), + fineGrid.getConverter().getLatticeRelaxationFrequency(), instances::getBulkMomenta()); - sOnLatticeBoundaryCondition2D fineSBoundaryCondition(fineGrid->getSuperLattice()); + sOnLatticeBoundaryCondition2D fineSBoundaryCondition(fineGrid.getSuperLattice()); createLocalBoundaryCondition2D(fineSBoundaryCondition); const Vector fineExtend2 {0.6, 0.4}; const Vector fineOrigin2 {1.05, (ly-fineExtend2[1])/2}; - auto fineGrid2 = &fineGrid->refine(fineOrigin2, fineExtend2); - prepareGeometry(fineGrid2->getConverter(), fineGrid2->getSuperGeometry()); + auto& fineGrid2 = fineGrid.refine(fineOrigin2, fineExtend2); + prepareGeometry(fineGrid2.getConverter(), fineGrid2.getSuperGeometry()); - auto refinedOverlap2 = fineGrid2->getRefinedOverlap(); - fineGrid->getSuperGeometry().rename(1,0,*refinedOverlap2); - fineGrid->getSuperGeometry().rename(2,0,*refinedOverlap2); + auto refinedOverlap2 = fineGrid2.getRefinedOverlap(); + fineGrid.getSuperGeometry().rename(1,0,*refinedOverlap2); + fineGrid.getSuperGeometry().rename(2,0,*refinedOverlap2); prepareLattice( - fineGrid->getConverter(), - fineGrid->getSuperLattice(), + fineGrid.getConverter(), + fineGrid.getSuperLattice(), fineBulkDynamics, fineSBoundaryCondition, - fineGrid->getSuperGeometry()); + fineGrid.getSuperGeometry()); BGKdynamics fineBulkDynamics2( - fineGrid2->getConverter().getLatticeRelaxationFrequency(), + fineGrid2.getConverter().getLatticeRelaxationFrequency(), instances::getBulkMomenta()); - sOnLatticeBoundaryCondition2D fineSBoundaryCondition2(fineGrid2->getSuperLattice()); + sOnLatticeBoundaryCondition2D fineSBoundaryCondition2(fineGrid2.getSuperLattice()); createLocalBoundaryCondition2D(fineSBoundaryCondition2); prepareLattice( - fineGrid2->getConverter(), - fineGrid2->getSuperLattice(), + fineGrid2.getConverter(), + fineGrid2.getSuperLattice(), fineBulkDynamics2, fineSBoundaryCondition2, - fineGrid2->getSuperGeometry()); + fineGrid2.getSuperGeometry()); clout << "starting simulation..." << endl; Timer timer( - coarseGrid->getConverter().getLatticeTime(maxPhysT), - coarseGrid->getSuperGeometry().getStatistics().getNvoxel()); + coarseGrid.getConverter().getLatticeTime(maxPhysT), + coarseGrid.getSuperGeometry().getStatistics().getNvoxel()); util::ValueTracer converge( - fineGrid2->getConverter().getLatticeTime(physInterval), + fineGrid2.getConverter().getLatticeTime(physInterval), residuum); timer.start(); - for (int iT = 0; iT < coarseGrid->getConverter().getLatticeTime(maxPhysT); ++iT) { + for (int iT = 0; iT < coarseGrid.getConverter().getLatticeTime(maxPhysT); ++iT) { if (converge.hasConverged()) { clout << "Simulation converged." << endl; break; } - coarseGrid->collideAndStream(); + coarseGrid.collideAndStream(); getResults( "coarse_", - coarseGrid->getSuperLattice(), - coarseGrid->getConverter(), + coarseGrid.getSuperLattice(), + coarseGrid.getConverter(), iT, - coarseGrid->getSuperGeometry(), + coarseGrid.getSuperGeometry(), timer, converge.hasConverged()); getResults( "fine_", - fineGrid->getSuperLattice(), - fineGrid->getConverter(), + fineGrid.getSuperLattice(), + fineGrid.getConverter(), iT, - fineGrid->getSuperGeometry(), + fineGrid.getSuperGeometry(), timer, converge.hasConverged()); getResults( "fine2_", - fineGrid2->getSuperLattice(), - fineGrid2->getConverter(), + fineGrid2.getSuperLattice(), + fineGrid2.getConverter(), iT, - fineGrid2->getSuperGeometry(), + fineGrid2.getSuperGeometry(), timer, converge.hasConverged()); - converge.takeValue(fineGrid2->getSuperLattice().getStatistics().getAverageEnergy(), true); + converge.takeValue(fineGrid2.getSuperLattice().getStatistics().getAverageEnergy(), true); } timer.stop(); diff --git a/src/refinement/coupler2D.hh b/src/refinement/coupler2D.hh index 1d773f3..3bd2b2f 100644 --- a/src/refinement/coupler2D.hh +++ b/src/refinement/coupler2D.hh @@ -75,7 +75,7 @@ Coupler2D::Coupler2D(Grid2D& coarse, Grid2D stepPhysR = _vertical ? Vector{0, deltaX} : Vector{deltaX, 0}; + const Vector stepPhysR = _vertical ? Vector {0, deltaX} : Vector {deltaX, 0}; for (int i=0; i < _fineSize; ++i) { if (i % 2 == 0) { @@ -186,7 +186,7 @@ void FineCoupler2D::couple() Cell cell; fineLattice.get(finePos, cell); for (int iPop=0; iPop < DESCRIPTOR::q; ++iPop) { - cell[iPop] = fEq[iPop] + this->getScalingFactor() * _c2f_fneq[y][iPop]; + cell[iPop] = fEq[iPop] + this->getScalingFactor() * _c2f_fneq[y][iPop]; } fineLattice.set(finePos, cell); } @@ -309,7 +309,7 @@ void computeRestrictedFneq(const SuperLattice2D& lattice, T restrictedFneq[DESCRIPTOR::q]) { for (int iPop=0; iPop < DESCRIPTOR::q; ++iPop) { - const auto neighbor = latticeR + Vector{0, DESCRIPTOR::c[iPop][0], DESCRIPTOR::c[iPop][1]}; + const auto neighbor = latticeR + Vector {0, DESCRIPTOR::c[iPop][0], DESCRIPTOR::c[iPop][1]}; Cell cell; lattice.get(neighbor, cell); diff --git a/src/refinement/grid2D.h b/src/refinement/grid2D.h index d782651..9a20544 100644 --- a/src/refinement/grid2D.h +++ b/src/refinement/grid2D.h @@ -60,8 +60,6 @@ protected: std::vector>> _coarseCouplers; public: - static std::unique_ptr> make(IndicatorF2D& domainF, int resolution, T tau, int re); - Grid2D(FunctorPtr>&& domainF, int resolution, T tau, int re); UnitConverter& getConverter(); diff --git a/src/refinement/grid2D.hh b/src/refinement/grid2D.hh index aa82240..02fe351 100644 --- a/src/refinement/grid2D.hh +++ b/src/refinement/grid2D.hh @@ -33,16 +33,6 @@ namespace olb { -template class DESCRIPTOR> -std::unique_ptr> Grid2D::make( - IndicatorF2D& domainF, - int resolution, T tau, int re) -{ - return std::unique_ptr>( - new Grid2D(domainF, resolution, tau, re) - ); -} - template class DESCRIPTOR> Grid2D::Grid2D(FunctorPtr>&& domainF, int resolution, T tau, int re): _domainF(std::move(domainF)), @@ -62,7 +52,7 @@ Grid2D::Grid2D(FunctorPtr>&& domainF, int resoluti #else 1 #endif - )), + )), _balancer(new HeuristicLoadBalancer( *_cuboids)), _geometry(new SuperGeometry2D( @@ -191,7 +181,7 @@ RefiningGrid2D& Grid2D::refine( addFineCoupling(fineGrid, origin, extendX); const T coarseDeltaX = getConverter().getPhysDeltaX(); - const Vector innerOrigin = origin + coarseDeltaX; + const Vector innerOrigin = origin + coarseDeltaX; const Vector innerExtendX = extendX - Vector {2*coarseDeltaX,0}; const Vector innerExtendY = extendY - Vector {0,2*coarseDeltaX}; @@ -244,7 +234,7 @@ std::unique_ptr> RefiningGrid2D::getRefinedOverlap const T coarseDeltaX = _parentGrid.getConverter().getPhysDeltaX(); return std::unique_ptr>( - new IndicatorCuboid2D(_extend - 4*coarseDeltaX, _origin + 2*coarseDeltaX)); + new IndicatorCuboid2D(_extend - 4*coarseDeltaX, _origin + 2*coarseDeltaX)); } } -- cgit v1.2.3