15#ifndef DUMUX_NONEQUILIBRIUM_NEWTON_SOLVER_HH
16#define DUMUX_NONEQUILIBRIUM_NEWTON_SOLVER_HH
28template <
class Assembler,
class LinearSolver>
35 static constexpr bool assemblerExportsVariables = Detail::PDESolver::assemblerExportsVariables<Assembler>;
38 using ParentType::ParentType;
45 const auto& uCurrentIter = Backend::dofs(varsCurrentIter);
49 if constexpr(!assemblerExportsVariables)
50 this->
assembler().gridVariables().calcVelocityAverage(uCurrentIter);
52 varsCurrentIter.calcVelocityAverage(uCurrentIter);
An implementation of a Newton solver.
Definition: nonlinear/newtonsolver.hh:181
virtual void newtonEndStep(Variables &vars, const SolutionVector &uLastIter)
Indicates that one Newton iteration was finished.
Definition: nonlinear/newtonsolver.hh:604
typename Backend::DofVector SolutionVector
Definition: nonlinear/newtonsolver.hh:186
VariablesBackend< typename ParentType::Variables > Backend
Definition: nonlinear/newtonsolver.hh:185
A nonequilibrium specific newton solver.
Definition: porousmediumflow/nonequilibrium/newtonsolver.hh:30
void newtonEndStep(Variables &varsCurrentIter, const SolutionVector &uLastIter) final
Indicates that one Newton iteration was finished.
Definition: porousmediumflow/nonequilibrium/newtonsolver.hh:41
const Assembler & assembler() const
Access the assembler.
Definition: common/pdesolver.hh:121
Detail::PDESolver::AssemblerVariables< Assembler > Variables
export the type of variables that represent a numerical solution
Definition: common/pdesolver.hh:71
Defines a high-level interface for a PDESolver.
Reference implementation of a Newton solver.