Skip to content
Snippets Groups Projects
Commit 42d9c764 authored by podlesny's avatar podlesny
Browse files

new program_state and fixpointiterator with makeLinearSolver,...

new program_state and fixpointiterator with makeLinearSolver, FunctionalFactory, NonlinearSolver working as intended
parent 7db7854f
No related branches found
No related tags found
No related merge requests found
...@@ -57,8 +57,8 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c ...@@ -57,8 +57,8 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c
auto linearSolver = std::make_shared<LinearSolver>(cgStep, parset_.template get<int>("solver.tnnmg.main.multi"), parset_.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), norm, Solver::QUIET); auto linearSolver = std::make_shared<LinearSolver>(cgStep, parset_.template get<int>("solver.tnnmg.main.multi"), parset_.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), norm, Solver::QUIET);
*/ */
// set multigrid solver
auto smoother = TruncatedBlockGSStep<Matrix, Vector>();
// transfer operators need to be recomputed on change due to setDeformation() // transfer operators need to be recomputed on change due to setDeformation()
using TransferOperator = NBodyContactTransfer<ContactNetwork, Vector>; using TransferOperator = NBodyContactTransfer<ContactNetwork, Vector>;
...@@ -76,11 +76,9 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c ...@@ -76,11 +76,9 @@ auto makeLinearSolver(const Dune::ParameterTree& parset, const ContactNetwork& c
auto linearMultigridStep = std::make_shared<Dune::Solvers::MultigridStep<Matrix, Vector> >(); auto linearMultigridStep = std::make_shared<Dune::Solvers::MultigridStep<Matrix, Vector> >();
linearMultigridStep->setMGType(1, 3, 3); linearMultigridStep->setMGType(1, 3, 3);
linearMultigridStep->setSmoother(smoother); linearMultigridStep->setSmoother(TruncatedBlockGSStep<Matrix, Vector>());
linearMultigridStep->setTransferOperators(transfer); linearMultigridStep->setTransferOperators(transfer);
Norm norm(*linearMultigridStep); return std::make_shared<LinearSolver>(linearMultigridStep, parset.template get<int>("solver.tnnmg.main.multi"), parset.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), Norm(*linearMultigridStep), Solver::QUIET);
return std::make_shared<LinearSolver>(linearMultigridStep, parset.template get<int>("solver.tnnmg.main.multi"), parset.template get<double>("solver.tnnmg.preconditioner.basesolver.tolerance"), norm, Solver::QUIET);
} }
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment