From 17dc2bd7f63cfaac7c56827569126755a2a29756 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Thu, 6 Sep 2018 16:57:11 +0200 Subject: [PATCH] Support dim==1 and dim!=dimworld --- src/compute-disc-error.cc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/compute-disc-error.cc b/src/compute-disc-error.cc index 5d4256c9..351cd6d7 100644 --- a/src/compute-disc-error.cc +++ b/src/compute-disc-error.cc @@ -9,6 +9,12 @@ #include <dune/grid/io/file/gmshreader.hh> #include <dune/grid/utility/structuredgridfactory.hh> +#if HAVE_DUNE_FOAMGRID +#include <dune/foamgrid/foamgrid.hh> +#else +#include <dune/grid/onedgrid.hh> +#endif + #include <dune/functions/functionspacebases/lagrangebasis.hh> #include <dune/matrix-vector/genericvectortools.hh> @@ -361,8 +367,8 @@ void measureAnalyticalEOC(const GridView gridView, refRotation.matrix(refValueMatrix); // Evaluate derivatives in quaternion space - FieldMatrix<double,blocksize,dim> num_di; - FieldMatrix<double,blocksize,dim> ref_di; + FieldMatrix<double,blocksize,dimworld> num_di; + FieldMatrix<double,blocksize,dimworld> ref_di; if (dynamic_cast<const VirtualGridViewFunction<GridView,FieldVector<double,blocksize> >*>(numericalSolution.get())) dynamic_cast<const VirtualGridViewFunction<GridView,FieldVector<double,blocksize> >*>(numericalSolution.get())->evaluateDerivativeLocal(element, @@ -509,7 +515,12 @@ int main (int argc, char *argv[]) try ///////////////////////////////////////// // Create the grids ///////////////////////////////////////// - typedef UGGrid<dim> GridType; +#if HAVE_DUNE_FOAMGRID + typedef std::conditional<dim==1 or dim!=dimworld,FoamGrid<dim,dimworld>,UGGrid<dim> >::type GridType; +#else + static_assert(dim==dimworld, "You need to have dune-foamgrid installed for dim != dimworld!"); + typedef std::conditional<dim==1,OneDGrid,UGGrid<dim> >::type GridType; +#endif const int numLevels = parameterSet.get<int>("numLevels"); -- GitLab