UCFD_SPARSE  v1.1
Documentation
Loading...
Searching...
No Matches
precon.h File Reference

Header file for preconditioners for Krylov subspace methods. More...

#include "ucfd_types.h"
#include "config.h"
Include dependency graph for precon.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

ucfd_status_t bilu_prepare (int bn, int *iw, int *row_ptr, int *col_ind, int *diag_ind, double *nnz_data)
 Block fill-in Incomplete LU preconditioner for BSR matrix format. More...
 
void bilu_psolve (int bn, int *row_ptr, int *col_ind, int *diag_ind, double *nnz_data, double *b)
 Solver function for BILU preconditioner. More...
 
ucfd_status_t lusgs_prepare (int bn, int *diag_ind, double *nnz_data)
 LU-SGS preconditioner for BSR matrix format. More...
 
void lusgs_psolve (int bn, int *row_ptr, int *col_ind, int *diag_ind, double *nnz_data, double *b)
 Solver function for LU-SGS preconditioner. More...
 
void none_psolve (int bn, int *row_ptr, int *col_ind, int *diag_ind, double *nnz_data, double *b)
 Unpreconditioned solver. More...
 

Detailed Description

Header file for preconditioners for Krylov subspace methods.

Declaration of each prepare/psolve function. prepare must be executed before Krylov method routine starts. psolve function is executed in Krylov method to solve Px = b.

Definition in file precon.h.

Function Documentation

◆ bilu_prepare()

ucfd_status_t bilu_prepare ( int  bn,
int *  iw,
int *  row_ptr,
int *  col_ind,
int *  diag_ind,
double *  nnz_data 
)

Block fill-in Incomplete LU preconditioner for BSR matrix format.

Parameters
bnNumber of element cells
blkBlock size of BSR matrix
iwWorking array
row_ptrRow-directional index pointer array of the matrix
col_indColumn index array of the matrix
diag_indDiagonal matrix index array based on row_ptr
nnz_dataNon-zero value array of the matrix

This function refactors non-zero values of BSR matrix applying block fill-in process.

Definition at line 35 of file precon.c.

Here is the call graph for this function:

◆ bilu_psolve()

void bilu_psolve ( int  bn,
int *  row_ptr,
int *  col_ind,
int *  diag_ind,
double *  nnz_data,
double *  b 
)

Solver function for BILU preconditioner.

Parameters
bnNumber of element cells
blkBlock size of BSR matrix
row_ptrRow-directional index pointer array of the matrix
col_indColumn index array of the matrix
diag_indDiagonal matrix index array based on row_ptr
nnz_dataNon-zero value array of the matrix
bRight-hand-side

This function applies preconditioner matrix into arbitrary input vector b. In other words, solve Px = b.

Definition at line 100 of file precon.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lusgs_prepare()

ucfd_status_t lusgs_prepare ( int  bn,
int *  diag_ind,
double *  nnz_data 
)

LU-SGS preconditioner for BSR matrix format.

Parameters
bnNumber of element cells
blkBlock size of BSR matrix
diag_indDiagonal matrix index array based on row_ptr
nnz_dataNon-zero value array of the matrix

LU decomposition is applied in every diagonal matrix.

Definition at line 167 of file precon.c.

Here is the call graph for this function:

◆ lusgs_psolve()

void lusgs_psolve ( int  bn,
int *  row_ptr,
int *  col_ind,
int *  diag_ind,
double *  nnz_data,
double *  b 
)

Solver function for LU-SGS preconditioner.

Parameters
bnNumber of element cells
blkBlock size of BSR matrix
row_ptrRow-directional index pointer array of the matrix
col_indColumn index array of the matrix
diag_indDiagonal matrix index array based on row_ptr
nnz_dataNon-zero value array of the matrix
bRight-hand-side

This function applies preconditioner matrix into arbitrary input vector b. In other words, solve Px = b.

Definition at line 187 of file precon.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ none_psolve()

void none_psolve ( int  bn,
int *  row_ptr,
int *  col_ind,
int *  diag_ind,
double *  nnz_data,
double *  b 
)

Unpreconditioned solver.

Definition at line 255 of file precon.c.

Here is the caller graph for this function: