From 41cb8a319ecac4d3d4912be2ce91d21d50b7d754 Mon Sep 17 00:00:00 2001 From: Simon Praetorius <simon.praetorius@tu-dresden.de> Date: Wed, 20 Mar 2019 11:14:42 +0100 Subject: [PATCH] parametrize BasisCreator with Grid instead of GridView --- examples/cahn_hilliard.cc | 2 +- examples/navier_stokes.cc | 2 +- examples/neumann.cc | 2 +- examples/periodic.cc | 2 +- examples/stokes0.cc | 2 +- examples/stokes1.cc | 2 +- examples/stokes3.cc | 2 +- examples/vecellipt.cc | 2 -- src/amdis/ProblemStatTraits.hpp | 13 +++++++------ test/DataTransferTest.hpp | 4 ++-- test/MarkerTest.cpp | 2 +- test/OperatorsTest.cpp | 2 +- 12 files changed, 18 insertions(+), 19 deletions(-) diff --git a/examples/cahn_hilliard.cc b/examples/cahn_hilliard.cc index ceccd5a9..9f68a576 100644 --- a/examples/cahn_hilliard.cc +++ b/examples/cahn_hilliard.cc @@ -9,7 +9,7 @@ using namespace AMDiS; using Grid = Dune::AlbertaGrid<GRIDDIM, WORLDDIM>; -using Param = LagrangeBasis<typename Grid::LeafGridView, 1, 1>; +using Param = LagrangeBasis<Grid, 1, 1>; int main(int argc, char** argv) { diff --git a/examples/navier_stokes.cc b/examples/navier_stokes.cc index ebb8fef7..4735e5f3 100644 --- a/examples/navier_stokes.cc +++ b/examples/navier_stokes.cc @@ -8,7 +8,7 @@ using namespace AMDiS; using Grid = Dune::YaspGrid<2>; -using Basis = TaylorHoodBasis<Grid::LeafGridView>; +using Basis = TaylorHoodBasis<Grid>; int main(int argc, char** argv) { diff --git a/examples/neumann.cc b/examples/neumann.cc index c94947b8..eb423465 100644 --- a/examples/neumann.cc +++ b/examples/neumann.cc @@ -25,7 +25,7 @@ void run(Grid& grid) { grid.globalRefine(Grid::dimension == 2 ? 4 : 2); - using Traits = LagrangeBasis<typename Grid::LeafGridView, 2>; + using Traits = LagrangeBasis<Grid, 2>; ProblemStat<Traits> prob("ellipt", grid); prob.initialize(INIT_ALL); prob.boundaryManager().setBoxBoundary({1,2,2,1}); diff --git a/examples/periodic.cc b/examples/periodic.cc index d1293153..2e61afb4 100644 --- a/examples/periodic.cc +++ b/examples/periodic.cc @@ -54,7 +54,7 @@ void print(Grid const& grid) template <class Grid> void run(Grid& grid) { - using Traits = LagrangeBasis<typename Grid::LeafGridView, 1>; + using Traits = LagrangeBasis<Grid, 1>; ProblemStat<Traits> prob("ellipt", grid); prob.initialize(INIT_ALL); diff --git a/examples/stokes0.cc b/examples/stokes0.cc index 6cb7168d..6c0bd639 100644 --- a/examples/stokes0.cc +++ b/examples/stokes0.cc @@ -5,7 +5,7 @@ using namespace AMDiS; using Grid = Dune::YaspGrid<2>; -using StokesParam = TaylorHoodBasis<Grid::LeafGridView>; +using StokesParam = TaylorHoodBasis<Grid>; using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) diff --git a/examples/stokes1.cc b/examples/stokes1.cc index 2755a9f5..13279763 100644 --- a/examples/stokes1.cc +++ b/examples/stokes1.cc @@ -5,7 +5,7 @@ using namespace AMDiS; using Grid = Dune::YaspGrid<2>; -using StokesParam = TaylorHoodBasis<Grid::LeafGridView>; +using StokesParam = TaylorHoodBasis<Grid>; using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) diff --git a/examples/stokes3.cc b/examples/stokes3.cc index 393a0b25..2358e900 100644 --- a/examples/stokes3.cc +++ b/examples/stokes3.cc @@ -6,7 +6,7 @@ using namespace AMDiS; using Grid = Dune::YaspGrid<2>; -using StokesParam = TaylorHoodBasis<Grid::LeafGridView>; +using StokesParam = TaylorHoodBasis<Grid>; using StokesProblem = ProblemStat<StokesParam>; int main(int argc, char** argv) diff --git a/examples/vecellipt.cc b/examples/vecellipt.cc index 09fa7997..ec3d4356 100644 --- a/examples/vecellipt.cc +++ b/examples/vecellipt.cc @@ -10,8 +10,6 @@ using namespace AMDiS; -// 1 component with polynomial degree 1 -//using Grid = Dune::AlbertaGrid<GRIDDIM, WORLDDIM>; using ElliptParam = YaspGridBasis<GRIDDIM, 2,2>; using ElliptProblem = ProblemStat<ElliptParam>; diff --git a/src/amdis/ProblemStatTraits.hpp b/src/amdis/ProblemStatTraits.hpp index 432be6f0..0be129b5 100644 --- a/src/amdis/ProblemStatTraits.hpp +++ b/src/amdis/ProblemStatTraits.hpp @@ -64,9 +64,10 @@ namespace AMDiS }; - template <class GridView, class PreBasisCreator> + template <class Grid, class PreBasisCreator> struct DefaultBasisCreator { + using GridView = typename Grid::LeafGridView; static auto create(GridView const& gridView) { using namespace Dune::Functions::BasisFactory; @@ -78,23 +79,23 @@ namespace AMDiS /// \brief ProblemStatTraits for a (composite) basis composed of /// lagrange bases of different degree. - template <class GridView, int... degrees> + template <class Grid, int... degrees> struct LagrangeBasis - : public DefaultBasisCreator<GridView, Impl::LagrangePreBasisCreator<degrees...>> + : public DefaultBasisCreator<Grid, Impl::LagrangePreBasisCreator<degrees...>> {}; /// \brief Specialization of \ref LagrangeBasis for Grid type /// \ref Dune::YaspGrid for a given dimension. template <int dim, int... degrees> struct YaspGridBasis - : public LagrangeBasis<typename Dune::YaspGrid<dim>::LeafGridView, degrees...> + : public LagrangeBasis<Dune::YaspGrid<dim>, degrees...> {}; /// \brief ProblemStatTraits of Taylor-Hood basis of lagrange-type /// with pressure degree k - template <class GridView, int k = 1> + template <class Grid, int k = 1> struct TaylorHoodBasis - : public DefaultBasisCreator<GridView, Impl::TaylorHoodPreBasisCreator<GridView::dimensionworld,k>> + : public DefaultBasisCreator<Grid, Impl::TaylorHoodPreBasisCreator<Grid::dimensionworld,k>> {}; } // end namespace AMDiS diff --git a/test/DataTransferTest.hpp b/test/DataTransferTest.hpp index 11f0e301..d2478feb 100644 --- a/test/DataTransferTest.hpp +++ b/test/DataTransferTest.hpp @@ -159,8 +159,8 @@ bool refine_test(Fcts<BasisCreator> const& funcs, bool simplex = true) } template <class Grid> - using Lagrange3 = LagrangeBasis<typename Grid::LeafGridView, 3>; + using Lagrange3 = LagrangeBasis<Grid, 3>; template <class Grid> - using TaylorHood = TaylorHoodBasis<typename Grid::LeafGridView>; + using TaylorHood = TaylorHoodBasis<Grid>; constexpr double pi = 3.141592653589793238463; diff --git a/test/MarkerTest.cpp b/test/MarkerTest.cpp index 18968a7b..8448ef9c 100644 --- a/test/MarkerTest.cpp +++ b/test/MarkerTest.cpp @@ -8,7 +8,7 @@ using namespace AMDiS; static const int d = 2; // problem dimension using Grid = Dune::UGGrid<d>; -using Basis = LagrangeBasis<Grid::LeafGridView, 1>; +using Basis = LagrangeBasis<Grid, 1>; using Problem = ProblemStat<Basis>; using DomainType = typename Dune::FieldVector<double,d>; diff --git a/test/OperatorsTest.cpp b/test/OperatorsTest.cpp index 1568cec3..b52fb972 100644 --- a/test/OperatorsTest.cpp +++ b/test/OperatorsTest.cpp @@ -10,7 +10,7 @@ using namespace AMDiS; using Grid = Dune::YaspGrid<2>; -using Param = TaylorHoodBasis<typename Grid::LeafGridView>; +using Param = TaylorHoodBasis<Grid>; using Problem = ProblemStat<Param>; int main(int argc, char** argv) -- GitLab