Gauss-Seidel-Iteration

Expressions like

  v = stencil(u) + f;
  u = v;

lead to Jacobi type iteration. However, expressions like

  u = stencil(u) + f;

are performed in a Gauss-Seidel type manner using a lexicographic order of the points on every structured subgrid.

Currently, we did not implement several other orderings. But we implemented a z-ordering and a -z-ordering. These orderings can be called by the member functions:

void Variable<DTyp>::Plane_z_relaxation( int iter_plane, const Expr_Restriction<A>& a);

void Variable<DTyp>::Plane_minus_z_relaxation(int iter_plane, const Expr_Restriction<A>& a);



The first of these member functions performs an evaluation of the expression a in a z-ordering of the blocks and in a z-ordering of the faces. On each block iter_plane xy-plane relaxations are performed in a lexicographic order of these blocks.

Example:

  u.Plane_z_relaxation(3,  stencil(u) + f );





Handbook

Last modified: Tue May 15 15:44:28 PDT 2001