summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-01-31 15:14:03 +0100
committerAdrian Kummerlaender2019-06-24 15:17:09 +0200
commit3bc4210c9a3c10ffe61f0237bba101f9700b7668 (patch)
tree2a214bf7fc7db75ad12d936297d485ede4436e56
parent39e22863be1e50bd8e6b36f3d3ecbd1bec09e6a0 (diff)
downloadgrid_refinement_openlb-3bc4210c9a3c10ffe61f0237bba101f9700b7668.tar
grid_refinement_openlb-3bc4210c9a3c10ffe61f0237bba101f9700b7668.tar.gz
grid_refinement_openlb-3bc4210c9a3c10ffe61f0237bba101f9700b7668.tar.bz2
grid_refinement_openlb-3bc4210c9a3c10ffe61f0237bba101f9700b7668.tar.xz
grid_refinement_openlb-3bc4210c9a3c10ffe61f0237bba101f9700b7668.zip
Report total number of active cells in refinement hierarchy
-rw-r--r--apps/adrian/cylinder2d/cylinder2d.cpp5
-rw-r--r--apps/adrian/poiseuille2d/poiseuille2d.cpp1
-rw-r--r--src/refinement/grid2D.h2
-rw-r--r--src/refinement/grid2D.hh10
4 files changed, 16 insertions, 2 deletions
diff --git a/apps/adrian/cylinder2d/cylinder2d.cpp b/apps/adrian/cylinder2d/cylinder2d.cpp
index 56866c4..a0732e4 100644
--- a/apps/adrian/cylinder2d/cylinder2d.cpp
+++ b/apps/adrian/cylinder2d/cylinder2d.cpp
@@ -251,7 +251,7 @@ int main(int argc, char* argv[])
coarseGrid.getSuperGeometry().rename(4,0,refined);
}
- const Vector<T,2> fineExtend2 {4*cylinderD, 2*cylinderD};
+ const Vector<T,2> fineExtend2 {3.6*cylinderD, 2*cylinderD};
const Vector<T,2> fineOrigin2 {1*cylinderD, 2*cylinderD-fineExtend2[1]/2};
auto& fineGrid2 = fineGrid.refine(fineOrigin2, fineExtend2);
@@ -264,12 +264,13 @@ int main(int argc, char* argv[])
prepareLattice(fineOutflowGrid);
prepareLattice(fineGrid2);
+ clout << "Total number of active cells: " << coarseGrid.getActiveVoxelN() << endl;
clout << "Starting simulation..." << endl;
Timer<T> timer(
coarseGrid.getConverter().getLatticeTime(maxPhysT),
coarseGrid.getSuperGeometry().getStatistics().getNvoxel());
timer.start();
- const int statIter = coarseGrid.getConverter().getLatticeTime(0.5);
+ const int statIter = coarseGrid.getConverter().getLatticeTime(1);
for (int iT = 0; iT < coarseGrid.getConverter().getLatticeTime(maxPhysT); ++iT) {
setBoundaryValues(coarseGrid, iT);
diff --git a/apps/adrian/poiseuille2d/poiseuille2d.cpp b/apps/adrian/poiseuille2d/poiseuille2d.cpp
index 4091905..5a47f96 100644
--- a/apps/adrian/poiseuille2d/poiseuille2d.cpp
+++ b/apps/adrian/poiseuille2d/poiseuille2d.cpp
@@ -248,6 +248,7 @@ int main(int argc, char* argv[])
prepareLattice(fineGrid);
+ clout << "Total number of active cells: " << coarseGrid.getActiveVoxelN() << endl;
clout << "starting simulation..." << endl;
Timer<T> timer(
coarseGrid.getConverter().getLatticeTime(maxPhysT),
diff --git a/src/refinement/grid2D.h b/src/refinement/grid2D.h
index 37e764a..95324f7 100644
--- a/src/refinement/grid2D.h
+++ b/src/refinement/grid2D.h
@@ -110,6 +110,8 @@ public:
RefiningGrid2D<T,DESCRIPTOR>& refine(Vector<T,2> origin, Vector<T,2> extend, bool addCouplers=true);
+ std::size_t getActiveVoxelN() const;
+
};
template <typename T, template<typename> class DESCRIPTOR>
diff --git a/src/refinement/grid2D.hh b/src/refinement/grid2D.hh
index 941bff7..504808a 100644
--- a/src/refinement/grid2D.hh
+++ b/src/refinement/grid2D.hh
@@ -218,6 +218,16 @@ Vector<T,2> Grid2D<T,DESCRIPTOR>::alignExtendToGrid(Vector<T,2> extend) const
}
template <typename T, template<typename> class DESCRIPTOR>
+std::size_t Grid2D<T,DESCRIPTOR>::getActiveVoxelN() const
+{
+ std::size_t n = _geometry->getStatistics().getNvoxel();
+ for (const auto& grid : _fineGrids) {
+ n += grid->getActiveVoxelN();
+ }
+ return n;
+}
+
+template <typename T, template<typename> class DESCRIPTOR>
RefiningGrid2D<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::refine(
Vector<T,2> wantedOrigin, Vector<T,2> wantedExtend, bool addCouplers)
{