![]() |
00001 // Copyright (C) 2003 Johan Jansson. 00002 // Licensed under the GNU GPL Version 2. 00003 00004 #ifndef __NEWTON_ITERATION_H 00005 #define __NEWTON_ITERATION_H 00006 00007 #include <dolfin/Iteration.h> 00008 00009 namespace dolfin 00010 { 00011 00013 00014 class NewtonIteration : public Iteration 00015 { 00016 public: 00017 00018 NewtonIteration(Solution& u, RHS& f, FixedPointIteration& fixpoint, 00019 unsigned int maxiter, real maxdiv, real maxconv, 00020 real tol, unsigned int depth); 00021 00022 ~NewtonIteration(); 00023 00024 State state() const; 00025 00026 void start(ElementGroupList& list); 00027 void start(ElementGroup& group); 00028 void start(Element& element); 00029 00030 void update(ElementGroupList& list, Increments& d); 00031 void update(ElementGroup& group, Increments& d); 00032 void update(Element& element, Increments& d); 00033 00034 void stabilize(ElementGroupList& list, const Increments& d, unsigned int n); 00035 void stabilize(ElementGroup& group, const Increments& d, unsigned int n); 00036 void stabilize(Element& element, const Increments& d, unsigned int n); 00037 00038 bool converged(ElementGroupList& list, const Increments& d, unsigned int n); 00039 bool converged(ElementGroup& group, const Increments& d, unsigned int n); 00040 bool converged(Element& element, const Increments& d, unsigned int n); 00041 00042 bool diverged(ElementGroupList& list, const Increments& d, 00043 unsigned int n, State& newstate); 00044 bool diverged(ElementGroup& group, const Increments& d, unsigned int n, 00045 State& newstate); 00046 bool diverged(Element& element, const Increments& d, unsigned int n, 00047 State& newstate); 00048 00049 void report() const; 00050 00051 }; 00052 00053 } 00054 00055 #endif
![]()
Documentation automatically generated with Doxygen on 10 Sep 2004.