diff --git a/dune/tectonic/spatial-solving/fixedpointiterator_tmpl.cc b/dune/tectonic/spatial-solving/fixedpointiterator_tmpl.cc index c434a9b279dd768a2c44750f4c195a44495b09e9..5e66f407b1a31fc73934075a65ca4fb0ca0b13b5 100644 --- a/dune/tectonic/spatial-solving/fixedpointiterator_tmpl.cc +++ b/dune/tectonic/spatial-solving/fixedpointiterator_tmpl.cc @@ -9,6 +9,7 @@ #include <dune/solvers/solvers/loopsolver.hh> #include "../spatial-solving/solverfactory.hh" +#include "../spatial-solving/tnnmg/zerononlinearity.hh" #include "../data-structures/network/contactnetwork.hh" #include "../data-structures/friction/globalfriction.hh" @@ -36,6 +37,13 @@ using MyFunctional = Functional<Matrix&, Vector&, MyGlobalFriction&, Vector&, Ve using MySolverFactory = SolverFactory<MyFunctional, BitVector>; template class FixedPointIterator<MySolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>; - template FixedPointIterationCounter FixedPointIterator<MySolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>::run<LinearSolver>( MyUpdaters, std::shared_ptr<LinearSolver>&, const std::vector<Matrix>&, const std::vector<Vector>&, std::vector<Vector>&); + +using NoFriction = ZeroNonlinearity; +using NoFrictionFunctional = Functional<Matrix&, Vector&, NoFriction&, Vector&, Vector&, double>; +using NoFrictionSolverFactory = SolverFactory<NoFrictionFunctional, BitVector>; + +template class FixedPointIterator<NoFrictionSolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>; +template FixedPointIterationCounter FixedPointIterator<NoFrictionSolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>::run<LinearSolver>( + MyUpdaters, std::shared_ptr<LinearSolver>&, const std::vector<Matrix>&, const std::vector<Vector>&, std::vector<Vector>&); diff --git a/dune/tectonic/spatial-solving/tnnmg/zerononlinearity.hh b/dune/tectonic/spatial-solving/tnnmg/zerononlinearity.hh index 2ea3e4595b5718da80c95ce20e9d72c3f89ba10a..2c3f11fa390b1b7c2dafb8681dd16abe9640297f 100644 --- a/dune/tectonic/spatial-solving/tnnmg/zerononlinearity.hh +++ b/dune/tectonic/spatial-solving/tnnmg/zerononlinearity.hh @@ -71,6 +71,9 @@ class ZeroNonlinearity template <class BitVector> void setIgnore(const BitVector& ignore) {} + + template <class StateVector> + void updateAlpha(const StateVector& alpha) {} }; #endif diff --git a/dune/tectonic/time-stepping/coupledtimestepper_tmpl.cc b/dune/tectonic/time-stepping/coupledtimestepper_tmpl.cc index a2b7fc846d54a21917a8ea4d280ec150aa9fe56e..8fa4e7fb48295071c131557e08feebf29691f050 100644 --- a/dune/tectonic/time-stepping/coupledtimestepper_tmpl.cc +++ b/dune/tectonic/time-stepping/coupledtimestepper_tmpl.cc @@ -10,6 +10,7 @@ #include "../spatial-solving/tnnmg/functional.hh" #include "../spatial-solving/solverfactory.hh" +#include "../spatial-solving/tnnmg/zerononlinearity.hh" #include "../data-structures/network/contactnetwork.hh" #include "../data-structures/friction/globalfriction.hh" @@ -36,5 +37,11 @@ using MyFunctional = Functional<Matrix&, Vector&, MyGlobalFriction&, Vector&, Ve using MySolverFactory = SolverFactory<MyFunctional, BitVector>; template class CoupledTimeStepper<MySolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>; - template FixedPointIterationCounter CoupledTimeStepper<MySolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>::step<LinearSolver>(std::shared_ptr<LinearSolver>&, double, double); + +using NoFriction = ZeroNonlinearity; +using NoFrictionFunctional = Functional<Matrix&, Vector&, NoFriction&, Vector&, Vector&, double>; +using NoFrictionSolverFactory = SolverFactory<NoFrictionFunctional, BitVector>; + +template class CoupledTimeStepper<NoFrictionSolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>; +template FixedPointIterationCounter CoupledTimeStepper<NoFrictionSolverFactory, MyNBodyAssembler, MyUpdaters, ErrorNorms>::step<LinearSolver>(std::shared_ptr<LinearSolver>&, double, double); diff --git a/dune/tectonic/time-stepping/uniformtimestepper_tmpl.cc b/dune/tectonic/time-stepping/uniformtimestepper_tmpl.cc index fd863d188aa64d872a4c40c248dcd5b8a149f03d..94d258b41619134dfb18ee87c3f8b30f07513096 100644 --- a/dune/tectonic/time-stepping/uniformtimestepper_tmpl.cc +++ b/dune/tectonic/time-stepping/uniformtimestepper_tmpl.cc @@ -16,6 +16,7 @@ #include "../data-structures/network/contactnetwork.hh" #include "../data-structures/friction/globalfriction.hh" +#include "../spatial-solving/tnnmg/zerononlinearity.hh" #include "rate/rateupdater.hh" #include "state/stateupdater.hh" @@ -40,6 +41,13 @@ using MySolverFactory = SolverFactory<MyFunctional, BitVector>; template class UniformTimeStepper<MySolverFactory, MyContactNetwork, MyUpdaters, ErrorNorms>; + +using NoFriction = ZeroNonlinearity; +using NoFrictionFunctional = Functional<Matrix&, Vector&, NoFriction&, Vector&, Vector&, double>; +using NoFrictionSolverFactory = SolverFactory<NoFrictionFunctional, BitVector>; + +template class UniformTimeStepper<NoFrictionSolverFactory, MyContactNetwork, MyUpdaters, ErrorNorms>; + /* template std::packaged_task<typename AdaptiveTimeStepper<MySolverFactory, MyContactNetwork, MyUpdaters, ErrorNorms>::UpdatersWithCount()> AdaptiveTimeStepper<MySolverFactory, MyContactNetwork, MyUpdaters, ErrorNorms>::step<LinearSolver>(