diff --git a/dune/gfe/targetspacertrsolver.cc b/dune/gfe/targetspacertrsolver.cc index bd50c876805a0205044660e1c3f537ef9c80374a..2612f63ffdd57aa89baca3fe67d0abac07445159 100644 --- a/dune/gfe/targetspacertrsolver.cc +++ b/dune/gfe/targetspacertrsolver.cc @@ -48,7 +48,7 @@ setup(const AverageDistanceAssembler<TargetSpace>* assembler, template <class TargetSpace> void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() { - MaxNormTrustRegion<blocksize> trustRegion(1, // we have only one block + MaxNormTrustRegion<blocksize,field_type> trustRegion(1, // we have only one block initialTrustRegionRadius_); // ///////////////////////////////////////////////////// @@ -110,8 +110,8 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() newIterate = TargetSpace::exp(newIterate, corr[0]); /** \todo Don't always recompute oldEnergy */ - double oldEnergy = assembler_->value(x_); - double energy = assembler_->value(newIterate); + field_type oldEnergy = assembler_->value(x_); + field_type energy = assembler_->value(newIterate); // compute the model decrease // It is $ m(x) - m(x+s) = -<g,s> - 0.5 <s, Hs> @@ -119,7 +119,7 @@ void TargetSpaceRiemannianTRSolver<TargetSpace>::solve() CorrectionType tmp(corr.size()); tmp = 0; hesseMatrix.umv(corr, tmp); - double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); + field_type modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); if (this->verbosity_ == NumProc::FULL) { std::cout << "Absolute model decrease: " << modelDecrease diff --git a/dune/gfe/targetspacertrsolver.hh b/dune/gfe/targetspacertrsolver.hh index 435b4035fcf48fe4a34529b425d0a4e4e74060cf..2213cb157720795050cdd7061e56e8d1842727c6 100644 --- a/dune/gfe/targetspacertrsolver.hh +++ b/dune/gfe/targetspacertrsolver.hh @@ -18,7 +18,7 @@ class TargetSpaceRiemannianTRSolver const static int blocksize = TargetSpace::TangentVector::dimension; // Centralize the field type here - typedef double field_type; + typedef typename TargetSpace::ctype field_type; // Some types that I need // The types have the dynamic outer type because the dune-solvers solvers expect