#include "SystemMatrix.h"#include "performance.h"#include "Functions.h"Go to the source code of this file.
| #define PASO_TRACE |
| #define SOLVER_BREAKDOWN -10 |
Referenced by Paso_Solver(), and Paso_TransportProblem_solve().
| #define SOLVER_DIVERGENCE -12 |
Referenced by Paso_TransportProblem_solve().
| #define SOLVER_INPUT_ERROR -1 |
Referenced by Paso_Solver(), and Paso_TransportProblem_solve().
| #define SOLVER_MAXITER_REACHED 1 |
Referenced by Paso_Solver(), Paso_Solver_MINRES(), Paso_Solver_NewtonGMRES(), and Paso_TransportProblem_solve().
| #define SOLVER_MEMORY_ERROR -9 |
Referenced by Paso_TransportProblem_solve().
| #define SOLVER_NEGATIVE_NORM_ERROR -11 |
Referenced by Paso_Solver(), and Paso_TransportProblem_solve().
| #define SOLVER_NO_ERROR 0 |
| #define TOLERANCE_FOR_SCALARS (double)(0.) |
Referenced by Paso_Solver_BiCGStab(), and Paso_Solver_PCG().
| Paso_Function* Paso_Function_LinearSystem_alloc | ( | Paso_SystemMatrix * | A, | |
| double * | b, | |||
| Paso_Options * | options | |||
| ) |
References Paso_Function::b, Esys_checkPtr(), Esys_MPIInfo_getReference(), Esys_noError(), Paso_Function::kind, MEMALLOC, Paso_Function::more, Paso_SystemMatrix::mpi_info, Paso_Function::mpi_info, Paso_Function::n, Paso_Function_LinearSystem_free(), Paso_SystemMatrix_getReference(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_setPreconditioner(), 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 | |||
| ) |
| void Paso_Function_LinearSystem_free | ( | Paso_Function * | F | ) |
References Esys_MPIInfo_free(), MEMFREE, Paso_Function::more, Paso_Function::mpi_info, 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 | |||
| ) |
| PASO_DLL_API void Paso_Solver | ( | Paso_SystemMatrix * | , | |
| double * | , | |||
| double * | , | |||
| Paso_Options * | , | |||
| Paso_Performance * | pp | |||
| ) |
References ABS, blocktimer_increment(), blocktimer_time(), Paso_SystemMatrix::col_block_size, Esys_MPIInfo::comm, Paso_Options::converged, DBLE, DIVERGED, EPSILON, Esys_checkPtr(), Esys_noError(), Esys_resetError(), Esys_setError(), Esys_timer(), FALSE, IS_NAN, Paso_Options::iter_max, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, 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_BICGSTAB, Paso_Function_LinearSystem_alloc(), Paso_Function_LinearSystem_free(), PASO_GMRES, PASO_MINRES, PASO_NONLINEAR_GMRES, Paso_Options_getSolver(), PASO_PASO, PASO_PCG, PASO_PRES20, Paso_Solver_BiCGStab(), Paso_Solver_GMRES(), Paso_Solver_MINRES(), Paso_Solver_NewtonGMRES(), Paso_Solver_PCG(), Paso_Solver_TFQMR(), Paso_SystemMatrix_applyBalance(), Paso_SystemMatrix_applyBalanceInPlace(), Paso_SystemMatrix_balance(), Paso_SystemMatrix_getGlobalNumCols(), Paso_SystemMatrix_getGlobalNumRows(), Paso_SystemMatrix_getTotalNumCols(), Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_setPreconditioner(), Paso_SystemMatrix_solvePreconditioner(), PASO_TFQMR, PERFORMANCE_ALL, PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), 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, SOLVER_NEGATIVE_NORM_ERROR, SOLVER_NO_ERROR, 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().
| err_t Paso_Solver_BiCGStab | ( | Paso_SystemMatrix * | A, | |
| double * | B, | |||
| double * | X, | |||
| dim_t * | iter, | |||
| double * | tolerance, | |||
| Paso_Performance * | pp | |||
| ) |
References ABS, Esys_MPIInfo::comm, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, PASO_ONE, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_solvePreconditioner(), PASO_ZERO, TMPMEMALLOC, TMPMEMFREE, and TOLERANCE_FOR_SCALARS.
Referenced by Paso_FCT_Solver_updateNL(), and Paso_Solver().
| PASO_DLL_API void Paso_Solver_free | ( | Paso_SystemMatrix * | ) |
References Paso_SystemMatrix_freePreconditioner().
Referenced by Paso_solve_free().
| 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, Esys_MPIInfo::comm, MAX, MIN, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, omp_get_max_threads, PASO_ONE, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_solvePreconditioner(), PASO_ZERO, SOLVER_NO_ERROR, TMPMEMALLOC, and TMPMEMFREE.
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(), INDEX2, Paso_Function::mpi_info, Paso_Function::n, Paso_FunctionDerivative(), Paso_InnerProduct(), Paso_l2(), Paso_Update(), Paso_zeroes(), SOLVER_NO_ERROR, TMPMEMALLOC, and TMPMEMFREE.
Referenced by Paso_Solver_NewtonGMRES().
| err_t Paso_Solver_MINRES | ( | Paso_SystemMatrix * | A, | |
| double * | B, | |||
| double * | X, | |||
| dim_t * | iter, | |||
| double * | tolerance, | |||
| Paso_Performance * | pp | |||
| ) |
References ABS, Paso_SystemMatrix::mpi_info, Paso_AXPY, Paso_Copy(), Paso_InnerProduct(), Paso_l2(), PASO_ONE, Paso_Scale, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_solvePreconditioner(), PASO_ZERO, SOLVER_MAXITER_REACHED, 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, 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_lsup(), Paso_Solver_GMRES2(), Paso_Update(), SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, TMPMEMALLOC, TMPMEMFREE, Paso_Options::tolerance, 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, Esys_MPIInfo::comm, MAX, MIN, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, omp_get_max_threads, PASO_ONE, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_solvePreconditioner(), PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), TMPMEMALLOC, TMPMEMFREE, and TOLERANCE_FOR_SCALARS.
Referenced by Paso_Solver().
| err_t Paso_Solver_TFQMR | ( | Paso_SystemMatrix * | A, | |
| double * | B, | |||
| double * | X, | |||
| dim_t * | iter, | |||
| double * | tolerance, | |||
| Paso_Performance * | pp | |||
| ) |
References ABS, Paso_SystemMatrix::mpi_info, Paso_Copy(), Paso_InnerProduct(), Paso_l2(), Paso_LinearCombination(), PASO_ONE, Paso_SystemMatrix_getTotalNumRows(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_SystemMatrix_solvePreconditioner(), Paso_Update(), PASO_ZERO, Paso_zeroes(), PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_NO_ERROR, TMPMEMALLOC, and TMPMEMFREE.
Referenced by Paso_Solver().
1.7.1