diff --git a/dune/fem-dg/main/main_pol.cc b/dune/fem-dg/main/main_pol.cc index bdc2dc87be9290a8dcad9c384c8c30fc501b9744..b5cf8d0189d61eaabc1c0f1c442d68d2ef0fbda2 100644 --- a/dune/fem-dg/main/main_pol.cc +++ b/dune/fem-dg/main/main_pol.cc @@ -5,7 +5,7 @@ #endif // in dbug mode also enable FieldVector checking and dune devel mode -#ifndef DNDEBUG +#ifndef NDEBUG #define DUNE_ISTL_WITH_CHECKING #define DUNE_DEVEL_MODE #endif @@ -19,6 +19,7 @@ #include <config.h> +#include <memory> #include <dune/common/version.hh> #include "main.hh" @@ -44,19 +45,8 @@ // problem dependent #include <problemcreator.hh> -#if defined NS_ELLIPTIC_OPERATOR -#include <dune/fem-dg/stepper/ellipt.hh> -#elif defined EULER -#include <dune/fem-dg/stepper/advectionstepper.hh> -#else -#include <dune/fem-dg/stepper/advectiondiffusionstepper.hh> -#endif - -#include <dune/fem/space/common/allgeomtypes.hh> #include <dune/fem/misc/femeoc.hh> -#include <dune/grid/io/visual/grapedatadisplay.hh> - #include <dune/fem/misc/flops.hh> #if POLORDER == 0 @@ -119,28 +109,24 @@ namespace LOOPSPACE { typedef Dune::GridSelector :: GridType GridType; typedef ProblemGenerator< GridType > ProblemTraits; - // Note to me: problem description is for FemEOC - const std::string advFlux = ProblemTraits :: advectionFluxName(); - const std::string diffFlux = ProblemTraits :: diffusionFluxName(); - - // use problem specific initialize method since some problems do different things - // there, e.g. poisson // return type of initializeGrid is Dune::GridPtr, use release such that memory of GridPtr is released - GridType* gridptr = ProblemTraits :: initializeGrid( advFlux + diffFlux ).release(); + std::unique_ptr< GridType > gridptr ( ProblemTraits :: initializeGrid().release() ); // get grid reference GridType& grid = *gridptr; -#if defined NS_ELLIPTIC_OPERATOR - typedef EllipticAlgorithm<GridType, - ProblemTraits, - POLORDER> StepperType; - -#else - typedef Stepper<GridType, ProblemTraits, POLORDER> StepperType; +#ifndef NAVIER_STOKES_STEPPER_HH + // the new way + typedef ProblemTraits :: Stepper< ProblemTraits > :: Type StepperType ; +#else +#warning "Using deprecated method of Stepper selection. Please consult the fem-dg examples for update" + // the old legacy way + typedef Stepper< GridType, ProblemTraits, POLORDER > StepperType ; #endif + // create stepper on heap, otherwise problems with stack size - StepperType* stepper = new StepperType( grid ); + std::unique_ptr< StepperType > stepper( new StepperType( grid ) ); + assert( stepper ); compute( *stepper ); @@ -152,10 +138,6 @@ namespace LOOPSPACE { // print results Dune::Fem::FlopCounter::print( std::cout ); } - - // delete data - delete stepper; - delete gridptr; } } // end namespace LOOPSPACE