MatRelax

Computes one relaxation sweep.

Synopsis

int MatRelax(Mat mat,Vec b,double omega,MatSORType flag,double shift,
             int its,Vec x)
Collective on Mat and Vec

Input Parameters

mat - the matrix
b - the right hand side
omega - the relaxation factor
flag - flag indicating the type of SOR (see below)
shift - diagonal shift
its - the number of iterations

Output Parameters

x -the solution (can contain an initial guess)

SOR Flags

SOR_FORWARD_SWEEP -forward SOR
SOR_BACKWARD_SWEEP -backward SOR
SOR_SYMMETRIC_SWEEP -SSOR (symmetric SOR)
SOR_LOCAL_FORWARD_SWEEP -local forward SOR
SOR_LOCAL_BACKWARD_SWEEP -local forward SOR
SOR_LOCAL_SYMMETRIC_SWEEP -local SSOR
SOR_APPLY_UPPER, SOR_APPLY_LOWER -applies upper/lower triangular part of matrix to vector (with omega)
SOR_ZERO_INITIAL_GUESS -zero initial guess

Notes

SOR_LOCAL_FORWARD_SWEEP, SOR_LOCAL_BACKWARD_SWEEP, andSOR_LOCAL_SYMMETRIC_SWEEP perform seperate independent smoothingson each processor.

Application programmers will not generally use MatRelax() directly, but instead will employ the SLES/PC interface.

Notes for Advanced Users

The flags are implemented as bitwise inclusive or operations. For example, use (SOR_ZERO_INITIAL_GUESS | SOR_SYMMETRIC_SWEEP) to specify a zero initial guess for SSOR.

Keywords

matrix, relax, relaxation, sweep

Location: src/mat/interface/matrix.c
Matrix Index
Table of Contents