summaryrefslogtreecommitdiff
path: root/src/refinement
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-01-30 20:12:31 +0100
committerAdrian Kummerlaender2019-06-24 15:17:09 +0200
commit5e888fc13f38c94777963d72fc9e391cd4fa477a (patch)
tree75a018f2ec897879de28d4cc31aae16f48ae658e /src/refinement
parent860919a818e792185dc902b5be6754c0ff1e2dcb (diff)
downloadgrid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar.gz
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar.bz2
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar.lz
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar.xz
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.tar.zst
grid_refinement_openlb-5e888fc13f38c94777963d72fc9e391cd4fa477a.zip
Manage dynamics, boundary condition memory in Grid2D
Mainly to further declutter simulation and refinement setup
Diffstat (limited to 'src/refinement')
-rw-r--r--src/refinement/grid2D.h6
-rw-r--r--src/refinement/grid2D.hh17
2 files changed, 23 insertions, 0 deletions
diff --git a/src/refinement/grid2D.h b/src/refinement/grid2D.h
index f58a4ea..37e764a 100644
--- a/src/refinement/grid2D.h
+++ b/src/refinement/grid2D.h
@@ -77,6 +77,9 @@ protected:
std::unique_ptr<SuperGeometry2D<T>> _geometry;
std::unique_ptr<SuperLattice2D<T,DESCRIPTOR>> _lattice;
+ std::vector<std::unique_ptr<Dynamics<T,DESCRIPTOR>>> _dynamics;
+ std::vector<std::unique_ptr<sOnLatticeBoundaryCondition2D<T,DESCRIPTOR>>> _onLatticeBoundaryConditions;
+
std::vector<std::unique_ptr<RefiningGrid2D<T,DESCRIPTOR>>> _fineGrids;
std::vector<std::unique_ptr<FineCoupler2D<T,DESCRIPTOR>>> _fineCouplers;
@@ -92,6 +95,9 @@ public:
SuperGeometry2D<T>& getSuperGeometry();
SuperLattice2D<T,DESCRIPTOR>& getSuperLattice();
+ Dynamics<T,DESCRIPTOR>& addDynamics(std::unique_ptr<Dynamics<T,DESCRIPTOR>>&& dynamics);
+ sOnLatticeBoundaryCondition2D<T,DESCRIPTOR>& getOnLatticeBoundaryCondition();
+
void collideAndStream();
FineCoupler2D<T,DESCRIPTOR>& addFineCoupling(
diff --git a/src/refinement/grid2D.hh b/src/refinement/grid2D.hh
index f1caf84..941bff7 100644
--- a/src/refinement/grid2D.hh
+++ b/src/refinement/grid2D.hh
@@ -134,6 +134,23 @@ SuperLattice2D<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::getSuperLattice()
}
template <typename T, template<typename> class DESCRIPTOR>
+Dynamics<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::addDynamics(
+ std::unique_ptr<Dynamics<T,DESCRIPTOR>>&& dynamics)
+{
+ Dynamics<T,DESCRIPTOR>& ref = *dynamics;
+ _dynamics.emplace_back(std::move(dynamics));
+ return ref;
+}
+
+template <typename T, template<typename> class DESCRIPTOR>
+sOnLatticeBoundaryCondition2D<T,DESCRIPTOR>& Grid2D<T,DESCRIPTOR>::getOnLatticeBoundaryCondition()
+{
+ _onLatticeBoundaryConditions.emplace_back(
+ new sOnLatticeBoundaryCondition2D<T,DESCRIPTOR>(getSuperLattice()));
+ return *_onLatticeBoundaryConditions.back();
+}
+
+template <typename T, template<typename> class DESCRIPTOR>
void Grid2D<T,DESCRIPTOR>::collideAndStream()
{
for ( auto& fineCoupler : _fineCouplers ) {