diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp index a84376c2394b09b717209ebb20b3a11ac2333e69..59aac171411e64171a966e955d2f3492727e4382 100644 --- a/NumLib/ODESolver/NonlinearSolver.cpp +++ b/NumLib/ODESolver/NonlinearSolver.cpp @@ -375,7 +375,7 @@ NonlinearSolverStatus NonlinearSolver<NonlinearSolverTag::Newton>::solve( minus_delta_x.setZero(); timer_dirichlet.start(); - sys.applyKnownSolutionsNewton(J, res, minus_delta_x); + sys.applyKnownSolutionsNewton(J, res, *x[process_id], minus_delta_x); time_dirichlet += timer_dirichlet.elapsed(); INFO("[time] Applying Dirichlet BCs took {:g} s.", time_dirichlet); diff --git a/NumLib/ODESolver/NonlinearSystem.h b/NumLib/ODESolver/NonlinearSystem.h index 02d2d2793805fe0530ee0a113ff6fed10d05723f..e3b20f6e12d2a41aea49260afcbf3a0b26a94e16 100644 --- a/NumLib/ODESolver/NonlinearSystem.h +++ b/NumLib/ODESolver/NonlinearSystem.h @@ -75,7 +75,7 @@ public: //! \f$ \mathit{Jac} \cdot (-\Delta x) = \mathit{res} \f$. //! \pre computeKnownSolutions() must have been called before. virtual void applyKnownSolutionsNewton( - GlobalMatrix& Jac, GlobalVector& res, + GlobalMatrix& Jac, GlobalVector& res, GlobalVector const& x, GlobalVector& minus_delta_x) const = 0; //! Apply known solutions to the linearized equation system diff --git a/NumLib/ODESolver/TimeDiscretizedODESystem.cpp b/NumLib/ODESolver/TimeDiscretizedODESystem.cpp index e618773be5c518e8467a63d8556474d79aabe8fa..08d086c07e8f1992cf1be8bb7913155491006759 100644 --- a/NumLib/ODESolver/TimeDiscretizedODESystem.cpp +++ b/NumLib/ODESolver/TimeDiscretizedODESystem.cpp @@ -133,6 +133,7 @@ void TimeDiscretizedODESystem< void TimeDiscretizedODESystem<ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton>:: applyKnownSolutionsNewton(GlobalMatrix& Jac, GlobalVector& res, + GlobalVector const& x, GlobalVector& minus_delta_x) const { if (!_known_solutions) diff --git a/NumLib/ODESolver/TimeDiscretizedODESystem.h b/NumLib/ODESolver/TimeDiscretizedODESystem.h index 46dd959689fa3d532fcb08c3904ec13db048179b..66dfc810002084a7413cec457f44aef3aec4699a 100644 --- a/NumLib/ODESolver/TimeDiscretizedODESystem.h +++ b/NumLib/ODESolver/TimeDiscretizedODESystem.h @@ -106,6 +106,7 @@ public: void applyKnownSolutions(GlobalVector& x) const override; void applyKnownSolutionsNewton(GlobalMatrix& Jac, GlobalVector& res, + GlobalVector const& x, GlobalVector& minus_delta_x) const override; void applyKnownSolutionsPETScSNES(GlobalMatrix& Jac, GlobalVector& res,