Go to the source code of this file.
Data Structures | |
struct | sparse |
void | BiCGSTAB_sparse (vector sol, const sparse A, const vector b, double *state, void prec(vector, const vector)) |
void | CGSSolve_sparse (vector sol, const sparse A, const vector b, double *state) |
void | check1 (long n, long m, long *I, long *J, long nz) |
int | check_sparse_system (const vector sol, const sparse A, const sparse PC, const vector b) |
void | construct_sparse (sparse *A, long n, long m, long nz) |
void | construct_sparse_copy (sparse *A, const sparse B) |
void | construct_sparse_fast_transpose (sparse *AT, const sparse) |
void | construct_sparse_ij (sparse *A, long n, long m, long nz, long *_I, long *_J) |
void | construct_sparse_ijvaladd (sparse *A, long n, long m, long nz, long nzmax, long *I, long *J, double *VAL) |
void | construct_sparse_ILU (sparse *out, const sparse orig) |
void | construct_sparse_ILU1 (sparse *out, const sparse orig) |
void | construct_sparse_lumped (sparse *Alum, const sparse A) |
void | construct_sparse_multiply (sparse *P, const sparse A, const sparse B) |
void | construct_sparse_multiply_fast (sparse *P, const sparse, const sparse) |
void | construct_sparse_nonzero_copy (sparse *A, const sparse B) |
void | construct_sparse_transpose (sparse *A, const sparse B) |
long | copy_sparse2ijval (const sparse A, long *I, long *J, double *VAL) |
void | destruct_sparse (sparse *A) |
void | fill_sparse_ijval (sparse A, long *I, long *J, double *VAL, long nz) |
long | find_ij (long *I, long *J, long i, long j, long nz) |
void | GMRESSolve_sparse (vector sol, const sparse A, const vector b, double *state) |
void | ILU_sparse (sparse M) |
void | LUsolve_sparse (double *sol, const sparse M, const double *b) |
long | multiply_sparse (double *out, const sparse A, const double *with) |
long | multiply_sparse_left (double *out, const double *with, const sparse A) |
void | multiply_sparse_scalar (sparse A, double t) |
void | PCGMSolve_sparse (vector sol, const sparse A, const vector b, sparse *PC, double *state) |
void | PCGSSolve_sparse (vector sol, const sparse A, const vector b, double *state, void prec(vector, const vector)) |
void | PGMRESSolve_fce (vector sol, void mult(vector, const vector), const vector b, void prec(vector, const vector), double *state) |
void | PGMRESSolve_sparse (vector sol, const sparse A, const vector b, sparse *PC, double *state) |
void | PGMRESSolve_sparse_right (vector sol, const sparse A, const vector b, void prec(vector), double *state) |
void | quicksort_ij (long *I, long *J, long lo, long hi) |
void | quicksort_ijval (long *I, long *J, double *VAL, long lo, long hi) |
void | quicksort_long (long *I, long lo, long hi) |
void | reconstruct_sparse_triplet (sparse *A, long n, long m, long nz, long *I, long *J, double *VAL) |
void | save_sparse (char *fname, const sparse A) |
long | sparse_lincomb (double *rez, double alpha, const sparse A, const double *v) |
void | sparse_matrix_add (sparse *A, long i, long j, double val) |
double | sparse_matrix_get (const sparse A, long i, long j) |
void | sparse_matrix_insert (sparse *A, long i, long j, double val) |
double | sparse_matrix_product (const double *u, const sparse A, const double *v) |
void | sparse_matrix_set (sparse *A, long i, long j, double val) |
long | sparse_nonzero (const sparse A) |
long | sparse_nonzerosmultiply (const sparse A, const sparse B) |
long | sparse_reziduum (double *rez, const sparse A, const double *v) |
void | UMFPACKSolve_normal_equations (vector sol, const sparse A, const vector b) |
void | UMFPACKSolve_sparse (vector sol, const sparse A, const vector b) |
long | unique (long *I, long *J, long nz) |
long | unique_long (long *I, long nz) |
long | unique_val (long *I, long *J, double *VAL, long nz) |
void | vypis_ij (long *I, long *J, long nz) |
void | vypis_ijval (long *I, long *J, double *VAL, long nz) |
void | vypis_sparse (const sparse A) |
void | zeroize_sparse (sparse A) |
|
check triplet(I,J,VAL) whether it fits into n x m matrix |
|
allocate memory for matrix A of n x m with nz nonzeros |
|
construct matrix A of n x m with nz nonzeros and structure given by I-row and J-col |
|
constr. matrix from triplet I,J,VAL, with nz values, max memory allocated as nzmax |
|
construct sparse matrix as copy |
|
construct sparse matrix as copy of only nonzeros |
|
transpose given matrix |
|
P=create A * B |
|
fill matrix A with the triplet value, reallocate memory if needed |
|
destruct matrix |
|
construct transpose matrix (through the triplet) |
|
fast version P= create A*B |
|
lumped version of A (only diagonal) |
|
compute the number of nonzeros of A |
|
convert A to triplet I J VAL |
|
prints the triplet to screen |
|
prints the matrix structure to screen |
|
prints the sparse matrix |
|
saving sparse matrix A to file filename |
|
out:= A * with |
|
out:= with * A |
|
rez:=rez-A*v |
|
rez:= alpha*rez+A*v |
|
just fill matrix A with the triplet IJVAL |
|
sort the triplet I J VAL from lo to high (quicsort) for CCF |
|
sort the structure I J from lo to high (quicsort) for CCF |
|
sort values of I from lo to high (quicksort) |
|
make unique values by adding together the same indices |
|
make unique values by canceling duplicities |
|
make unique values by canceling duplicities |
|
return k such that I[k]=i and J[k]=j, k=-1 if not found |
|
make A zero matrix |
|
multiply matrix A with t |
|
estimate for no. of nonzeros for A * B |
|
returns value u'*A*v |
|
insert (i,j,val) into matrix (SLOW!) |
|
set (i,j,val) in matrix (SLOW!) |
|
add (i,j,val) to matrix (SLOW!) |
|
gets value of A(i,j) |
|
Prepare Incomplete LU decomposition of orig matrix, add 1-neighbours |
|
Prepare Incomplete LU decomposition of orig matrix, no-fill |
|
solve M * sol = b, M - LU decomposed matrix |
|
Make ILU of M |
|
Check whether the system A*sol = b can be solved with PC preconditioner |
|
Solve A*sol=b with PC - preconditioner (either filled or will be returned), state - parameters for solution: state[0]=MaxIter(max. iterations) state[1]=epsilon(precision/relative) state[2]=print residuals each iteration state[3]=GMRES restarts state[4]=print residuals each iteration state[5]=show 1 - header, 2 - convergent, 4 - nonconvergent (logical addition) state[6]=precision(absolute) state[7]= state[8]=OUTPUT: no. of performed iterations state[9]=achieved precision |
|
|
|
|
|
CG method written for normal eqs., for the interpretation of the state variable, see PCGMSolve_sparse |
|
Use PGMRES method, the state variable, see PCGMSolve_sparse |
|
Use GMRES method, the state variable, see PCGMSolve_sparse |
|
Use PGMRES method, right preconditioner prec(), the state variable, see PCGMSolve_sparse |
|
Use PGMRES method for matrix and preconditioner given by a function, the state variable, see PCGMSolve_sparse |
|
|
|
|