SuperLU: EXAMPLE/ditersol.c File Reference

SuperLU 5.2.2

- Main Page
- Data Structures
- Files

- File List
- Globals

Functions | Variables
ditersol.c File Reference

Example #1 showing how to use ILU to precondition GMRES. More...

`#include "slu_ddefs.h"`
Include dependency graph for ditersol.c:

## Functions
void | dpsolve (int n, double x[], double y[])
void | dmatvec_mult (double alpha, double x[], double beta, double y[])
int | main (int argc, char *argv[])

## Variables
superlu_options_t * | GLOBAL_OPTIONS
double * | GLOBAL_R
double * | GLOBAL_C
int * | GLOBAL_PERM_C
int * | GLOBAL_PERM_R
SuperMatrix * | GLOBAL_A
SuperMatrix * | GLOBAL_L
SuperMatrix * | GLOBAL_U
SuperLUStat_t * | GLOBAL_STAT
mem_usage_t * | GLOBAL_MEM_USAGE

## Detailed Description

Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)

All rights reserved.

The source code is distributed under BSD license, see the file License.txt at the top-level directory.

    – SuperLU routine (version 5.0) –
    Lawrence Berkeley National Laboratory
    November, 2010
    August, 2011

    This example shows that ILU is computed from the equilibrated matrix,
    and the preconditioned GMRES is applied to the equilibrated system.
    The driver routine DGSISX is called twice to perform factorization
    and apply preconditioner separately.

    Note that DGSISX performs the following factorization:
        Pr*Dr*A*Dc*Pc^T ~= LU
    with Pr being obtained from MC64 statically then partial pivoting
    dynamically. On return, A is overwritten as A1 = Dr*A*Dc.

    We can solve the transformed system, A1*y = Dr*B, using FGMRES.
    B is first overwritten as Dr*B.
    Then GMRES step requires requires 2 procedures:
      1) Apply preconditioner M^{-1} = Pc^T*U^{-1}*L^{-1}*Pr
      2) Matrix-vector multiplication: w = A1*v

## Function Documentation

void dmatvec_mult | ( | double | alpha,
|  | double | x[],
|  | double | beta,
|  | double | y[]
| ) |  |

Here is the call graph for this function:

void dpsolve | ( | int | n,
|  | double | x[],
|  | double | y[]
| ) |  |

Here is the call graph for this function:

int main | ( | int | argc,
|  | char * | argv[]
| ) |  |

Here is the call graph for this function:

## Variable Documentation

SuperMatrix* GLOBAL_A

double * GLOBAL_C

SuperMatrix * GLOBAL_L

mem_usage_t* GLOBAL_MEM_USAGE

superlu_options_t* GLOBAL_OPTIONS

int* GLOBAL_PERM_C

int * GLOBAL_PERM_R

double* GLOBAL_R

SuperLUStat_t* GLOBAL_STAT

SuperMatrix * GLOBAL_U