Skip to content
Snippets Groups Projects
Commit cbb0a6c9 authored by Max Kahnt's avatar Max Kahnt
Browse files

Merge branch 'master' into feature/blockgsstep-default-constructible

parents 1def8160 8f82718f
No related branches found
No related tags found
1 merge request!14Feature/blockgsstep default constructible
...@@ -352,7 +352,8 @@ auto gs(Args&&... args) { ...@@ -352,7 +352,8 @@ auto gs(Args&&... args) {
* \brief A Gauss--Seidel-type linear iteration step. * \brief A Gauss--Seidel-type linear iteration step.
* \param localSolver The solver for the linear block correction problems. * \param localSolver The solver for the linear block correction problems.
*/ */
template <class Matrix, class Vector, class BitVector, class LocalSolver> template <class LocalSolver, class Matrix, class Vector,
class BitVector = Dune::Solvers::DefaultBitVector_t<Vector>>
struct BlockGSStep : public LinearIterationStep<Matrix, Vector, BitVector> { struct BlockGSStep : public LinearIterationStep<Matrix, Vector, BitVector> {
//! \brief Implicitly default-construct local solver //! \brief Implicitly default-construct local solver
...@@ -415,7 +416,7 @@ struct BlockGSStepFactory { ...@@ -415,7 +416,7 @@ struct BlockGSStepFactory {
static auto create( static auto create(
LocalSolver&& localSolver, LocalSolver&& localSolver,
BlockGS::Direction direction = BlockGS::Direction::FORWARD) { BlockGS::Direction direction = BlockGS::Direction::FORWARD) {
return BlockGSStep<Matrix, Vector, BitVector, LocalSolver>( return BlockGSStep<LocalSolver, Matrix, Vector, BitVector>(
std::forward<LocalSolver>(localSolver), direction); std::forward<LocalSolver>(localSolver), direction);
} }
...@@ -424,7 +425,7 @@ struct BlockGSStepFactory { ...@@ -424,7 +425,7 @@ struct BlockGSStepFactory {
LocalSolver&& localSolver, LocalSolver&& localSolver,
BlockGS::Direction direction = BlockGS::Direction::FORWARD) { BlockGS::Direction direction = BlockGS::Direction::FORWARD) {
return std::make_shared< return std::make_shared<
BlockGSStep<Matrix, Vector, BitVector, LocalSolver>>( BlockGSStep<LocalSolver, Matrix, Vector, BitVector>>(
std::forward<LocalSolver>(localSolver), direction); std::forward<LocalSolver>(localSolver), direction);
} }
......
...@@ -73,8 +73,7 @@ class ObstacleTNNMGStep ...@@ -73,8 +73,7 @@ class ObstacleTNNMGStep
typedef ProjectedBlockGSStep<Matrix, Vector> NonlinearSmoother; typedef ProjectedBlockGSStep<Matrix, Vector> NonlinearSmoother;
typedef Dune::Solvers::BlockGSStep< typedef Dune::Solvers::BlockGSStep<
Matrix, Vector, Dune::Solvers::DefaultBitVector_t<Vector>, decltype(Dune::Solvers::BlockGS::LocalSolvers::gs()), Matrix, Vector>
decltype(Dune::Solvers::BlockGS::LocalSolvers::gs())>
LinearSmoother; LinearSmoother;
typedef MultigridStep<Matrix, Vector, BitVector> LinearMultigridStep; typedef MultigridStep<Matrix, Vector, BitVector> LinearMultigridStep;
typedef EnergyNorm<Matrix, Vector> LinearBaseSolverEnergyNorm; typedef EnergyNorm<Matrix, Vector> LinearBaseSolverEnergyNorm;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment