ESYS13  Revision_
Classes | Defines | Typedefs | Functions
Preconditioner.h File Reference
#include "SystemMatrix.h"
#include "performance.h"
#include "BOOMERAMG.h"
#include "MergedSolver.h"

Go to the source code of this file.

Classes

struct  Paso_Preconditioner_LocalSmoother
struct  Paso_Preconditioner_Smoother
struct  Paso_Preconditioner_AMG
struct  Paso_Preconditioner_LocalAMG
struct  Paso_Preconditioner_BoomerAMG
struct  Paso_Preconditioner_AMG_Root
struct  Paso_Solver_ILU
struct  Paso_Solver_RILU
struct  Paso_Preconditioner

Defines

#define PRECONDITIONER_NO_ERROR   0
#define PRECONDITIONER_MAXITER_REACHED   1
#define PRECONDITIONER_INPUT_ERROR   -1
#define PRECONDITIONER_MEMORY_ERROR   -9
#define PRECONDITIONER_BREAKDOWN   -10
#define PRECONDITIONER_NEGATIVE_NORM_ERROR   -11
#define PRECONDITIONER_DIVERGENCE   -12
#define PASO_AMG_UNDECIDED   -1
#define PASO_AMG_IN_F   0
#define PASO_AMG_IN_C   1

Typedefs

typedef struct
Paso_Preconditioner_LocalSmoother 
Paso_Preconditioner_LocalSmoother
typedef struct
Paso_Preconditioner_Smoother 
Paso_Preconditioner_Smoother
typedef struct
Paso_Preconditioner_AMG 
Paso_Preconditioner_AMG
typedef struct
Paso_Preconditioner_LocalAMG 
Paso_Preconditioner_LocalAMG
typedef struct
Paso_Preconditioner_BoomerAMG 
Paso_Preconditioner_BoomerAMG
typedef struct
Paso_Preconditioner_AMG_Root 
Paso_Preconditioner_AMG_Root
typedef struct Paso_Solver_ILU Paso_Solver_ILU
typedef struct Paso_Solver_RILU Paso_Solver_RILU
typedef struct Paso_Preconditioner Paso_Preconditioner

Functions

void Paso_Preconditioner_Smoother_free (Paso_Preconditioner_Smoother *in)
void Paso_Preconditioner_LocalSmoother_free (Paso_Preconditioner_LocalSmoother *in)
Paso_Preconditioner_SmootherPaso_Preconditioner_Smoother_alloc (Paso_SystemMatrix *A_p, const bool_t jacobi, const bool_t is_local, const bool_t verbose)
Paso_Preconditioner_LocalSmootherPaso_Preconditioner_LocalSmoother_alloc (Paso_SparseMatrix *A_p, const bool_t jacobi, const bool_t verbose)
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)
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)
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)
void Paso_Preconditioner_LocalSmoother_Sweep (Paso_SparseMatrix *A, Paso_Preconditioner_LocalSmoother *gs, double *x)
void Paso_Preconditioner_LocalSmoother_Sweep_sequential (Paso_SparseMatrix *A, Paso_Preconditioner_LocalSmoother *gs, double *x)
void Paso_Preconditioner_LocalSmoother_Sweep_tiled (Paso_SparseMatrix *A, Paso_Preconditioner_LocalSmoother *gs, double *x)
void Paso_Preconditioner_LocalSmoother_Sweep_colored (Paso_SparseMatrix *A, Paso_Preconditioner_LocalSmoother *gs, double *x)
void Paso_Preconditioner_AMG_free (Paso_Preconditioner_AMG *in)
Paso_Preconditioner_AMGPaso_Preconditioner_AMG_alloc (Paso_SystemMatrix *A_p, dim_t level, Paso_Options *options)
void Paso_Preconditioner_AMG_solve (Paso_SystemMatrix *A, Paso_Preconditioner_AMG *amg, double *x, double *b)
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)
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)
Paso_SystemMatrixPaso_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)
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)
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)
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)
double Paso_Preconditioner_AMG_getCoarseLevelSparsity (const Paso_Preconditioner_AMG *in)
dim_t Paso_Preconditioner_AMG_getNumCoarseUnknwons (const Paso_Preconditioner_AMG *in)
index_t Paso_Preconditioner_AMG_getMaxLevel (const Paso_Preconditioner_AMG *in)
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)
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)
Paso_SystemMatrixPaso_Preconditioner_AMG_getRestriction (Paso_SystemMatrix *P)
Paso_SystemMatrixPaso_Preconditioner_AMG_buildInterpolationOperator (Paso_SystemMatrix *A, Paso_SystemMatrix *P, Paso_SystemMatrix *R)
Paso_SystemMatrixPaso_Preconditioner_AMG_buildInterpolationOperatorBlock (Paso_SystemMatrix *A, Paso_SystemMatrix *P, Paso_SystemMatrix *R)
Paso_SparseMatrixPaso_Preconditioner_AMG_mergeSystemMatrix (Paso_SystemMatrix *A)
void Paso_Preconditioner_AMG_mergeSolve (Paso_Preconditioner_AMG *amg)
void Paso_Preconditioner_LocalAMG_free (Paso_Preconditioner_LocalAMG *in)
Paso_Preconditioner_LocalAMGPaso_Preconditioner_LocalAMG_alloc (Paso_SparseMatrix *A_p, dim_t level, Paso_Options *options)
void Paso_Preconditioner_LocalAMG_solve (Paso_SparseMatrix *A, Paso_Preconditioner_LocalAMG *amg, double *x, double *b)
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)
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_setStrongConnections (Paso_SparseMatrix *A, dim_t *degree, index_t *S, const double theta, const double tau)
Paso_SparseMatrixPaso_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)
void Paso_Preconditioner_LocalAMG_setDirectProlongation_Block (Paso_SparseMatrix *P_p, const Paso_SparseMatrix *A_p, const index_t *counter_C)
void Paso_Preconditioner_LocalAMG_setDirectProlongation (Paso_SparseMatrix *P_p, const Paso_SparseMatrix *A_p, const index_t *counter_C)
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)
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)
index_t Paso_Preconditioner_LocalAMG_getMaxLevel (const Paso_Preconditioner_LocalAMG *in)
double Paso_Preconditioner_LocalAMG_getCoarseLevelSparsity (const Paso_Preconditioner_LocalAMG *in)
dim_t Paso_Preconditioner_LocalAMG_getNumCoarseUnknwons (const Paso_Preconditioner_LocalAMG *in)
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)
void Paso_Preconditioner_BoomerAMG_free (Paso_Preconditioner_BoomerAMG *in)
Paso_Preconditioner_BoomerAMGPaso_Preconditioner_BoomerAMG_alloc (Paso_SystemMatrix *A_p, Paso_Options *options)
void Paso_Preconditioner_BoomerAMG_solve (Paso_SystemMatrix *A, Paso_Preconditioner_BoomerAMG *amg, double *x, double *b)
Paso_Preconditioner_AMG_RootPaso_Preconditioner_AMG_Root_alloc (Paso_SystemMatrix *A, Paso_Options *options)
void Paso_Preconditioner_AMG_Root_free (Paso_Preconditioner_AMG_Root *in)
void Paso_Preconditioner_AMG_Root_solve (Paso_SystemMatrix *A, Paso_Preconditioner_AMG_Root *amg, double *x, double *b)
void Paso_Preconditioner_free (Paso_Preconditioner *)
Paso_PreconditionerPaso_Preconditioner_alloc (Paso_SystemMatrix *A, Paso_Options *options)
void Paso_Preconditioner_solve (Paso_Preconditioner *prec, Paso_SystemMatrix *A, double *, double *)
void Paso_Solver_ILU_free (Paso_Solver_ILU *in)
Paso_Solver_ILUPaso_Solver_getILU (Paso_SparseMatrix *A_p, bool_t verbose)
void Paso_Solver_solveILU (Paso_SparseMatrix *A, Paso_Solver_ILU *ilu, double *x, const double *b)
void Paso_Solver_RILU_free (Paso_Solver_RILU *in)
Paso_Solver_RILUPaso_Solver_getRILU (Paso_SparseMatrix *A_p, bool_t verbose)
void Paso_Solver_solveRILU (Paso_Solver_RILU *rilu, double *x, double *b)
void Paso_Solver_updateIncompleteSchurComplement (Paso_SparseMatrix *A_CC, Paso_SparseMatrix *A_CF, double *invA_FF, index_t *A_FF_pivot, Paso_SparseMatrix *A_FC)

Define Documentation

#define PASO_AMG_IN_C   1
#define PASO_AMG_IN_F   0
#define PASO_AMG_UNDECIDED   -1
#define PRECONDITIONER_BREAKDOWN   -10
#define PRECONDITIONER_DIVERGENCE   -12
#define PRECONDITIONER_INPUT_ERROR   -1
#define PRECONDITIONER_MEMORY_ERROR   -9
#define PRECONDITIONER_NO_ERROR   0

Typedef Documentation


Function Documentation

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().

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().

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 
)
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_Root_solve ( Paso_SystemMatrix A,
Paso_Preconditioner_AMG_Root amg,
double *  x,
double *  b 
)
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 
)
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 
)
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 
)
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 
)
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 
)
void Paso_Preconditioner_AMG_solve ( Paso_SystemMatrix A,
Paso_Preconditioner_AMG amg,
double *  x,
double *  b 
)
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 
)
void Paso_Preconditioner_BoomerAMG_solve ( Paso_SystemMatrix A,
Paso_Preconditioner_BoomerAMG amg,
double *  x,
double *  b 
)

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 
)
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 
)
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 
)
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 
)
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 
)
void Paso_Preconditioner_LocalAMG_setStrongConnections ( Paso_SparseMatrix A,
dim_t degree,
index_t S,
const double  theta,
const double  tau 
)
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 
)
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 
)
Paso_Preconditioner_Smoother* Paso_Preconditioner_Smoother_alloc ( Paso_SystemMatrix A_p,
const bool_t  jacobi,
const bool_t  is_local,
const bool_t  verbose 
)
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 
)
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 
)
void Paso_Preconditioner_solve ( Paso_Preconditioner prec,
Paso_SystemMatrix A,
double *  ,
double *   
)
void Paso_Solver_solveILU ( Paso_SparseMatrix A,
Paso_Solver_ILU ilu,
double *  x,
const double *  b 
)
void Paso_Solver_solveRILU ( Paso_Solver_RILU rilu,
double *  x,
double *  b 
)
void Paso_Solver_updateIncompleteSchurComplement ( Paso_SparseMatrix A_CC,
Paso_SparseMatrix A_CF,
double *  invA_FF,
index_t A_FF_pivot,
Paso_SparseMatrix A_FC 
)