dune-pdelab
2.4-dev
|
#include <dune/pdelab/newton/newton.hh>
Public Types | |
typedef NewtonResult< RFType > | Result |
enum | Strategy { noLineSearch, hackbuschReusken, hackbuschReuskenAcceptBest } |
Public Member Functions | |
Newton (const GridOperator &go, TrialVector &u_, Solver &solver_) | |
Newton (const GridOperator &go, Solver &solver_) | |
void | setParameters (Dune::ParameterTree ¶m) |
interpret a parameter tree as a set of options for the newton solver More... | |
void | apply () |
void | apply (TrialVector &u_) |
const Result & | result () const |
void | setVerbosityLevel (unsigned int verbosity_level) |
void | setKeepMatrix (bool b) |
Set whether the jacobian matrix should be kept across calls to apply(). More... | |
bool | keepMatrix () const |
Return whether the jacobian matrix is kept across calls to apply(). More... | |
void | discardMatrix () |
Discard the stored Jacobian matrix. More... | |
void | setReduction (RFType reduction) |
void | setMaxIterations (unsigned int maxit) |
void | setForceIteration (bool force_iteration) |
void | setAbsoluteLimit (RFType abs_limit_) |
virtual bool | terminate () |
void | setLineSearchStrategy (Strategy strategy) |
void | setLineSearchStrategy (std::string strategy) |
void | setLineSearchMaxIterations (unsigned int maxit) |
void | setLineSearchDampingFactor (RFType damping_factor) |
virtual void | line_search (TrialVector &z, TestVector &r) |
void | setMinLinearReduction (RFType min_linear_reduction) |
set the minimal reduction in the linear solver More... | |
void | setFixedLinearReduction (bool fixed_linear_reduction) |
set a fixed reduction in the linear solver (overwrites setMinLinearReduction) More... | |
void | setReassembleThreshold (RFType reassemble_threshold) |
set a threshold, when the linear operator is reassembled More... | |
virtual void | prepare_step (Matrix &A, TstV &) |
Protected Member Functions | |
virtual void | defect (TestVector &r) |
virtual bool | terminate ()=0 |
virtual void | prepare_step (Matrix &A, TestVector &r)=0 |
virtual void | line_search (TrialVector &z, TestVector &r)=0 |
Strategy | strategyFromName (const std::string &s) |
Protected Attributes | |
const GridOperator & | gridoperator_ |
TrialVector * | u_ |
std::shared_ptr< TrialVector > | z_ |
std::shared_ptr< TestVector > | r_ |
std::shared_ptr< Matrix > | A_ |
Result | res_ |
unsigned int | verbosity_level_ |
RFType | prev_defect_ |
RFType | linear_reduction_ |
bool | reassembled_ |
RFType | reduction_ |
RFType | abs_limit_ |
bool | keep_matrix_ |
|
inherited |
|
inherited |
Enumerator | |
---|---|
noLineSearch |
don't do any linesearch or damping |
hackbuschReusken |
perform a linear search for the optimal damping parameter with multiples of damping the strategy was described in [Hackbusch and Reusken, 1989] |
hackbuschReuskenAcceptBest |
same as hackbuschReusken, but doesn't fail if the best update is still not good enough |
|
inline |
|
inline |
|
inherited |
|
inherited |
|
inlineprotectedvirtualinherited |
|
inlineinherited |
Discard the stored Jacobian matrix.
References Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::A_.
|
inlineinherited |
Return whether the jacobian matrix is kept across calls to apply().
References Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::keep_matrix_.
|
protectedpure virtualinherited |
Implemented in Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >.
|
inlinevirtualinherited |
Implements Dune::PDELab::NewtonBase< GOS, TrlV, TstV >.
References Dune::PDELab::NewtonResult< RFType >::defect, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::defect(), Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::hackbuschReusken, Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::hackbuschReuskenAcceptBest, Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::noLineSearch, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::res_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::u_, and Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::verbosity_level_.
|
protectedpure virtualinherited |
Implemented in Dune::PDELab::NewtonPrepareStep< GOS, TrlV, TstV >.
|
inlinevirtualinherited |
Implements Dune::PDELab::NewtonBase< GOS, TrlV, TstV >.
References Dune::PDELab::NewtonResult< RFType >::defect, Dune::PDELab::NewtonResult< RFType >::first_defect, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::gridoperator_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::linear_reduction_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::prev_defect_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::reassembled_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::res_, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::u_, and Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::verbosity_level_.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
set a fixed reduction in the linear solver (overwrites setMinLinearReduction)
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
Set whether the jacobian matrix should be kept across calls to apply().
References Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::keep_matrix_.
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
|
inlineinherited |
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
set the minimal reduction in the linear solver
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inline |
interpret a parameter tree as a set of options for the newton solver
example configuration:
and invocation in the code:
References Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >::setAbsoluteLimit(), Dune::PDELab::NewtonPrepareStep< GOS, TrlV, TstV >::setFixedLinearReduction(), Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >::setForceIteration(), Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::setKeepMatrix(), Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::setLineSearchDampingFactor(), Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::setLineSearchMaxIterations(), Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::setLineSearchStrategy(), Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >::setMaxIterations(), Dune::PDELab::NewtonPrepareStep< GOS, TrlV, TstV >::setMinLinearReduction(), Dune::PDELab::NewtonPrepareStep< GOS, TrlV, TstV >::setReassembleThreshold(), Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >::setReduction(), and Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::setVerbosityLevel().
|
inlineinherited |
set a threshold, when the linear operator is reassembled
We allow to keep the linear operator over several newton iterations. If the reduction in the newton drops below a given threshold the linear operator is reassembled to ensure convergence.
Referenced by Dune::PDELab::Newton< GOS, S, TrlV, TstV >::setParameters().
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
helper function to get the different strategies from their name
References Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::hackbuschReusken, Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::hackbuschReuskenAcceptBest, and Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::noLineSearch.
Referenced by Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::setLineSearchStrategy().
|
protectedpure virtualinherited |
Implemented in Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >.
|
inlinevirtualinherited |
Implements Dune::PDELab::NewtonBase< GOS, TrlV, TstV >.
References Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::abs_limit_, Dune::PDELab::LinearSolverResult< RFType >::converged, Dune::PDELab::NewtonResult< RFType >::defect, Dune::PDELab::NewtonResult< RFType >::first_defect, Dune::PDELab::LinearSolverResult< RFType >::iterations, Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::reduction_, and Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::res_.
|
protectedinherited |
Referenced by Dune::PDELab::NewtonBase< GOS, TrlV, TstV >::discardMatrix().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by Dune::PDELab::NewtonSolver< GOS, S, TrlV, TstV >::defect(), Dune::PDELab::NewtonLineSearch< GOS, TrlV, TstV >::line_search(), Dune::PDELab::NewtonPrepareStep< GOS, TrlV, TstV >::prepare_step(), Dune::PDELab::NewtonSolver< GOS, S, TrlV, TstV >::result(), and Dune::PDELab::NewtonTerminate< GOS, TrlV, TstV >::terminate().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |