Skip to content
Snippets Groups Projects
Commit 1ea86fdf authored by podlesny's avatar podlesny
Browse files

.

parent 77dc60fe
No related branches found
No related tags found
No related merge requests found
......@@ -34,11 +34,9 @@ void FixedPointIterationCounter::operator+=(
template <class Factory, class Updaters, class ErrorNorm>
FixedPointIterator<Factory, Updaters, ErrorNorm>::FixedPointIterator(
const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler,
Factory &factory, Dune::ParameterTree const &parset,
std::shared_ptr<Nonlinearity> globalFriction, ErrorNorm const &errorNorm)
: nBodyAssembler_(nBodyAssembler),
step_(factory.getStep()),
: step_(factory.getStep()),
parset_(parset),
globalFriction_(globalFriction),
fixedPointMaxIterations_(parset.get<size_t>("v.fpi.maximumIterations")),
......
......@@ -35,8 +35,7 @@ class FixedPointIterator {
void relativeVelocities(std::vector<Vector>& v_m) const;
public:
FixedPointIterator(const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler,
Factory &factory, const Dune::ParameterTree& parset,
FixedPointIterator(Factory &factory, const Dune::ParameterTree& parset,
std::shared_ptr<Nonlinearity> globalFriction,
const ErrorNorm& errorNorm);
......@@ -46,7 +45,7 @@ class FixedPointIterator {
Vector &velocityIterate);
private:
const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler_;
std::shared_ptr<typename Factory::Step> step_;
Dune::ParameterTree const &parset_;
std::shared_ptr<Nonlinearity> globalFriction_;
......
......@@ -13,15 +13,16 @@
template <size_t dim, class BlockProblem, class DeformedGrid>
SolverFactory<dim, BlockProblem, DeformedGrid>::SolverFactory(
Dune::ParameterTree const &parset, const DeformedGrid& grid,
Dune::ParameterTree const &parset, const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler,
Dune::BitSetVector<dim> const &ignoreNodes)
: baseEnergyNorm(linearBaseSolverStep),
: nBodyAssembler_(nBodyAssembler),
baseEnergyNorm(linearBaseSolverStep),
linearBaseSolver(&linearBaseSolverStep,
parset.get<size_t>("linear.maxiumumIterations"),
parset.get<double>("linear.tolerance"), &baseEnergyNorm,
Solver::QUIET),
Solver::QUIET)/*,
transferOperators(grid.maxLevel()),
multigridStep(std::make_shared<Step>(linearIterationStep, nonlinearSmoother)) {
multigridStep(std::make_shared<Step>(linearIterationStep, nonlinearSmoother))*/ {
// linear iteration step
linearIterationStep.setMGType(parset.get<int>("linear.cycle"),
......@@ -33,8 +34,7 @@ SolverFactory<dim, BlockProblem, DeformedGrid>::SolverFactory(
// transfer operators
for (auto &&x : transferOperators)
x = new CompressedMultigridTransfer<Vector>;
TransferOperatorAssembler<DeformedGrid>(grid)
.assembleOperatorPointerHierarchy(transferOperators);
TransferOperatorAssembler<DeformedGrid>(grid).assembleOperatorPointerHierarchy(transferOperators);
linearIterationStep.setTransferOperators(transferOperators);
// tnnmg iteration step
......
......@@ -12,6 +12,8 @@
#include <dune/tnnmg/iterationsteps/genericnonlineargs.hh>
//#include <dune/tnnmg/iterationsteps/tnnmgstep.hh>
#include <dune/contact/assemblers/nbodyassembler.hh>
#define USE_OLD_TNNMG //needed for old bisection.hh in tnnmg
template <size_t dim, class BlockProblemTEMPLATE, class DeformedGridTEMPLATE>
......@@ -31,7 +33,7 @@ class SolverFactory {
using Step = NonlinearSmoother;
//TruncatedNonsmoothNewtonMultigrid<BlockProblem, NonlinearSmoother>;
SolverFactory(Dune::ParameterTree const &parset, const DeformedGrid& grid,
SolverFactory(Dune::ParameterTree const &parset, const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler,
Dune::BitSetVector<dim> const &ignoreNodes);
~SolverFactory();
......@@ -39,6 +41,8 @@ class SolverFactory {
std::shared_ptr<Step> getStep();
private:
const Dune::Contact::NBodyAssembler<DeformedGrid, Vector>& nBodyAssembler_;
TruncatedBlockGSStep<Matrix, Vector> linearBaseSolverStep;
EnergyNorm<Matrix, Vector> baseEnergyNorm;
LoopSolver<Vector> linearBaseSolver;
......
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