Skip to content
Snippets Groups Projects
Commit 7825b729 authored by oliver.sander_at_tu-dresden.de's avatar oliver.sander_at_tu-dresden.de
Browse files

Merge branch 'allow-stateful-bases' into 'master'

Fixes towards allowing stateful bases in TrustRegionSolver

See merge request !52
parents 9ab15b5c fccf41b9
No related branches found
No related tags found
1 merge request!52Fixes towards allowing stateful bases in TrustRegionSolver
Pipeline #31571 passed
...@@ -90,7 +90,7 @@ setup(const typename BasisType::GridView::Grid& grid, ...@@ -90,7 +90,7 @@ setup(const typename BasisType::GridView::Grid& grid,
std::conditional_t< // do we have a dune-functions basis? std::conditional_t< // do we have a dune-functions basis?
Dune::models<Dune::Functions::Concept::GlobalBasis<GridView>, BasisType>(), Dune::models<Dune::Functions::Concept::GlobalBasis<GridView>, BasisType>(),
BasisType, BasisType,
DuneFunctionsBasis<BasisType> > basis(grid.leafGridView()); DuneFunctionsBasis<BasisType> > basis(assembler_->basis_);
// //////////////////////////////// // ////////////////////////////////
// Create a multigrid solver // Create a multigrid solver
// //////////////////////////////// // ////////////////////////////////
...@@ -361,14 +361,11 @@ void TrustRegionSolver<BasisType,VectorType>::solve() ...@@ -361,14 +361,11 @@ void TrustRegionSolver<BasisType,VectorType>::solve()
mgStep = dynamic_cast<MonotoneMGStep<MatrixType,CorrectionType>*>(&iterationStep); mgStep = dynamic_cast<MonotoneMGStep<MatrixType,CorrectionType>*>(&iterationStep);
} }
BasisType basis(grid_->leafGridView());
#else #else
BasisType basis(grid_->levelGridView(grid_->maxLevel()));
BasisType coarseBasis(grid_->levelGridView(0)); BasisType coarseBasis(grid_->levelGridView(0));
std::vector<BoxConstraint<typename VectorType::field_type, blocksize>> coarseTrustRegionObstacles(coarseBasis.size()); std::vector<BoxConstraint<typename VectorType::field_type, blocksize>> coarseTrustRegionObstacles(coarseBasis.size());
#endif #endif
MaxNormTrustRegion<blocksize> trustRegion(basis.size(), initialTrustRegionRadius_); MaxNormTrustRegion<blocksize> trustRegion(assembler_->basis_.size(), initialTrustRegionRadius_);
std::vector<BoxConstraint<field_type,blocksize> > trustRegionObstacles; std::vector<BoxConstraint<field_type,blocksize> > trustRegionObstacles;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment