#include "SystemMatrix.h"
#include "performance.h"
#include "Functions.h"
Go to the source code of this file.
#define PASO_ONE (double)(1.0) |
#define PASO_TRACE |
#define PASO_ZERO (double)(0.0) |
Referenced by Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_PCG(), and Paso_Solver_TFQMR().
#define SOLVER_BREAKDOWN -10 |
#define SOLVER_INPUT_ERROR -1 |
#define SOLVER_MAXITER_REACHED 1 |
#define SOLVER_MEMORY_ERROR -9 |
#define SOLVER_NEGATIVE_NORM_ERROR -11 |
Referenced by Paso_Solver_MINRES().
#define SOLVER_NO_ERROR 0 |
#define TOLERANCE_FOR_SCALARS (double)(0.) |
Referenced by Paso_Solver_BiCGStab(), and Paso_Solver_PCG().
typedef struct Paso_Solver_AMG Paso_Solver_AMG |
typedef struct Paso_Solver_GS Paso_Solver_GS |
typedef struct Paso_Solver_ILU Paso_Solver_ILU |
typedef struct Paso_Solver_RILU Paso_Solver_RILU |
Paso_Function* Paso_Function_LinearSystem_alloc | ( | Paso_SystemMatrix * | A, | |
double * | b, | |||
Paso_Options * | options | |||
) |
References Paso_Function::b, Paso_Function::kind, LINEAR_SYSTEM, MEMALLOC, Paso_Function::more, Paso_SystemMatrix::mpi_info, Paso_Function::mpi_info, Paso_Function::n, Paso_checkPtr(), Paso_Function_LinearSystem_free(), Paso_MPIInfo_getReference(), Paso_noError(), Paso_Solver_setPreconditioner(), Paso_SystemMatrix_getReference(), Paso_SystemMatrix_getTotalNumRows(), and Paso_Function::tmp.
Referenced by Paso_Solver().
err_t Paso_Function_LinearSystem_call | ( | Paso_Function * | F, | |
double * | value, | |||
const double * | arg, | |||
Paso_Performance * | pp | |||
) |
References Paso_Function::b, Paso_Function::more, Paso_Function::n, NO_ERROR, Paso_Copy(), PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), and Paso_Function::tmp.
Referenced by Paso_FunctionCall().
void Paso_Function_LinearSystem_free | ( | Paso_Function * | F | ) |
References MEMFREE, Paso_Function::more, Paso_Function::mpi_info, Paso_MPIInfo_free(), Paso_SystemMatrix_free(), and Paso_Function::tmp.
Referenced by Paso_Function_free(), Paso_Function_LinearSystem_alloc(), and Paso_Solver().
err_t Paso_Function_LinearSystem_setInitialGuess | ( | Paso_SystemMatrix * | A, | |
double * | x, | |||
Paso_Performance * | pp | |||
) |
void Paso_Preconditioner_free | ( | Paso_Solver_Preconditioner * | ) |
References Paso_Solver_Preconditioner::amg, Paso_Solver_Preconditioner::gs, Paso_Solver_Preconditioner::ilu, Paso_Solver_Preconditioner::jacobi, MEMFREE, Paso_Solver_AMG_free(), Paso_Solver_GS_free(), Paso_Solver_ILU_free(), Paso_Solver_Jacobi_free(), Paso_Solver_RILU_free(), and Paso_Solver_Preconditioner::rilu.
Referenced by Paso_Solver_free(), and Paso_Solver_setPreconditioner().
void Paso_Solver | ( | Paso_SystemMatrix * | , | |
double * | , | |||
double * | , | |||
Paso_Options * | , | |||
Paso_Performance * | pp | |||
) |
References ABS, Paso_SystemMatrix::block_size, blocktimer_increment(), blocktimer_time(), Paso_SystemMatrix::col_block_size, Paso_MPIInfo::comm, Paso_Options::converged, DBLE, DIVERGED, EPSILON, FALSE, Paso_Options::iter_max, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MATRIX_FORMAT_SYM, MAX, MEMFREE, Paso_Options::method, MIN, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, Paso_Options::net_time, NO_ERROR, Paso_Options::num_inner_iter, Paso_Options::num_iter, Paso_Options::num_level, PASO_AMG, PASO_BICGSTAB, Paso_checkPtr(), Paso_Function_LinearSystem_alloc(), Paso_Function_LinearSystem_free(), PASO_GMRES, PASO_MINRES, Paso_noError(), PASO_NONLINEAR_GMRES, Paso_Options_getSolver(), PASO_PASO, PASO_PCG, PASO_PRES20, Paso_resetError(), Paso_setError(), Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_NewtonGMRES(), Paso_Solver_PCG(), Paso_Solver_setPreconditioner(), Paso_Solver_solvePreconditioner(), Paso_Solver_TFQMR(), Paso_SystemMatrix_borrowNormalization(), Paso_SystemMatrix_getGlobalNumCols(), Paso_SystemMatrix_getGlobalNumRows(), Paso_SystemMatrix_getTotalNumCols(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), PASO_TFQMR, Paso_timer(), PERFORMANCE_ALL, PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), Paso_Options::preconditioner, Paso_Options::residual_norm, Paso_Options::restart, Paso_SystemMatrix::row_block_size, Paso_Options::set_up_time, SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, Paso_Options::symmetric, SYSTEM_ERROR, Paso_Options::time, TMPMEMALLOC, Paso_Options::tolerance, TRUE, Paso_Options::truncation, Paso_SystemMatrix::type, TYPE_ERROR, VALUE_ERROR, Paso_Options::verbose, and ZERO_DIVISION_ERROR.
Referenced by Paso_solve().
void Paso_Solver_AMG_free | ( | Paso_Solver_AMG * | in | ) |
References Paso_Solver_AMG::A, Paso_Solver_AMG::A_CF, Paso_Solver_AMG::A_FC, Paso_Solver_AMG::A_FF_pivot, Paso_Solver_AMG::AMG_of_Schur, Paso_Solver_AMG::b_C, Paso_Solver_AMG::b_F, Paso_Solver_AMG::GS, Paso_Solver_AMG::inv_A_FF, Paso_Solver_AMG::mask_C, Paso_Solver_AMG::mask_F, MEMFREE, Paso_Solver_AMG_free(), Paso_Solver_Jacobi_free(), Paso_SparseMatrix_free(), Paso_UMFPACK1_free(), Paso_Solver_AMG::rows_in_C, Paso_Solver_AMG::rows_in_F, Paso_Solver_AMG::solver, Paso_Solver_AMG::x_C, and Paso_Solver_AMG::x_F.
Referenced by Paso_Preconditioner_free(), Paso_Solver_AMG_free(), and Paso_Solver_getAMG().
void Paso_Solver_applyBlockDiagonalMatrix | ( | dim_t | n_block, | |
dim_t | n, | |||
double * | D, | |||
index_t * | pivot, | |||
double * | x, | |||
double * | b | |||
) |
Referenced by Paso_Solver_solveAMG(), Paso_Solver_solveGS(), Paso_Solver_solveJacobi(), and Paso_Solver_solveRILU().
err_t Paso_Solver_BiCGStab | ( | Paso_SystemMatrix * | A, | |
double * | B, | |||
double * | X, | |||
dim_t * | iter, | |||
double * | tolerance, | |||
Paso_Performance * | pp | |||
) |
References ABS, Paso_MPIInfo::comm, FALSE, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), PASO_ZERO, SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, and TOLERANCE_FOR_SCALARS.
Referenced by Paso_Solver().
void Paso_Solver_free | ( | Paso_SystemMatrix * | ) |
References Paso_Preconditioner_free(), and Paso_SystemMatrix::solver.
Referenced by Paso_solve_free().
Paso_Solver_AMG* Paso_Solver_getAMG | ( | Paso_SparseMatrix * | A_p, | |
dim_t | level, | |||
Paso_Options * | options | |||
) |
References Paso_Solver_AMG::A, Paso_Solver_AMG::A_CF, Paso_Solver_AMG::A_FC, Paso_Solver_AMG::A_FF_pivot, Paso_Solver_AMG::AMG_of_Schur, Paso_Solver_AMG::b_C, Paso_Solver_AMG::b_F, Paso_Options::coarsening_method, Paso_Options::coarsening_threshold, Paso_Solver_AMG::coarsest_level, Paso_SparseMatrix::col_block_size, FALSE, Paso_Solver_AMG::GS, Paso_Pattern::index, Paso_Solver_AMG::inv_A_FF, Paso_Solver_AMG::level, Paso_Solver_AMG::mask_C, Paso_Solver_AMG::mask_F, MEMALLOC, Paso_Solver_AMG::n, Paso_Solver_AMG::n_block, Paso_Solver_AMG::n_C, Paso_Solver_AMG::n_F, Paso_SparseMatrix::numRows, PASO_AGGREGATION_COARSENING, Paso_checkPtr(), Paso_comparIndex(), Paso_noError(), Paso_Pattern_Aggregiation(), Paso_Pattern_binop(), Paso_Pattern_coup(), Paso_Pattern_free(), Paso_Pattern_multiply(), Paso_Pattern_RS(), PASO_RUGE_STUEBEN_COARSENING, Paso_setError(), Paso_Solver_AMG_free(), Paso_Solver_getAMG(), Paso_Solver_getJacobi(), Paso_Solver_updateIncompleteSchurComplement(), Paso_SparseMatrix_alloc(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getReference(), Paso_SparseMatrix_getSubmatrix(), Paso_SparseMatrix_saveMM(), Paso_Util_cumsum(), PASO_YAIR_SHAPIRA_COARSENING, Paso_SparseMatrix::pattern, PATTERN_FORMAT_DEFAULT, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, Paso_Solver_AMG::rows_in_C, Paso_Solver_AMG::rows_in_F, S, Paso_Solver_AMG::solver, TMPMEMALLOC, TMPMEMFREE, TRUE, Paso_SparseMatrix::type, TYPE_ERROR, Paso_SparseMatrix::val, Paso_Options::verbose, Paso_Solver_AMG::x_C, and Paso_Solver_AMG::x_F.
Referenced by Paso_Solver_getAMG(), and Paso_Solver_setPreconditioner().
Paso_Solver_GS* Paso_Solver_getGS | ( | Paso_SparseMatrix * | A_p, | |
bool_t | verbose | |||
) |
References Paso_SparseMatrix::block_size, Paso_Solver_GS::colorOf, Paso_Solver_GS::diag, Paso_Solver_GS::factors, Paso_Pattern::index, Paso_Solver_GS::main_iptr, MEMALLOC, Paso_Solver_GS::n, Paso_Solver_GS::n_block, Paso_Solver_GS::num_colors, Paso_Pattern::numOutput, Paso_SparseMatrix::numRows, Paso_checkPtr(), Paso_noError(), Paso_Pattern_color(), Paso_Pattern_getReference(), Paso_Solver_GS_free(), Paso_SparseMatrix_getReference(), Paso_timer(), Paso_SparseMatrix::pattern, Paso_Solver_GS::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, and Paso_SparseMatrix::val.
Referenced by Paso_Solver_setPreconditioner().
Paso_Solver_ILU* Paso_Solver_getILU | ( | Paso_SparseMatrix * | A_p, | |
bool_t | verbose | |||
) |
References ABS, Paso_Solver_ILU::colorOf, Paso_Solver_ILU::factors, Paso_Pattern::index, Paso_SparseMatrix::len, Paso_Solver_ILU::main_iptr, MEMALLOC, Paso_Solver_ILU::n, Paso_Solver_ILU::n_block, Paso_Solver_ILU::num_colors, Paso_SparseMatrix::numRows, Paso_checkPtr(), Paso_noError(), Paso_Pattern_color(), Paso_Pattern_getReference(), Paso_setError(), Paso_Solver_ILU_free(), Paso_timer(), Paso_SparseMatrix::pattern, Paso_Solver_ILU::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, Paso_SparseMatrix::val, VALUE_ERROR, and ZERO_DIVISION_ERROR.
Referenced by Paso_Solver_setPreconditioner().
Paso_Solver_Jacobi* Paso_Solver_getJacobi | ( | Paso_SparseMatrix * | A_p | ) |
References ABS, Paso_SparseMatrix::block_size, Paso_SparseMatrix::col_block_size, Paso_Pattern::index, MEMALLOC, Paso_Solver_Jacobi::n, Paso_Solver_Jacobi::n_block, Paso_SparseMatrix::numCols, Paso_Pattern::numOutput, Paso_checkPtr(), Paso_noError(), Paso_setError(), Paso_Solver_Jacobi_free(), Paso_SparseMatrix::pattern, Paso_Solver_Jacobi::pivot, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, TYPE_ERROR, Paso_SparseMatrix::val, and Paso_Solver_Jacobi::values.
Referenced by Paso_Solver_getAMG(), and Paso_Solver_setPreconditioner().
Paso_Solver_RILU* Paso_Solver_getRILU | ( | Paso_SparseMatrix * | A_p, | |
bool_t | verbose | |||
) |
References Paso_Solver_RILU::A_CF, Paso_Solver_RILU::A_FC, Paso_Solver_RILU::A_FF_pivot, ABS, Paso_Solver_RILU::b_C, Paso_Solver_RILU::b_F, Paso_Pattern::index, Paso_Solver_RILU::inv_A_FF, Paso_Solver_RILU::mask_C, Paso_Solver_RILU::mask_F, MEMALLOC, Paso_Solver_RILU::n, Paso_Solver_RILU::n_block, Paso_Solver_RILU::n_C, Paso_Solver_RILU::n_F, Paso_SparseMatrix::numRows, Paso_checkPtr(), Paso_comparIndex(), Paso_noError(), Paso_Pattern_mis(), Paso_setError(), Paso_Solver_getRILU(), Paso_Solver_RILU_free(), Paso_Solver_updateIncompleteSchurComplement(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getSubmatrix(), Paso_timer(), Paso_Util_cumsum(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_Solver_RILU::RILU_of_Schur, Paso_SparseMatrix::row_block_size, Paso_Solver_RILU::rows_in_C, Paso_Solver_RILU::rows_in_F, TMPMEMALLOC, TMPMEMFREE, Paso_SparseMatrix::val, VALUE_ERROR, Paso_Solver_RILU::x_C, Paso_Solver_RILU::x_F, and ZERO_DIVISION_ERROR.
Referenced by Paso_Solver_getRILU(), and Paso_Solver_setPreconditioner().
err_t Paso_Solver_GMRES | ( | Paso_SystemMatrix * | A, | |
double * | r, | |||
double * | x, | |||
dim_t * | num_iter, | |||
double * | tolerance, | |||
dim_t | length_of_recursion, | |||
dim_t | restart, | |||
Paso_Performance * | pp | |||
) |
References ABS, Paso_MPIInfo::comm, FALSE, MAX, MIN, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, omp_get_max_threads(), PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), PASO_ZERO, SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, and TRUE.
Referenced by Paso_Solver().
err_t Paso_Solver_GMRES2 | ( | Paso_Function * | F, | |
const double * | f0, | |||
const double * | x0, | |||
double * | x, | |||
dim_t * | iter, | |||
double * | tolerance, | |||
Paso_Performance * | pp | |||
) |
References ABS, ApplyGivensRotations(), FALSE, INDEX2, Paso_Function::mpi_info, Paso_Function::n, Paso_FunctionDerivative(), Paso_InnerProduct(), Paso_l2(), Paso_Update(), Paso_zeroes(), SOLVER_INPUT_ERROR, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, and TRUE.
Referenced by Paso_Solver_NewtonGMRES().
void Paso_Solver_GS_free | ( | Paso_Solver_GS * | in | ) |
void Paso_Solver_ILU_free | ( | Paso_Solver_ILU * | in | ) |
References Paso_Solver_ILU::colorOf, Paso_Solver_ILU::factors, Paso_Solver_ILU::main_iptr, MEMFREE, Paso_Pattern_free(), and Paso_Solver_ILU::pattern.
Referenced by Paso_Preconditioner_free(), and Paso_Solver_getILU().
void Paso_Solver_Jacobi_free | ( | Paso_Solver_Jacobi * | in | ) |
References MEMFREE, Paso_Solver_Jacobi::pivot, and Paso_Solver_Jacobi::values.
Referenced by Paso_Preconditioner_free(), Paso_Solver_AMG_free(), and Paso_Solver_getJacobi().
err_t Paso_Solver_MINRES | ( | Paso_SystemMatrix * | A, | |
double * | B, | |||
double * | X, | |||
dim_t * | iter, | |||
double * | tolerance, | |||
Paso_Performance * | pp | |||
) |
References ABS, FALSE, MAX, MIN, Paso_SystemMatrix::mpi_info, Paso_Copy(), Paso_InnerProduct(), Paso_LinearCombination(), PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_Update(), PASO_ZERO, Paso_zeroes(), PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NEGATIVE_NORM_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, and TMPMEMFREE.
Referenced by Paso_Solver().
err_t Paso_Solver_NewtonGMRES | ( | Paso_Function * | F, | |
double * | x, | |||
Paso_Options * | options, | |||
Paso_Performance * | pp | |||
) |
References Paso_Options::absolute_tolerance, Paso_Options::adapt_inner_tolerance, FALSE, Paso_Options::inner_iter_max, Paso_Options::inner_tolerance, Paso_Options::iter_max, MAX, MIN, Paso_Function::mpi_info, Paso_Function::n, Paso_FunctionCall(), Paso_l2(), Paso_Solver_GMRES2(), Paso_Update(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, Paso_Options::tolerance, TRUE, and Paso_Options::verbose.
Referenced by Paso_Solver().
err_t Paso_Solver_PCG | ( | Paso_SystemMatrix * | A, | |
double * | B, | |||
double * | X, | |||
dim_t * | iter, | |||
double * | tolerance, | |||
Paso_Performance * | pp | |||
) |
References ABS, Paso_MPIInfo::comm, FALSE, MAX, MIN, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, omp_get_max_threads(), PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, and TOLERANCE_FOR_SCALARS.
Referenced by Paso_Solver().
void Paso_Solver_RILU_free | ( | Paso_Solver_RILU * | in | ) |
References Paso_Solver_RILU::A_CF, Paso_Solver_RILU::A_FC, Paso_Solver_RILU::A_FF_pivot, Paso_Solver_RILU::b_C, Paso_Solver_RILU::b_F, Paso_Solver_RILU::inv_A_FF, Paso_Solver_RILU::mask_C, Paso_Solver_RILU::mask_F, MEMFREE, Paso_Solver_RILU_free(), Paso_SparseMatrix_free(), Paso_Solver_RILU::RILU_of_Schur, Paso_Solver_RILU::rows_in_C, Paso_Solver_RILU::rows_in_F, Paso_Solver_RILU::x_C, and Paso_Solver_RILU::x_F.
Referenced by Paso_Preconditioner_free(), Paso_Solver_getRILU(), and Paso_Solver_RILU_free().
void Paso_Solver_setPreconditioner | ( | Paso_SystemMatrix * | A, | |
Paso_Options * | options | |||
) |
References Paso_Solver_Preconditioner::amg, Paso_Solver_Preconditioner::gs, Paso_Solver_Preconditioner::ilu, Paso_Solver_Preconditioner::jacobi, Paso_Options::level_max, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, PASO_AMG, Paso_checkPtr(), PASO_GS, PASO_ILU0, PASO_JACOBI, Paso_MPIInfo_noError(), Paso_Preconditioner_free(), PASO_RILU, Paso_Solver_getAMG(), Paso_Solver_getGS(), Paso_Solver_getILU(), Paso_Solver_getJacobi(), Paso_Solver_getRILU(), Paso_Options::preconditioner, Paso_Solver_Preconditioner::rilu, Paso_SystemMatrix::solver, Paso_Options::sweeps, Paso_Solver_GS::sweeps, Paso_Solver_Preconditioner::type, UNKNOWN, and Paso_Options::verbose.
Referenced by Paso_FCT_setUp(), Paso_Function_LinearSystem_alloc(), and Paso_Solver().
void Paso_Solver_solveAMG | ( | Paso_Solver_AMG * | amg, | |
double * | x, | |||
double * | b | |||
) |
References Paso_Solver_AMG::A, Paso_Solver_AMG::A_CF, Paso_Solver_AMG::A_FC, Paso_Solver_AMG::A_FF_pivot, Paso_Solver_AMG::AMG_of_Schur, Paso_Solver_AMG::b_C, Paso_Solver_AMG::b_F, Paso_Solver_AMG::coarsest_level, FALSE, Paso_Solver_AMG::GS, Paso_Solver_AMG::inv_A_FF, Paso_SparseMatrix::len, Paso_Solver_AMG::mask_C, Paso_Solver_AMG::mask_F, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_OFFSET1, MEMALLOC, MEMFREE, Paso_Solver_AMG::n, Paso_Solver_AMG::n_C, Paso_Solver_AMG::n_F, Paso_MKL1(), Paso_Solver_applyBlockDiagonalMatrix(), Paso_Solver_solveAMG(), Paso_Solver_solveJacobi(), Paso_SparseMatrix_alloc(), Paso_SparseMatrix_free(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(), Paso_timer(), Paso_UMFPACK1(), Paso_SparseMatrix::pattern, Paso_Solver_AMG::rows_in_C, Paso_Solver_AMG::rows_in_F, Paso_Solver_AMG::solver, Paso_SparseMatrix::val, Paso_Solver_AMG::x_C, and Paso_Solver_AMG::x_F.
Referenced by Paso_Solver_solveAMG(), and Paso_Solver_solvePreconditioner().
void Paso_Solver_solveGS | ( | Paso_Solver_GS * | gs, | |
double * | x, | |||
double * | b | |||
) |
References ABS, Paso_Solver_GS::colorOf, Paso_Solver_GS::diag, Paso_Solver_GS::factors, Paso_Pattern::index, Paso_Solver_GS::main_iptr, Paso_Solver_GS::n, Paso_Solver_GS::n_block, Paso_Solver_GS::num_colors, Paso_setError(), Paso_Solver_applyBlockDiagonalMatrix(), Paso_Solver_GS::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::val, and ZERO_DIVISION_ERROR.
Referenced by Paso_Solver_solvePreconditioner().
void Paso_Solver_solveILU | ( | Paso_Solver_ILU * | ilu, | |
double * | x, | |||
double * | b | |||
) |
void Paso_Solver_solveJacobi | ( | Paso_Solver_Jacobi * | prec, | |
double * | x, | |||
double * | b | |||
) |
void Paso_Solver_solvePreconditioner | ( | Paso_SystemMatrix * | A, | |
double * | , | |||
double * | ||||
) |
References Paso_Solver_Preconditioner::amg, DBLE, Paso_Solver_Preconditioner::gs, Paso_Solver_Preconditioner::ilu, Paso_Solver_Preconditioner::jacobi, MEMALLOC, MEMFREE, Paso_Solver_GS::n, Paso_Solver_GS::n_block, PASO_AMG, PASO_GS, PASO_ILU0, PASO_JACOBI, PASO_RILU, Paso_Solver_solveAMG(), Paso_Solver_solveGS(), Paso_Solver_solveILU(), Paso_Solver_solveJacobi(), Paso_Solver_solveRILU(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_Solver_Preconditioner::rilu, Paso_SystemMatrix::solver, Paso_Solver_GS::sweeps, and Paso_Solver_Preconditioner::type.
Referenced by Paso_Function_LinearSystem_call(), Paso_Solver(), Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_PCG(), Paso_Solver_TFQMR(), and Paso_SolverFCT_solve().
void Paso_Solver_solveRILU | ( | Paso_Solver_RILU * | rilu, | |
double * | x, | |||
double * | b | |||
) |
References Paso_Solver_RILU::A_CF, Paso_Solver_RILU::A_FC, Paso_Solver_RILU::A_FF_pivot, Paso_Solver_RILU::b_C, Paso_Solver_RILU::b_F, Paso_Solver_RILU::inv_A_FF, Paso_Solver_RILU::mask_C, Paso_Solver_RILU::mask_F, Paso_Solver_RILU::n, Paso_Solver_RILU::n_block, Paso_Solver_RILU::n_C, Paso_Solver_RILU::n_F, Paso_Solver_applyBlockDiagonalMatrix(), Paso_Solver_solveRILU(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(), Paso_Solver_RILU::RILU_of_Schur, Paso_Solver_RILU::rows_in_C, Paso_Solver_RILU::rows_in_F, Paso_Solver_RILU::x_C, and Paso_Solver_RILU::x_F.
Referenced by Paso_Solver_solvePreconditioner(), and Paso_Solver_solveRILU().
err_t Paso_Solver_TFQMR | ( | Paso_SystemMatrix * | A, | |
double * | B, | |||
double * | X, | |||
dim_t * | iter, | |||
double * | tolerance, | |||
Paso_Performance * | pp | |||
) |
References ABS, FALSE, Paso_SystemMatrix::mpi_info, Paso_Copy(), Paso_InnerProduct(), Paso_l2(), Paso_LinearCombination(), PASO_ONE, Paso_Solver_solvePreconditioner(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_Update(), PASO_ZERO, Paso_zeroes(), PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_MEMORY_ERROR, SOLVER_NO_ERROR, TMPMEMALLOC, and TMPMEMFREE.
Referenced by Paso_Solver().
void Paso_Solver_updateIncompleteSchurComplement | ( | Paso_SparseMatrix * | A_CC, | |
Paso_SparseMatrix * | A_CF, | |||
double * | invA_FF, | |||
index_t * | A_FF_pivot, | |||
Paso_SparseMatrix * | A_FC | |||
) |
References FALSE, Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, TRUE, and Paso_SparseMatrix::val.
Referenced by Paso_Solver_getAMG(), and Paso_Solver_getRILU().