diff --git a/dune/elasticity/common/trustregionsolver.cc b/dune/elasticity/common/trustregionsolver.cc index 0f88e6d546e36f3fb4eba7091c9740c868f6a1fa..f68e64c077cafd4faca1729e7a88753c1e1b90bf 100644 --- a/dune/elasticity/common/trustregionsolver.cc +++ b/dune/elasticity/common/trustregionsolver.cc @@ -90,7 +90,7 @@ setup(const typename BasisType::GridView::Grid& grid, std::conditional_t< // do we have a dune-functions basis? Dune::models<Dune::Functions::Concept::GlobalBasis<GridView>, BasisType>(), BasisType, - DuneFunctionsBasis<BasisType> > basis(grid.leafGridView()); + DuneFunctionsBasis<BasisType> > basis(assembler_->basis_); // //////////////////////////////// // Create a multigrid solver // //////////////////////////////// @@ -361,14 +361,11 @@ void TrustRegionSolver<BasisType,VectorType>::solve() mgStep = dynamic_cast<MonotoneMGStep<MatrixType,CorrectionType>*>(&iterationStep); } - - BasisType basis(grid_->leafGridView()); #else - BasisType basis(grid_->levelGridView(grid_->maxLevel())); BasisType coarseBasis(grid_->levelGridView(0)); std::vector<BoxConstraint<typename VectorType::field_type, blocksize>> coarseTrustRegionObstacles(coarseBasis.size()); #endif - MaxNormTrustRegion<blocksize> trustRegion(basis.size(), initialTrustRegionRadius_); + MaxNormTrustRegion<blocksize> trustRegion(assembler_->basis_.size(), initialTrustRegionRadius_); std::vector<BoxConstraint<field_type,blocksize> > trustRegionObstacles;