petsc-3.6.1 2015-08-06
Report Typos and Errors

MatSOR

Computes relaxation (SOR, Gauss-Seidel) sweeps.

Synopsis

#include "petscmat.h" 
PetscErrorCode  MatSOR(Mat mat,Vec b,PetscReal omega,MatSORType flag,PetscReal shift,PetscInt its,PetscInt lits,Vec x)
Neighbor-wise 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, use option SOR_ZERO_INITIAL_GUESS to indicate no 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 separate independent smoothings on each processor.

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

Notes: for BAIJ, SBAIJ, and AIJ matrices with Inodes this does a block SOR smoothing, otherwise it does a pointwise smoothing

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 KSP interface for linear solvers instead of working directly with matrix algebra routines such as this. See, e.g., KSPCreate().

Vectors x and b CANNOT be the same

Developer Note: We should add block SOR support for AIJ matrices with block size set to great than one and no inodes

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

Examples

src/tao/pde_constrained/examples/tutorials/parabolic.c.html
src/tao/pde_constrained/examples/tutorials/hyperbolic.c.html