|
| Newton (Operator< VECTOR > &residual, Operator< VECTOR > &inverse_derivative) |
|
void | declare_parameters (ParameterHandler ¶m) |
|
void | initialize (ParameterHandler ¶m) |
|
void | initialize (OutputOperator< VECTOR > &output) |
|
virtual void | operator() (NamedData< VECTOR * > &out, const NamedData< VECTOR * > &in) |
|
virtual void | notify (const Event &) |
|
double | threshold (double new_value) |
|
| ~Operator () |
|
void | clear_events () |
|
| Subscriptor () |
|
| Subscriptor (const Subscriptor &) |
|
virtual | ~Subscriptor () |
|
Subscriptor & | operator= (const Subscriptor &) |
|
void | subscribe (const char *identifier=0) const |
|
void | unsubscribe (const char *identifier=0) const |
|
unsigned int | n_subscriptions () const |
|
void | list_subscribers () const |
|
| DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.") |
|
| DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1) |
|
template<class Archive > |
void | serialize (Archive &ar, const unsigned int version) |
|
template<class VECTOR>
class Algorithms::Newton< VECTOR >
Operator class performing Newton's iteration with standard step size control and adaptive matrix generation.
This class performs a Newton iteration up to convergence determined by control. If after an update the norm of the residual has become larger, then step size control is activated and the update is subsequently divided by two until the residual actually becomes smaller (or the minimal scaling factor determined by n_stepsize_iterations is reached).
Since assembling matrices, depending on the implementation, tends to be costly, this method applies an adaptive reassembling strategy. Only if the reduction factor for the residual is more than threshold, the event Algorithms::bad_derivative is submitted to inverse_derivative. It is up to this object to implement reassembling accordingly.
Contents of the NamedData objects
The only value used by the Newton method is the first vector in the parameter out
of operator()(). It serves as the start vector of Newton's method and in the end contains the solution. All other vectors of out
are ignored by Newton's method and its inner Operator objects. All vectors of in
are forwarded to the inner Operator objects, with additional information added as follows.
When calling (*residual)(), the NamedData in
given to the Newton iteration is prepended by a vector "Newton iterate"
, the current value of the Newton iterate, which can be used to evaluate the residual at this point.
For the call to (*inverse_derivative), the vector "Newton
residual"
is inserted before "Newton iterate"
.
- Author
- Guido Kanschat, 2006, 2010
Definition at line 69 of file newton.h.