MatRelax
Computes one relaxation sweep.
Synopsis
#include "petscmat.h"
int MatRelax(Mat mat,Vec b,PetscReal omega,MatSORType flag,PetscReal shift,int its,int lits,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
|
lits -the number of local 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, and
SOR_LOCAL_SYMMETRIC_SWEEP perform seperate independent smoothings
on 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.
Most users should employ the simplified SLES interface for linear solvers
instead of working directly with matrix algebra routines such as this.
See, e.g., SLESCreate().
Level:developer
Location:src/mat/interface/matrix.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages