Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

dolfin::Iteration Class Reference

Base class for state-specific behavior of fixed point iteration. More...

#include <Iteration.h>

Inheritance diagram for dolfin::Iteration:

Inheritance graph
[legend]
Collaboration diagram for dolfin::Iteration:

Collaboration graph
[legend]
List of all members.

Public Types

enum  State {
  nonstiff, stiff1, stiff2, stiff3,
  stiff, newton
}

Public Member Functions

 Iteration (Solution &u, RHS &f, FixedPointIteration &fixpoint, unsigned int maxiter, real tol, real maxdiv, real maxconv, unsigned int depth)
 Constructor.

virtual ~Iteration ()
 Destructor.

virtual State state () const=0
 Return current state (type of iteration).

virtual void start (ElementGroupList &list)=0
virtual void start (ElementGroup &group)=0
virtual void start (Element &element)=0
virtual void update (ElementGroupList &list, Increments &d)=0
 Update group list.

virtual void update (ElementGroup &group, Increments &d)=0
 Update element group.

virtual void update (Element &element, Increments &d)=0
 Update element.

virtual void stabilize (ElementGroupList &list, const Increments &d, unsigned int n)=0
 Stabilize group list iteration.

virtual void stabilize (ElementGroup &group, const Increments &d, unsigned int n)=0
 Stabilize element group iteration.

virtual void stabilize (Element &element, const Increments &d, unsigned int n)=0
 Stabilize element iteration.

virtual bool converged (ElementGroupList &list, const Increments &d, unsigned int n)=0
 Check convergence for group list.

virtual bool converged (ElementGroup &group, const Increments &d, unsigned int n)=0
 Check convergence for element group.

virtual bool converged (Element &element, const Increments &d, unsigned int n)=0
 Check convergence for element.

virtual bool diverged (ElementGroupList &list, const Increments &d, unsigned int n, State &newstate)=0
 Check divergence for group list.

virtual bool diverged (ElementGroup &group, const Increments &d, unsigned int n, State &newstate)=0
 Check divergence for element group.

virtual bool diverged (Element &element, const Increments &d, unsigned int n, State &newstate)=0
 Check divergence for element.

virtual void report () const=0
 Write a status report.

void stabilization (real &alpha, unsigned int &m) const
 Return stabilization parameters.

unsigned int depth () const
 Return current depth.

void down ()
 Increase depth.

void up ()
 Decrease depth.

void init (ElementGroup &group)
 Update initial data for element group.

void init (Element &element)
void reset (ElementGroupList &list)
 Reset group list.

void reset (ElementGroup &group)
 Reset element group.

void reset (Element &element)
real residual (ElementGroupList &list)
real residual (ElementGroup &group)
real residual (Element &element)
bool accept () const

Protected Member Functions

bool stabilize (const Increments &d, unsigned int n, real r)
real computeDivergence (ElementGroupList &list)
real computeDivergence (ElementGroup &group)
void updateUnstabilized (ElementGroupList &list, Increments &d)
void updateUnstabilized (ElementGroup &group, Increments &d)
real computeAlpha (real rho) const
unsigned int computeSteps (real rho) const
void initInitialData (real t0)
void initData (Values &values, unsigned int size)
unsigned int dataSize (ElementGroupList &list)
unsigned int dataSize (ElementGroup &group)
void copyData (ElementGroupList &list, Values &values)
void copyData (Values &values, ElementGroupList &list)
void copyData (ElementGroup &group, Values &values)
void copyData (Values &values, ElementGroup &group)
bool positive (real number) const

Protected Attributes

Solutionu
RHSf
FixedPointIterationfixpoint
unsigned int maxiter
real maxdiv
real maxconv
real tol
real alpha
real gamma
real d0
unsigned int m
unsigned int j
unsigned int _depth
Values x0
Values x1
Values u0
bool _accept

Detailed Description

Base class for state-specific behavior of fixed point iteration.


Member Enumeration Documentation

enum dolfin::Iteration::State
 

Enumeration values:
nonstiff 
stiff1 
stiff2 
stiff3 
stiff 
newton 


Constructor & Destructor Documentation

Iteration::Iteration Solution u,
RHS f,
FixedPointIteration fixpoint,
unsigned int  maxiter,
real  tol,
real  maxdiv,
real  maxconv,
unsigned int  depth
 

Constructor.

Iteration::~Iteration  )  [virtual]
 

Destructor.


Member Function Documentation

bool Iteration::accept  )  const
 

real Iteration::computeAlpha real  rho  )  const [protected]
 

real Iteration::computeDivergence ElementGroup group  )  [protected]
 

real Iteration::computeDivergence ElementGroupList list  )  [protected]
 

unsigned int Iteration::computeSteps real  rho  )  const [protected]
 

virtual bool dolfin::Iteration::converged Element element,
const Increments d,
unsigned int  n
[pure virtual]
 

Check convergence for element.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual bool dolfin::Iteration::converged ElementGroup group,
const Increments d,
unsigned int  n
[pure virtual]
 

Check convergence for element group.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual bool dolfin::Iteration::converged ElementGroupList list,
const Increments d,
unsigned int  n
[pure virtual]
 

Check convergence for group list.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

void Iteration::copyData Values values,
ElementGroup group
[protected]
 

void Iteration::copyData ElementGroup group,
Values values
[protected]
 

void Iteration::copyData Values values,
ElementGroupList list
[protected]
 

void Iteration::copyData ElementGroupList list,
Values values
[protected]
 

unsigned int Iteration::dataSize ElementGroup group  )  [protected]
 

unsigned int Iteration::dataSize ElementGroupList list  )  [protected]
 

unsigned int Iteration::depth  )  const
 

Return current depth.

virtual bool dolfin::Iteration::diverged Element element,
const Increments d,
unsigned int  n,
State newstate
[pure virtual]
 

Check divergence for element.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual bool dolfin::Iteration::diverged ElementGroup group,
const Increments d,
unsigned int  n,
State newstate
[pure virtual]
 

Check divergence for element group.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual bool dolfin::Iteration::diverged ElementGroupList list,
const Increments d,
unsigned int  n,
State newstate
[pure virtual]
 

Check divergence for group list.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

void Iteration::down  ) 
 

Increase depth.

void Iteration::init Element element  ) 
 

void Iteration::init ElementGroup group  ) 
 

Update initial data for element group.

void Iteration::initData Values values,
unsigned int  size
[protected]
 

void Iteration::initInitialData real  t0  )  [protected]
 

bool Iteration::positive real  number  )  const [protected]
 

virtual void dolfin::Iteration::report  )  const [pure virtual]
 

Write a status report.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

void Iteration::reset Element element  ) 
 

void Iteration::reset ElementGroup group  ) 
 

Reset element group.

void Iteration::reset ElementGroupList list  ) 
 

Reset group list.

real Iteration::residual Element element  ) 
 

real Iteration::residual ElementGroup group  ) 
 

real Iteration::residual ElementGroupList list  ) 
 

void Iteration::stabilization real alpha,
unsigned int &  m
const
 

Return stabilization parameters.

bool Iteration::stabilize const Increments d,
unsigned int  n,
real  r
[protected]
 

virtual void dolfin::Iteration::stabilize Element element,
const Increments d,
unsigned int  n
[pure virtual]
 

Stabilize element iteration.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::stabilize ElementGroup group,
const Increments d,
unsigned int  n
[pure virtual]
 

Stabilize element group iteration.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::stabilize ElementGroupList list,
const Increments d,
unsigned int  n
[pure virtual]
 

Stabilize group list iteration.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::start Element element  )  [pure virtual]
 

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::start ElementGroup group  )  [pure virtual]
 

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::start ElementGroupList list  )  [pure virtual]
 

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual State dolfin::Iteration::state  )  const [pure virtual]
 

Return current state (type of iteration).

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

void Iteration::up  ) 
 

Decrease depth.

virtual void dolfin::Iteration::update Element element,
Increments d
[pure virtual]
 

Update element.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::update ElementGroup group,
Increments d
[pure virtual]
 

Update element group.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

virtual void dolfin::Iteration::update ElementGroupList list,
Increments d
[pure virtual]
 

Update group list.

Implemented in dolfin::AdaptiveIterationLevel1, dolfin::AdaptiveIterationLevel2, dolfin::AdaptiveIterationLevel3, dolfin::NewtonIteration, and dolfin::NonStiffIteration.

void Iteration::updateUnstabilized ElementGroup group,
Increments d
[protected]
 

void Iteration::updateUnstabilized ElementGroupList list,
Increments d
[protected]
 


Member Data Documentation

bool dolfin::Iteration::_accept [protected]
 

unsigned int dolfin::Iteration::_depth [protected]
 

real dolfin::Iteration::alpha [protected]
 

real dolfin::Iteration::d0 [protected]
 

RHS& dolfin::Iteration::f [protected]
 

FixedPointIteration& dolfin::Iteration::fixpoint [protected]
 

real dolfin::Iteration::gamma [protected]
 

unsigned int dolfin::Iteration::j [protected]
 

unsigned int dolfin::Iteration::m [protected]
 

real dolfin::Iteration::maxconv [protected]
 

real dolfin::Iteration::maxdiv [protected]
 

unsigned int dolfin::Iteration::maxiter [protected]
 

real dolfin::Iteration::tol [protected]
 

Solution& dolfin::Iteration::u [protected]
 

Values dolfin::Iteration::u0 [protected]
 

Values dolfin::Iteration::x0 [protected]
 

Values dolfin::Iteration::x1 [protected]
 


The documentation for this class was generated from the following files:


Documentation automatically generated with Doxygen on 10 Sep 2004.