ESYS13
Revision_
|
#include "Paso.h"
#include "Preconditioner.h"
#include "Options.h"
#include "PasoUtil.h"
#include "UMFPACK.h"
#include "MKL.h"
#define SHOW_TIMING FALSE |
Referenced by Paso_Preconditioner_LocalAMG_alloc(), and Paso_Preconditioner_LocalAMG_solve().
#define SMALL_PANEL TRUE |
Referenced by Paso_Preconditioner_LocalAMG_RungeStuebenSearch().
#define USE_TRANSPOSE TRUE |
Referenced by Paso_Preconditioner_LocalAMG_alloc().
Paso_Preconditioner_LocalAMG* Paso_Preconditioner_LocalAMG_alloc | ( | Paso_SparseMatrix * | A_p, |
dim_t | level, | ||
Paso_Options * | options | ||
) |
References Paso_Preconditioner_LocalAMG::A_C, Paso_Preconditioner_LocalAMG::AMG_C, Paso_Preconditioner_LocalAMG::b_C, Paso_Options::coarse_matrix_refinements, Paso_Options::coarsening_selection_time, Paso_Options::coarsening_threshold, Paso_Options::diagonal_dominance_threshold, Esys_checkPtr(), Esys_noError(), Esys_timer(), Paso_Options::interpolation_method, Paso_Pattern::len, Paso_Preconditioner_LocalAMG::level, Paso_Options::level_max, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MAX, MEMALLOC, Paso_Options::min_coarse_matrix_size, Paso_Options::min_coarse_sparsity, Paso_SparseMatrix::numRows, Paso_Preconditioner_LocalAMG::P, PASO_AMG_IN_F, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, PASO_JACOBI, PASO_MKL, Paso_Preconditioner_LocalAMG_alloc(), Paso_Preconditioner_LocalAMG_enforceFFConnectivity(), Paso_Preconditioner_LocalAMG_free(), Paso_Preconditioner_LocalAMG_getProlongation(), Paso_Preconditioner_LocalAMG_RungeStuebenSearch(), Paso_Preconditioner_LocalAMG_setStrongConnections(), Paso_Preconditioner_LocalAMG_setStrongConnections_Block(), Paso_Preconditioner_LocalSmoother_alloc(), PASO_SMOOTHER, Paso_SparseMatrix_free(), Paso_SparseMatrix_getSparsity(), Paso_SparseMatrix_getTotalNumRows(), Paso_SparseMatrix_getTranspose(), Paso_SparseMatrix_MatrixMatrix(), Paso_SparseMatrix_MatrixMatrixTranspose(), Paso_SparseMatrix_unroll(), PASO_UMFPACK, Paso_Util_cumsum_maskedFalse(), Paso_Util_cumsum_maskedTrue(), Paso_SparseMatrix::pattern, Paso_Options::post_sweeps, Paso_Preconditioner_LocalAMG::post_sweeps, Paso_Options::pre_sweeps, Paso_Preconditioner_LocalAMG::pre_sweeps, Paso_Pattern::ptr, Paso_Preconditioner_LocalAMG::R, Paso_Preconditioner_LocalAMG::r, Paso_Preconditioner_LocalAMG::refinements, Paso_Options::reordering, Paso_Preconditioner_LocalAMG::reordering, Paso_SparseMatrix::row_block_size, S, SHOW_TIMING, Paso_Options::smoother, Paso_Preconditioner_LocalAMG::Smoother, Paso_SparseMatrix::solver_p, Paso_SparseMatrix::solver_package, TMPMEMALLOC, TMPMEMFREE, USE_TRANSPOSE, Paso_Options::usePanel, Paso_Options::verbose, and Paso_Preconditioner_LocalAMG::x_C.
Referenced by Paso_Preconditioner_AMG_Root_alloc(), and Paso_Preconditioner_LocalAMG_alloc().
void Paso_Preconditioner_LocalAMG_enforceFFConnectivity | ( | const dim_t | n, |
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
index_t * | split_marker | ||
) |
References PASO_AMG_IN_C, PASO_AMG_IN_F, and Paso_comparIndex().
Referenced by Paso_Preconditioner_LocalAMG_alloc().
References Paso_Preconditioner_LocalAMG::A_C, Paso_Preconditioner_LocalAMG::AMG_C, Paso_Preconditioner_LocalAMG::b_C, MEMFREE, Paso_Preconditioner_LocalAMG::P, Paso_Preconditioner_LocalAMG_free(), Paso_Preconditioner_LocalSmoother_free(), Paso_SparseMatrix_free(), Paso_Preconditioner_LocalAMG::R, Paso_Preconditioner_LocalAMG::r, Paso_Preconditioner_LocalAMG::Smoother, and Paso_Preconditioner_LocalAMG::x_C.
Referenced by Paso_Preconditioner_AMG_Root_free(), Paso_Preconditioner_LocalAMG_alloc(), and Paso_Preconditioner_LocalAMG_free().
double Paso_Preconditioner_LocalAMG_getCoarseLevelSparsity | ( | const Paso_Preconditioner_LocalAMG * | in | ) |
void Paso_Preconditioner_LocalAMG_RungeStuebenSearch | ( | const dim_t | n, |
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
index_t * | split_marker, | ||
const bool_t | usePanel | ||
) |
References Esys_checkPtr(), Esys_noError(), FALSE, PASO_AMG_IN_C, PASO_AMG_IN_F, PASO_AMG_UNDECIDED, Paso_Util_arg_max(), SMALL_PANEL, TMPMEMALLOC, TMPMEMFREE, and TRUE.
Referenced by Paso_Preconditioner_LocalAMG_alloc().
void Paso_Preconditioner_LocalAMG_setStrongConnections | ( | Paso_SparseMatrix * | A, |
dim_t * | degree_S, | ||
index_t * | S, | ||
const double | theta, | ||
const double | tau | ||
) |
References ABS, Paso_Pattern::index, MAX, Paso_SparseMatrix::numRows, Paso_SparseMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_LocalAMG_alloc().
void Paso_Preconditioner_LocalAMG_setStrongConnections_Block | ( | Paso_SparseMatrix * | A, |
dim_t * | degree_S, | ||
index_t * | S, | ||
const double | theta, | ||
const double | tau | ||
) |
void Paso_Preconditioner_LocalAMG_solve | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalAMG * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References Paso_Preconditioner_LocalAMG::A_C, Paso_Preconditioner_LocalAMG::AMG_C, Paso_Preconditioner_LocalAMG::b_C, Esys_timer(), FALSE, Paso_Preconditioner_LocalAMG::level, Paso_SparseMatrix::numRows, Paso_Preconditioner_LocalAMG::P, Paso_Copy(), PASO_MKL, Paso_MKL(), Paso_Preconditioner_LocalAMG_solve(), Paso_Preconditioner_LocalSmoother_solve(), PASO_SMOOTHER, Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG(), PASO_UMFPACK, Paso_UMFPACK(), Paso_Preconditioner_LocalAMG::post_sweeps, Paso_Preconditioner_LocalAMG::pre_sweeps, Paso_Preconditioner_LocalAMG::R, Paso_Preconditioner_LocalAMG::r, Paso_Preconditioner_LocalAMG::refinements, Paso_Preconditioner_LocalAMG::reordering, Paso_SparseMatrix::row_block_size, SHOW_TIMING, Paso_Preconditioner_LocalAMG::Smoother, Paso_SparseMatrix::solver_p, Paso_SparseMatrix::solver_package, TRUE, and Paso_Preconditioner_LocalAMG::x_C.
Referenced by Paso_Preconditioner_AMG_Root_solve(), and Paso_Preconditioner_LocalAMG_solve().