diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc index 532a06a7fbcfbc25df78608260ba8e28c49bb8b7..15def31270de0bec83cdc35286bc26e4f320a14d 100644 --- a/dune/gfe/mixedriemanniantrsolver.cc +++ b/dune/gfe/mixedriemanniantrsolver.cc @@ -87,20 +87,20 @@ setup(const GridType& grid, baseSolver1->setTolerance(baseTolerance); #else // First create a Gauss-seidel base solver - TrustRegionGSStep<MatrixType00, CorrectionType0>* baseSolverStep0 = new TrustRegionGSStep<MatrixType00, CorrectionType0>; - TrustRegionGSStep<MatrixType11, CorrectionType1>* baseSolverStep1 = new TrustRegionGSStep<MatrixType11, CorrectionType1>; + auto baseSolverStep0 = std::make_shared< TrustRegionGSStep<MatrixType00, CorrectionType0> >(); + auto baseSolverStep1 = std::make_shared< TrustRegionGSStep<MatrixType11, CorrectionType1> >(); // Hack: the two-norm may not scale all that well, but it is fast! - TwoNorm<CorrectionType0>* baseNorm0 = new TwoNorm<CorrectionType0>; - TwoNorm<CorrectionType1>* baseNorm1 = new TwoNorm<CorrectionType1>; + auto baseNorm0 = std::make_shared< TwoNorm<CorrectionType0> >(); + auto baseNorm1 = std::make_shared< TwoNorm<CorrectionType1> >(); - ::LoopSolver<CorrectionType0>* baseSolver0 = new ::LoopSolver<CorrectionType0>(baseSolverStep0, + auto baseSolver0 = std::make_shared< ::LoopSolver<CorrectionType0> >(baseSolverStep0, baseIterations, baseTolerance, baseNorm0, Solver::QUIET); - ::LoopSolver<CorrectionType1>* baseSolver1 = new ::LoopSolver<CorrectionType1>(baseSolverStep1, + auto baseSolver1 = std::make_shared< ::LoopSolver<CorrectionType1> >(baseSolverStep1, baseIterations, baseTolerance, baseNorm1, diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh index 371ef40c1c233c43fc02107e7aecc56a2b02421a..8589fcc4730410ba1aa1068eaa72d6d7292836fc 100644 --- a/dune/gfe/rotation.hh +++ b/dune/gfe/rotation.hh @@ -208,7 +208,7 @@ public: : Quaternion<T>(0,0,0,1) {} - explicit Rotation<T,3>(const std::array<T,4>& c) + explicit Rotation(const std::array<T,4>& c) { for (int i=0; i<4; i++) (*this)[i] = c[i]; @@ -216,13 +216,13 @@ public: *this /= this->two_norm(); } - explicit Rotation<T,3>(const Dune::FieldVector<T,4>& c) + explicit Rotation(const Dune::FieldVector<T,4>& c) : Quaternion<T>(c) { *this /= this->two_norm(); } - Rotation<T,3>(Dune::FieldVector<T,3> axis, T angle) + Rotation(Dune::FieldVector<T,3> axis, T angle) { axis /= axis.two_norm(); axis *= std::sin(angle/2);