27#ifndef DUMUX_NONEQUILIBRIUM_NEWTON_SOLVER_HH
28#define DUMUX_NONEQUILIBRIUM_NEWTON_SOLVER_HH
39template <
class Assembler,
class LinearSolver>
49 using ParentType::ParentType;
53 const SolutionVector &uLastIter)
final
56 const auto& uCurrentIter = Backend::dofs(varsCurrentIter);
60 if constexpr(!assemblerExportsVariables)
61 this->
assembler().gridVariables().calcVelocityAverage(uCurrentIter);
63 varsCurrentIter.calcVelocityAverage(uCurrentIter);
constexpr bool exportsVariables
Definition common/pdesolver.hh:48
Detail::AssemblerVariables< Assembler > Variables
Definition common/pdesolver.hh:82
const Assembler & assembler() const
Definition common/pdesolver.hh:121
virtual void newtonEndStep(Variables &vars, const SolutionVector &uLastIter)
Indicates that one Newton iteration was finished.
Definition nonlinear/newtonsolver.hh:637
NewtonSolver(std::shared_ptr< Assembler > assembler, std::shared_ptr< LinearSolver > linearSolver, const Communication &comm=Dune::MPIHelper::getCollectiveCommunication(), const std::string ¶mGroup="")
The Constructor.
Definition nonlinear/newtonsolver.hh:244
typename Backend::DofVector SolutionVector
Definition nonlinear/newtonsolver.hh:221
VariablesBackend< typename ParentType::Variables > Backend
Definition nonlinear/newtonsolver.hh:220
A nonequilibrium specific newton solver.
Definition porousmediumflow/nonequilibrium/newtonsolver.hh:41
void newtonEndStep(Variables &varsCurrentIter, const SolutionVector &uLastIter) final
Indicates that one Newton iteration was finished.
Definition porousmediumflow/nonequilibrium/newtonsolver.hh:52
Reference implementation of a Newton solver.