ESYS13
Revision_
|
Go to the source code of this file.
#define PASO_AMG_IN_C 1 |
#define PASO_AMG_IN_F 0 |
#define PASO_AMG_UNDECIDED -1 |
Referenced by Paso_Preconditioner_LocalAMG_RungeStuebenSearch().
#define PRECONDITIONER_BREAKDOWN -10 |
#define PRECONDITIONER_DIVERGENCE -12 |
#define PRECONDITIONER_INPUT_ERROR -1 |
#define PRECONDITIONER_MAXITER_REACHED 1 |
Referenced by Paso_Preconditioner_Smoother_solve_byTolerance().
#define PRECONDITIONER_MEMORY_ERROR -9 |
#define PRECONDITIONER_NEGATIVE_NORM_ERROR -11 |
#define PRECONDITIONER_NO_ERROR 0 |
Referenced by Paso_FCT_Solver_update_LCN(), and Paso_Preconditioner_Smoother_solve_byTolerance().
typedef struct Paso_Preconditioner Paso_Preconditioner |
typedef struct Paso_Preconditioner_AMG Paso_Preconditioner_AMG |
typedef struct Paso_Preconditioner_AMG_Root Paso_Preconditioner_AMG_Root |
typedef struct Paso_Preconditioner_BoomerAMG Paso_Preconditioner_BoomerAMG |
typedef struct Paso_Preconditioner_LocalAMG Paso_Preconditioner_LocalAMG |
typedef struct Paso_Preconditioner_Smoother Paso_Preconditioner_Smoother |
typedef struct Paso_Solver_ILU Paso_Solver_ILU |
typedef struct Paso_Solver_RILU Paso_Solver_RILU |
Paso_Preconditioner* Paso_Preconditioner_alloc | ( | Paso_SystemMatrix * | A, |
Paso_Options * | options | ||
) |
References Paso_Preconditioner::amg, Esys_checkPtr(), Esys_MPIInfo_noError(), Esys_noError(), FALSE, Paso_Preconditioner::gs, Paso_Preconditioner::ilu, Paso_Preconditioner::jacobi, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, PASO_AMG, PASO_AMLI, PASO_BOOMERAMG, PASO_GS, PASO_ILU0, PASO_JACOBI, Paso_Preconditioner_AMG_Root_alloc(), Paso_Preconditioner_free(), Paso_Preconditioner_Smoother_alloc(), PASO_RILU, Paso_Solver_getILU(), Paso_Solver_getRILU(), Paso_Options::preconditioner, Paso_Preconditioner::rilu, Paso_Options::sweeps, Paso_Preconditioner::sweeps, TRUE, Paso_Preconditioner::type, UNKNOWN, Paso_Options::use_local_preconditioner, and Paso_Options::verbose.
Referenced by Paso_SystemMatrix_setPreconditioner().
Paso_Preconditioner_AMG* Paso_Preconditioner_AMG_alloc | ( | Paso_SystemMatrix * | A_p, |
dim_t | level, | ||
Paso_Options * | options | ||
) |
References Paso_Preconditioner_AMG::A_C, Paso_Preconditioner_AMG::AMG_C, Paso_Preconditioner_AMG::b_C, Paso_Options::coarsening_selection_time, Paso_Options::coarsening_threshold, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Coupler::connector, Paso_Options::diagonal_dominance_threshold, Esys_checkPtr(), Esys_noError(), Esys_timer(), FALSE, Paso_Options::interpolation_method, Paso_Pattern::len, Paso_Preconditioner_AMG::level, Paso_Options::level_max, Paso_SystemMatrix::mainBlock, MAX, MEMALLOC, Paso_Preconditioner_AMG::merged_solver, Paso_Options::min_coarse_matrix_size, Paso_Options::min_coarse_sparsity, Paso_SystemMatrix::mpi_info, MPI_INT, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_Preconditioner_AMG::P, PASO_AMG_IN_F, PASO_JACOBI, Paso_MergedSolver_alloc(), Paso_Preconditioner_AMG_alloc(), Paso_Preconditioner_AMG_buildInterpolationOperator(), Paso_Preconditioner_AMG_CIJPCoarsening(), Paso_Preconditioner_AMG_free(), Paso_Preconditioner_AMG_getProlongation(), Paso_Preconditioner_AMG_getRestriction(), Paso_Preconditioner_AMG_setStrongConnections(), Paso_Preconditioner_AMG_setStrongConnections_Block(), Paso_Preconditioner_AMG_transposeStrongConnections(), Paso_Preconditioner_Smoother_alloc(), Paso_SystemMatrix_copyColCoupleBlock(), Paso_SystemMatrix_copyRemoteCoupleBlock(), Paso_SystemMatrix_getGlobalNumRows(), Paso_SystemMatrix_getSparsity(), Paso_Util_cumsum_maskedFalse(), Paso_Util_cumsum_maskedTrue(), Paso_SparseMatrix::pattern, Paso_Preconditioner_AMG::post_sweeps, Paso_Options::post_sweeps, Paso_Preconditioner_AMG::pre_sweeps, Paso_Options::pre_sweeps, Paso_Preconditioner_AMG::R, Paso_Preconditioner_AMG::r, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, S, SHOW_TIMING, Esys_MPIInfo::size, Paso_Preconditioner_AMG::Smoother, Paso_Options::smoother, TMPMEMALLOC, TMPMEMFREE, Paso_Options::verbose, and Paso_Preconditioner_AMG::x_C.
Referenced by Paso_Preconditioner_AMG_alloc(), and Paso_Preconditioner_AMG_Root_alloc().
Paso_SystemMatrix* Paso_Preconditioner_AMG_buildInterpolationOperator | ( | Paso_SystemMatrix * | A, |
Paso_SystemMatrix * | P, | ||
Paso_SystemMatrix * | R | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_block_size, col_connector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_MPIInfo_free(), Esys_MPIInfo_getReference(), Esys_noError(), FALSE, Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrixPattern::input_distribution, Paso_SparseMatrix::len, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DEFAULT, MEMALLOC, MEMFREE, Paso_SystemMatrix::mpi_info, MPI_INT, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SparseMatrix::numRows, Paso_SharedComponents::offsetInShared, Paso_comparIndex(), Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_Preconditioner_AMG_CopyRemoteData(), Paso_Preconditioner_AMG_extendB(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getTranspose(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), Paso_SystemMatrix::pattern, Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, Paso_SystemMatrix::type, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_alloc().
Paso_SystemMatrix* Paso_Preconditioner_AMG_buildInterpolationOperatorBlock | ( | Paso_SystemMatrix * | A, |
Paso_SystemMatrix * | P, | ||
Paso_SystemMatrix * | R | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_block_size, col_connector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_MPIInfo_free(), Esys_MPIInfo_getReference(), Esys_noError(), FALSE, Paso_Distribution::first_component, Paso_SystemMatrix::global_id, Paso_Pattern::index, Paso_SystemMatrixPattern::input_distribution, Paso_SparseMatrix::len, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DEFAULT, MEMALLOC, MEMFREE, Paso_SystemMatrix::mpi_info, MPI_INT, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SparseMatrix::numRows, Paso_SharedComponents::offsetInShared, Paso_comparIndex(), Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_Preconditioner_AMG_CopyRemoteData(), Paso_Preconditioner_AMG_extendB(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getTranspose(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), Paso_SystemMatrix::pattern, Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, Paso_SystemMatrix::type, and Paso_SparseMatrix::val.
void Paso_Preconditioner_AMG_CIJPCoarsening | ( | const dim_t | n, |
const dim_t | my_n, | ||
index_t * | split_marker, | ||
const dim_t * | degree_S, | ||
const index_t * | offset_S, | ||
const index_t * | S, | ||
const dim_t * | degree_ST, | ||
const index_t * | offset_ST, | ||
const index_t * | ST, | ||
Paso_Connector * | col_connector, | ||
Paso_Distribution * | col_dist | ||
) |
References Esys_setError(), FALSE, PASO_AMG_IN_C, PASO_AMG_IN_F, Paso_comparIndex(), Paso_Coupler_alloc(), Paso_Coupler_fillOverlap(), Paso_Coupler_free(), Paso_Distribution_createRandomVector(), Paso_Distribution_numPositives(), SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, and TRUE.
Referenced by Paso_Preconditioner_AMG_alloc().
void Paso_Preconditioner_AMG_free | ( | Paso_Preconditioner_AMG * | in | ) |
References Paso_Preconditioner_AMG::A_C, Paso_Preconditioner_AMG::AMG_C, Paso_Preconditioner_AMG::b_C, MEMFREE, Paso_Preconditioner_AMG::merged_solver, Paso_Preconditioner_AMG::P, Paso_MergedSolver_free(), Paso_Preconditioner_AMG_free(), Paso_Preconditioner_Smoother_free(), Paso_SystemMatrix_free(), Paso_Preconditioner_AMG::R, Paso_Preconditioner_AMG::r, Paso_Preconditioner_AMG::Smoother, and Paso_Preconditioner_AMG::x_C.
Referenced by Paso_Preconditioner_AMG_alloc(), Paso_Preconditioner_AMG_free(), and Paso_Preconditioner_AMG_Root_free().
double Paso_Preconditioner_AMG_getCoarseLevelSparsity | ( | const Paso_Preconditioner_AMG * | in | ) |
Paso_SystemMatrix* Paso_Preconditioner_AMG_getProlongation | ( | Paso_SystemMatrix * | A_p, |
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const dim_t | n_C, | ||
index_t * | counter_C, | ||
const index_t | interpolation_method | ||
) |
References Paso_SystemMatrix::col_block_size, col_connector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_checkPtr(), Esys_MPIInfo_getReference(), Esys_noError(), FALSE, Paso_Distribution::first_component, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MEMALLOC, MEMFREE, Paso_SystemMatrix::mpi_info, MPI_INT, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SharedComponents::numSharedComponents, Paso_SharedComponents::offsetInShared, omp_get_max_threads, Paso_SystemMatrixPattern::output_distribution, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_Preconditioner_AMG_setClassicProlongation(), Paso_Preconditioner_AMG_setClassicProlongation_Block(), Paso_Preconditioner_AMG_setDirectProlongation(), Paso_Preconditioner_AMG_setDirectProlongation_Block(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), Paso_Util_cumsum(), Paso_SystemMatrix::pattern, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_SystemMatrix::row_block_size, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, and TMPMEMFREE.
Referenced by Paso_Preconditioner_AMG_alloc().
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_block_size, col_connector, Paso_SystemMatrix::col_coupleBlock, Paso_SystemMatrix::col_coupler, Esys_MPIInfo::comm, Paso_Coupler::connector, Esys_MPIInfo_getReference(), Esys_noError(), FALSE, Paso_Distribution::first_component, Paso_Pattern::index, Paso_SystemMatrixPattern::input_distribution, Paso_SparseMatrix::len, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MEMALLOC, MEMFREE, MPI_DOUBLE, Paso_SystemMatrix::mpi_info, MPI_INT, Esys_MPIInfo::msg_tag_counter, Paso_SharedComponents::neighbor, Paso_SparseMatrix::numCols, Paso_SharedComponents::numNeighbors, Paso_SparseMatrix::numRows, Paso_SharedComponents::offsetInShared, Paso_SystemMatrixPattern::output_distribution, Paso_comparIndex(), Paso_Connector_alloc(), Paso_Connector_free(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getTranspose(), Paso_SystemMatrix_alloc(), Paso_SystemMatrix_free(), Paso_SystemMatrixPattern_alloc(), Paso_SystemMatrixPattern_free(), Paso_SystemMatrix::pattern, Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Esys_MPIInfo::rank, Paso_Connector::recv, Paso_SystemMatrix::row_block_size, Paso_Connector::send, Paso_SharedComponents::shared, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, Paso_SystemMatrix::type, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_alloc().
void Paso_Preconditioner_AMG_mergeSolve | ( | Paso_Preconditioner_AMG * | amg | ) |
Paso_Preconditioner_AMG_Root* Paso_Preconditioner_AMG_Root_alloc | ( | Paso_SystemMatrix * | A, |
Paso_Options * | options | ||
) |
References Paso_Preconditioner_AMG_Root::amg, Paso_Preconditioner_AMG_Root::amgsubstitute, Paso_Preconditioner_AMG_Root::boomeramg, Paso_Options::coarse_level_sparsity, Esys_checkPtr(), Esys_MPIInfo_noError(), Esys_noError(), Paso_Options::interpolation_method, Paso_Preconditioner_AMG_Root::is_local, Paso_Preconditioner_AMG_Root::localamg, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, Paso_Options::num_coarse_unknowns, Paso_Options::num_level, PASO_BOOMERAMG, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, PASO_JACOBI, Paso_Preconditioner_AMG_alloc(), Paso_Preconditioner_AMG_getCoarseLevelSparsity(), Paso_Preconditioner_AMG_getMaxLevel(), Paso_Preconditioner_AMG_getNumCoarseUnknwons(), Paso_Preconditioner_AMG_Root_free(), Paso_Preconditioner_BoomerAMG_alloc(), Paso_Preconditioner_LocalAMG_alloc(), Paso_Preconditioner_LocalAMG_getCoarseLevelSparsity(), Paso_Preconditioner_LocalAMG_getMaxLevel(), Paso_Preconditioner_LocalAMG_getNumCoarseUnknwons(), Paso_Preconditioner_Smoother_alloc(), Paso_Options::post_sweeps, Paso_Options::pre_sweeps, Paso_Options::preconditioner, Esys_MPIInfo::size, Paso_Options::smoother, Paso_Options::sweeps, Paso_Preconditioner_AMG_Root::sweeps, Paso_Options::use_local_preconditioner, and Paso_Options::verbose.
Referenced by Paso_Preconditioner_alloc().
References Paso_Preconditioner_AMG_Root::amg, Paso_Preconditioner_AMG_Root::amgsubstitute, Paso_Preconditioner_AMG_Root::boomeramg, Paso_Preconditioner_AMG_Root::localamg, MEMFREE, Paso_Preconditioner_AMG_free(), Paso_Preconditioner_BoomerAMG_free(), Paso_Preconditioner_LocalAMG_free(), and Paso_Preconditioner_Smoother_free().
Referenced by Paso_Preconditioner_AMG_Root_alloc(), and Paso_Preconditioner_free().
void Paso_Preconditioner_AMG_Root_solve | ( | Paso_SystemMatrix * | A, |
Paso_Preconditioner_AMG_Root * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References Paso_Preconditioner_AMG_Root::amg, Paso_Preconditioner_AMG_Root::amgsubstitute, Paso_Preconditioner_AMG_Root::boomeramg, FALSE, Paso_Preconditioner_AMG_Root::localamg, Paso_SystemMatrix::mainBlock, Paso_Preconditioner_AMG_solve(), Paso_Preconditioner_BoomerAMG_solve(), Paso_Preconditioner_LocalAMG_solve(), Paso_Preconditioner_Smoother_solve(), and Paso_Preconditioner_AMG_Root::sweeps.
Referenced by Paso_Preconditioner_solve().
void Paso_Preconditioner_AMG_setClassicProlongation | ( | Paso_SystemMatrix * | P, |
Paso_SystemMatrix * | A, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
References ABS, Paso_SystemMatrix::col_coupleBlock, Esys_setError(), Paso_Pattern::index, Paso_Pattern::len, Paso_SystemMatrix::mainBlock, MAX, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_coupleBlock, SAMESIGN, Esys_MPIInfo::size, SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_getProlongation().
void Paso_Preconditioner_AMG_setClassicProlongation_Block | ( | Paso_SystemMatrix * | P, |
Paso_SystemMatrix * | A, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
References ABS, Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Esys_setError(), Paso_Pattern::index, Paso_Pattern::len, Paso_SystemMatrix::mainBlock, MAX, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_block_size, Paso_SystemMatrix::row_coupleBlock, SAMESIGN, Esys_MPIInfo::size, SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_getProlongation().
void Paso_Preconditioner_AMG_setDirectProlongation | ( | Paso_SystemMatrix * | P, |
Paso_SystemMatrix * | A, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
void Paso_Preconditioner_AMG_setDirectProlongation_Block | ( | Paso_SystemMatrix * | P, |
Paso_SystemMatrix * | A, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SystemMatrix::row_block_size, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_getProlongation().
void Paso_Preconditioner_AMG_setStrongConnections | ( | Paso_SystemMatrix * | A, |
dim_t * | degree_S, | ||
index_t * | offset_S, | ||
index_t * | S, | ||
const double | theta, | ||
const double | tau | ||
) |
References ABS, Paso_SystemMatrix::col_coupleBlock, Paso_Coupler::connector, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, MAX, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numRows, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_Coupler::recv_buffer, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_alloc().
void Paso_Preconditioner_AMG_setStrongConnections_Block | ( | Paso_SystemMatrix * | A, |
dim_t * | degree_S, | ||
index_t * | offset_S, | ||
index_t * | S, | ||
const double | theta, | ||
const double | tau | ||
) |
References Paso_SystemMatrix::block_size, Paso_SystemMatrix::col_coupleBlock, Paso_Coupler::connector, Paso_Pattern::index, Paso_SystemMatrix::mainBlock, MAX, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numRows, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_Coupler::recv_buffer, Paso_SystemMatrix::remote_coupleBlock, Paso_SystemMatrix::row_coupleBlock, Paso_SystemMatrix::row_coupler, Esys_MPIInfo::size, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_AMG_alloc().
void Paso_Preconditioner_AMG_solve | ( | Paso_SystemMatrix * | A, |
Paso_Preconditioner_AMG * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References Paso_Preconditioner_AMG::A_C, Paso_Preconditioner_AMG::AMG_C, Paso_Preconditioner_AMG::b_C, Esys_timer(), FALSE, Paso_Preconditioner_AMG::level, Paso_SystemMatrix::mainBlock, Paso_Preconditioner_AMG::merged_solver, Paso_SparseMatrix::numRows, Paso_Preconditioner_AMG::P, Paso_Copy(), Paso_MergedSolver_solve(), Paso_Preconditioner_AMG_solve(), Paso_Preconditioner_Smoother_solve(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), Paso_Preconditioner_AMG::post_sweeps, Paso_Preconditioner_AMG::pre_sweeps, Paso_Preconditioner_AMG::R, Paso_Preconditioner_AMG::r, Paso_SparseMatrix::row_block_size, SHOW_TIMING, Paso_Preconditioner_AMG::Smoother, TRUE, and Paso_Preconditioner_AMG::x_C.
Referenced by Paso_Preconditioner_AMG_Root_solve(), and Paso_Preconditioner_AMG_solve().
void Paso_Preconditioner_AMG_transposeStrongConnections | ( | const dim_t | n, |
const dim_t * | degree_S, | ||
const index_t * | offset_S, | ||
const index_t * | S, | ||
const dim_t | nT, | ||
dim_t * | degree_ST, | ||
index_t * | offset_ST, | ||
index_t * | ST | ||
) |
Referenced by Paso_Preconditioner_AMG_alloc().
Paso_Preconditioner_BoomerAMG* Paso_Preconditioner_BoomerAMG_alloc | ( | Paso_SystemMatrix * | A_p, |
Paso_Options * | options | ||
) |
References Paso_Options::coarsening_method, Paso_Options::coarsening_threshold, Paso_SparseMatrix::col_block_size, Paso_SystemMatrix::col_distribution, Esys_MPIInfo::comm, Paso_Options::cycle_type, Paso_Options::diagonal_dominance_threshold, Esys_checkPtr(), Paso_Distribution::first_component, Paso_Options::level_max, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_OFFSET1, MEMALLOC, MEMFREE, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numCols, Paso_SparseMatrix::numRows, PASO_CIJP_COARSENING, PASO_CIJP_FIXED_RANDOM_COARSENING, PASO_FALGOUT_COARSENING, PASO_GS, PASO_HMIS_COARSENING, PASO_JACOBI, PASO_PMIS_COARSENING, PASO_RUGE_STUEBEN_COARSENING, Paso_SystemMatrix_mergeMainAndCouple(), Paso_Preconditioner_BoomerAMG::pt, Esys_MPIInfo::rank, Paso_SparseMatrix::row_block_size, Paso_SystemMatrix::row_distribution, Paso_Options::smoother, Paso_Options::sweeps, Paso_SystemMatrix::type, and Paso_Options::verbose.
Referenced by Paso_Preconditioner_AMG_Root_alloc().
References MEMFREE, and Paso_Preconditioner_BoomerAMG::pt.
Referenced by Paso_Preconditioner_AMG_Root_free().
void Paso_Preconditioner_BoomerAMG_solve | ( | Paso_SystemMatrix * | A, |
Paso_Preconditioner_BoomerAMG * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References Paso_SparseMatrix::col_block_size, Paso_Distribution::first_component, Paso_SystemMatrix::mainBlock, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_OFFSET1, MEMALLOC, MEMFREE, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numRows, Paso_Preconditioner_BoomerAMG::pt, Esys_MPIInfo::rank, Paso_SparseMatrix::row_block_size, Paso_SystemMatrix::row_distribution, and Paso_SystemMatrix::type.
Referenced by Paso_Preconditioner_AMG_Root_solve().
void Paso_Preconditioner_free | ( | Paso_Preconditioner * | ) |
References Paso_Preconditioner::amg, Paso_Preconditioner::gs, Paso_Preconditioner::ilu, Paso_Preconditioner::jacobi, MEMFREE, Paso_Preconditioner_AMG_Root_free(), Paso_Preconditioner_Smoother_free(), Paso_Solver_ILU_free(), Paso_Solver_RILU_free(), and Paso_Preconditioner::rilu.
Referenced by Paso_Preconditioner_alloc(), and Paso_SystemMatrix_freePreconditioner().
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 | ) |
Paso_SparseMatrix* Paso_Preconditioner_LocalAMG_getProlongation | ( | Paso_SparseMatrix * | A_p, |
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const dim_t | n_C, | ||
const index_t * | counter_C, | ||
const index_t | interpolation_method | ||
) |
References Esys_checkPtr(), Esys_noError(), FALSE, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MEMALLOC, MEMFREE, Paso_SparseMatrix::numRows, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, Paso_Pattern_alloc(), Paso_Pattern_free(), Paso_Preconditioner_LocalAMG_setClassicProlongation(), Paso_Preconditioner_LocalAMG_setClassicProlongation_Block(), Paso_Preconditioner_LocalAMG_setDirectProlongation(), Paso_Preconditioner_LocalAMG_setDirectProlongation_Block(), Paso_SparseMatrix_alloc(), Paso_SparseMatrix_free(), Paso_Util_cumsum(), and Paso_SparseMatrix::row_block_size.
Referenced by Paso_Preconditioner_LocalAMG_alloc().
void Paso_Preconditioner_LocalAMG_RungeStuebenSearch | ( | const dim_t | n, |
const index_t * | offset, | ||
const dim_t * | degree, | ||
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_setClassicProlongation | ( | Paso_SparseMatrix * | P_p, |
Paso_SparseMatrix * | A_p, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
References ABS, Esys_setError(), Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_Util_iMax(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, SAMESIGN, SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_LocalAMG_getProlongation().
void Paso_Preconditioner_LocalAMG_setClassicProlongation_Block | ( | Paso_SparseMatrix * | P_p, |
Paso_SparseMatrix * | A_p, | ||
const index_t * | offset_S, | ||
const dim_t * | degree_S, | ||
const index_t * | S, | ||
const index_t * | counter_C | ||
) |
References ABS, Paso_SparseMatrix::block_size, Esys_setError(), Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_Util_iMax(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, SAMESIGN, SYSTEM_ERROR, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_LocalAMG_getProlongation().
void Paso_Preconditioner_LocalAMG_setDirectProlongation | ( | Paso_SparseMatrix * | P_p, |
const Paso_SparseMatrix * | A_p, | ||
const index_t * | counter_C | ||
) |
void Paso_Preconditioner_LocalAMG_setDirectProlongation_Block | ( | Paso_SparseMatrix * | P_p, |
const Paso_SparseMatrix * | A_p, | ||
const index_t * | counter_C | ||
) |
References Paso_SparseMatrix::block_size, Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_comparIndex(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, TMPMEMALLOC, TMPMEMFREE, and Paso_SparseMatrix::val.
Referenced by Paso_Preconditioner_LocalAMG_getProlongation().
void Paso_Preconditioner_LocalAMG_setStrongConnections | ( | Paso_SparseMatrix * | A, |
dim_t * | degree, | ||
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, | ||
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().
Paso_Preconditioner_LocalSmoother* Paso_Preconditioner_LocalSmoother_alloc | ( | Paso_SparseMatrix * | A_p, |
const bool_t | jacobi, | ||
const bool_t | verbose | ||
) |
References Paso_SparseMatrix::block_size, Paso_Preconditioner_LocalSmoother::buffer, Paso_Preconditioner_LocalSmoother::diag, Esys_checkPtr(), Esys_noError(), Esys_timer(), Paso_Preconditioner_LocalSmoother::Jacobi, MEMALLOC, Paso_SparseMatrix::numRows, Paso_Preconditioner_LocalSmoother_free(), Paso_SparseMatrix_invMain(), Paso_Preconditioner_LocalSmoother::pivot, and Paso_SparseMatrix::row_block_size.
Referenced by Paso_MergedSolver_alloc(), Paso_Preconditioner_LocalAMG_alloc(), Paso_Preconditioner_Smoother_alloc(), and Paso_Solver_getAMLI().
References Paso_Preconditioner_LocalSmoother::buffer, Paso_Preconditioner_LocalSmoother::diag, MEMFREE, and Paso_Preconditioner_LocalSmoother::pivot.
Referenced by Paso_Preconditioner_LocalAMG_free(), Paso_Preconditioner_LocalSmoother_alloc(), Paso_Preconditioner_Smoother_free(), Paso_Solver_AMLI_free(), and Paso_SparseMatrix_free().
void Paso_Preconditioner_LocalSmoother_solve | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalSmoother * | gs, | ||
double * | x, | ||
const double * | b, | ||
const dim_t | sweeps, | ||
const bool_t | x_is_initial | ||
) |
References Paso_Preconditioner_LocalSmoother::buffer, Paso_SparseMatrix::numRows, Paso_AXPY, Paso_Copy(), Paso_Preconditioner_LocalSmoother_Sweep(), Paso_SparseMatrix_MatrixVector_CSR_OFFSET0(), and Paso_SparseMatrix::row_block_size.
Referenced by Paso_MergedSolver_solve(), Paso_Preconditioner_LocalAMG_solve(), Paso_Preconditioner_Smoother_solve(), and Paso_Solver_solveAMLI().
void Paso_Preconditioner_LocalSmoother_Sweep | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
References Paso_Preconditioner_LocalSmoother::diag, Paso_Preconditioner_LocalSmoother::Jacobi, Paso_SparseMatrix::numRows, omp_get_max_threads, Paso_BlockOps_solveAll(), Paso_Preconditioner_LocalSmoother_Sweep_colored(), Paso_Preconditioner_LocalSmoother_Sweep_sequential(), Paso_Preconditioner_LocalSmoother::pivot, and Paso_SparseMatrix::row_block_size.
Referenced by Paso_Preconditioner_LocalSmoother_solve(), Paso_Preconditioner_Smoother_solve(), and Paso_Preconditioner_Smoother_solve_byTolerance().
void Paso_Preconditioner_LocalSmoother_Sweep_colored | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
References Paso_SparseMatrix::block_size, Paso_Preconditioner_LocalSmoother::diag, Esys_setError(), Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_BlockOps_Cpy_N, Paso_BlockOps_MV_N, Paso_BlockOps_MViP_2, Paso_BlockOps_MViP_3, Paso_BlockOps_SMV_2, Paso_BlockOps_SMV_3, Paso_BlockOps_SMV_N, Paso_BlockOps_solve_N, Paso_Pattern_borrowColoringPointer(), Paso_Pattern_getNumColors(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Preconditioner_LocalSmoother::pivot, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, TMPMEMALLOC, TMPMEMFREE, Paso_SparseMatrix::val, and ZERO_DIVISION_ERROR.
Referenced by Paso_Preconditioner_LocalSmoother_Sweep().
void Paso_Preconditioner_LocalSmoother_Sweep_sequential | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
References Paso_SparseMatrix::block_size, Paso_Preconditioner_LocalSmoother::diag, Esys_setError(), Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_BlockOps_Cpy_N, Paso_BlockOps_MV_N, Paso_BlockOps_MViP_2, Paso_BlockOps_MViP_3, Paso_BlockOps_SMV_2, Paso_BlockOps_SMV_3, Paso_BlockOps_SMV_N, Paso_BlockOps_solve_N, Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Preconditioner_LocalSmoother::pivot, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, TMPMEMALLOC, TMPMEMFREE, Paso_SparseMatrix::val, and ZERO_DIVISION_ERROR.
Referenced by Paso_Preconditioner_LocalSmoother_Sweep().
void Paso_Preconditioner_LocalSmoother_Sweep_tiled | ( | Paso_SparseMatrix * | A, |
Paso_Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
Paso_Preconditioner_Smoother* Paso_Preconditioner_Smoother_alloc | ( | Paso_SystemMatrix * | A_p, |
const bool_t | jacobi, | ||
const bool_t | is_local, | ||
const bool_t | verbose | ||
) |
References Esys_checkPtr(), Esys_MPIInfo_noError(), Paso_Preconditioner_Smoother::is_local, Paso_Preconditioner_Smoother::localSmoother, Paso_SystemMatrix::mainBlock, MEMALLOC, Paso_SystemMatrix::mpi_info, Paso_Preconditioner_LocalSmoother_alloc(), and Paso_Preconditioner_Smoother_free().
Referenced by Paso_Preconditioner_alloc(), Paso_Preconditioner_AMG_alloc(), and Paso_Preconditioner_AMG_Root_alloc().
void Paso_Preconditioner_Smoother_solve | ( | Paso_SystemMatrix * | A, |
Paso_Preconditioner_Smoother * | gs, | ||
double * | x, | ||
const double * | b, | ||
const dim_t | sweeps, | ||
const bool_t | x_is_initial | ||
) |
References Paso_Preconditioner_LocalSmoother::buffer, Paso_Preconditioner_Smoother::is_local, Paso_Preconditioner_Smoother::localSmoother, Paso_SystemMatrix::mainBlock, Paso_SparseMatrix::numRows, Paso_AXPY, Paso_Copy(), Paso_Preconditioner_LocalSmoother_solve(), Paso_Preconditioner_LocalSmoother_Sweep(), Paso_SystemMatrix_MatrixVector_CSR_OFFSET0(), and Paso_SparseMatrix::row_block_size.
Referenced by Paso_FCT_Solver_updateNL(), Paso_Preconditioner_AMG_Root_solve(), Paso_Preconditioner_AMG_solve(), and Paso_Preconditioner_solve().
err_t Paso_Preconditioner_Smoother_solve_byTolerance | ( | Paso_SystemMatrix * | A, |
Paso_Preconditioner_Smoother * | gs, | ||
double * | x, | ||
const double * | b, | ||
const double | atol, | ||
dim_t * | sweeps, | ||
const bool_t | x_is_initial | ||
) |
References Paso_Preconditioner_LocalSmoother::buffer, Paso_Preconditioner_Smoother::localSmoother, Paso_SystemMatrix::mainBlock, Paso_SystemMatrix::mpi_info, Paso_SparseMatrix::numRows, Paso_AXPY, Paso_Copy(), Paso_lsup(), Paso_Preconditioner_LocalSmoother_Sweep(), Paso_SystemMatrix_MatrixVector(), PRECONDITIONER_MAXITER_REACHED, PRECONDITIONER_NO_ERROR, and Paso_SparseMatrix::row_block_size.
Referenced by Paso_FCT_Solver_update_LCN().
void Paso_Preconditioner_solve | ( | Paso_Preconditioner * | prec, |
Paso_SystemMatrix * | A, | ||
double * | , | ||
double * | |||
) |
References Paso_Preconditioner::amg, FALSE, Paso_Preconditioner::gs, Paso_Preconditioner::ilu, Paso_Preconditioner::jacobi, Paso_SystemMatrix::mainBlock, PASO_AMG, PASO_GS, PASO_ILU0, PASO_JACOBI, Paso_Preconditioner_AMG_Root_solve(), Paso_Preconditioner_Smoother_solve(), PASO_RILU, Paso_Solver_solveILU(), Paso_Solver_solveRILU(), Paso_Preconditioner::rilu, Paso_Preconditioner::sweeps, and Paso_Preconditioner::type.
Referenced by Paso_SystemMatrix_solvePreconditioner().
Paso_Solver_ILU* Paso_Solver_getILU | ( | Paso_SparseMatrix * | A_p, |
bool_t | verbose | ||
) |
References ABS, Esys_checkPtr(), Esys_noError(), Esys_setError(), Esys_timer(), Paso_Solver_ILU::factors, Paso_Pattern::index, Paso_SparseMatrix::len, MEMALLOC, Paso_SparseMatrix::numRows, Paso_Pattern_borrowColoringPointer(), Paso_Pattern_getNumColors(), Paso_Solver_ILU_free(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, Paso_SparseMatrix::row_block_size, Paso_SparseMatrix::val, VALUE_ERROR, and ZERO_DIVISION_ERROR.
Referenced by Paso_Preconditioner_alloc().
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, Esys_checkPtr(), Esys_noError(), Esys_setError(), Esys_timer(), 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_comparIndex(), Paso_Pattern_mis(), Paso_Solver_getRILU(), Paso_Solver_RILU_free(), Paso_Solver_updateIncompleteSchurComplement(), Paso_SparseMatrix_free(), Paso_SparseMatrix_getSubmatrix(), 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_Preconditioner_alloc(), and Paso_Solver_getRILU().
void Paso_Solver_ILU_free | ( | Paso_Solver_ILU * | in | ) |
References Paso_Solver_ILU::factors, and MEMFREE.
Referenced by Paso_Preconditioner_free(), and Paso_Solver_getILU().
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_solveILU | ( | Paso_SparseMatrix * | A, |
Paso_Solver_ILU * | ilu, | ||
double * | x, | ||
const double * | b | ||
) |
References Paso_Solver_ILU::factors, Paso_Pattern::index, Paso_SparseMatrix::numRows, Paso_Pattern_borrowColoringPointer(), Paso_Pattern_getNumColors(), Paso_SparseMatrix_borrowMainDiagonalPointer(), Paso_SparseMatrix::pattern, Paso_Pattern::ptr, and Paso_SparseMatrix::row_block_size.
Referenced by Paso_Preconditioner_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_BlockOps_solveAll(), Paso_Copy(), 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_Preconditioner_solve(), and Paso_Solver_solveRILU().
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_getAMLI(), and Paso_Solver_getRILU().