diff --git a/dune/tectonic/spatial-solving/solverfactory.cc b/dune/tectonic/spatial-solving/solverfactory.cc index 004253dbdeb7df55991ccee628df684a924e17cb..4d759edc176695be13a8b19c1b5f84eddbb4296c 100644 --- a/dune/tectonic/spatial-solving/solverfactory.cc +++ b/dune/tectonic/spatial-solving/solverfactory.cc @@ -20,6 +20,16 @@ SolverFactory<Functional, BitVector>::SolverFactory( ignoreNodes_(ignoreNodes) {} +template <class Functional, class BitVector> +SolverFactory<Functional, BitVector>::SolverFactory( + const Dune::ParameterTree& parset, + std::shared_ptr<Functional> J, + const BitVector& ignoreNodes) : + parset_(parset), + J_(Dune::Solvers::wrap_own_share<const Functional>(J)), + ignoreNodes_(ignoreNodes) +{} + template <class Functional, class BitVector> template <class LinearSolver> void SolverFactory<Functional, BitVector>::build(std::shared_ptr<LinearSolver>& linearSolver) { diff --git a/dune/tectonic/spatial-solving/solverfactory.hh b/dune/tectonic/spatial-solving/solverfactory.hh index a93b65d882bba2949b1ec9e5304633e8b12a9d39..35ed6d279030975cff9017911223833b01e8234f 100644 --- a/dune/tectonic/spatial-solving/solverfactory.hh +++ b/dune/tectonic/spatial-solving/solverfactory.hh @@ -38,6 +38,10 @@ class SolverFactory { Functional&, const BitVector&); + SolverFactory(const Dune::ParameterTree&, + std::shared_ptr<Functional>, + const BitVector&); + template <class LinearSolver> void build(std::shared_ptr<LinearSolver>& linearSolver);