Classes |
struct | paso::Preconditioner |
struct | paso::Preconditioner_LocalSmoother |
struct | paso::Preconditioner_Smoother |
struct | paso::Preconditioner_AMG |
| Local preconditioner. More...
|
struct | paso::Preconditioner_LocalAMG |
| Local AMG preconditioner. More...
|
struct | paso::Preconditioner_AMG_Root |
struct | paso::Solver_ILU |
| ILU preconditioner. More...
|
struct | paso::Solver_RILU |
| RILU preconditioner. More...
|
Namespaces |
namespace | paso |
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 |
Typedefs |
typedef boost::shared_ptr
< Preconditioner > | paso::Preconditioner_ptr |
typedef boost::shared_ptr
< const Preconditioner > | paso::const_Preconditioner_ptr |
Enumerations |
enum | paso::AMGBlockSelect { paso::PASO_AMG_UNDECIDED = -1,
paso::PASO_AMG_IN_F = 0,
paso::PASO_AMG_IN_C = 1
} |
Functions |
void | paso::Preconditioner_free (Preconditioner *in) |
Preconditioner * | paso::Preconditioner_alloc (SystemMatrix_ptr A, Options *options) |
void | paso::Preconditioner_solve (Preconditioner *prec, SystemMatrix_ptr A, double *x, double *b) |
void | paso::Preconditioner_Smoother_free (Preconditioner_Smoother *in) |
void | paso::Preconditioner_LocalSmoother_free (Preconditioner_LocalSmoother *in) |
Preconditioner_Smoother * | paso::Preconditioner_Smoother_alloc (SystemMatrix_ptr A, bool jacobi, bool is_local, bool verbose) |
| constructs the symmetric Gauss-Seidel preconditioner
|
Preconditioner_LocalSmoother * | paso::Preconditioner_LocalSmoother_alloc (SparseMatrix_ptr A, bool jacobi, bool verbose) |
void | paso::Preconditioner_Smoother_solve (SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial) |
void | paso::Preconditioner_LocalSmoother_solve (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x, const double *b, dim_t sweeps, bool x_is_initial) |
err_t | paso::Preconditioner_Smoother_solve_byTolerance (SystemMatrix_ptr A, Preconditioner_Smoother *gs, double *x, const double *b, double atol, dim_t *sweeps, bool x_is_initial) |
void | paso::Preconditioner_LocalSmoother_Sweep (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x) |
void | paso::Preconditioner_LocalSmoother_Sweep_sequential (SparseMatrix_ptr A, Preconditioner_LocalSmoother *smoother, double *x) |
| inplace Gauss-Seidel sweep in sequential mode
|
void | paso::Preconditioner_LocalSmoother_Sweep_tiled (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x) |
void | paso::Preconditioner_LocalSmoother_Sweep_colored (SparseMatrix_ptr A, Preconditioner_LocalSmoother *gs, double *x) |
void | paso::Preconditioner_AMG_free (Preconditioner_AMG *in) |
Preconditioner_AMG * | paso::Preconditioner_AMG_alloc (SystemMatrix_ptr A, dim_t level, Options *options) |
void | paso::Preconditioner_AMG_solve (SystemMatrix_ptr A, Preconditioner_AMG *amg, double *x, double *b) |
void | paso::Preconditioner_AMG_setStrongConnections (SystemMatrix_ptr A, dim_t *degree_S, index_t *offset_S, index_t *S, double theta, double tau) |
void | paso::Preconditioner_AMG_setStrongConnections_Block (SystemMatrix_ptr A, dim_t *degree_S, index_t *offset_S, index_t *S, double theta, double tau) |
SystemMatrix_ptr | paso::Preconditioner_AMG_getProlongation (SystemMatrix_ptr 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 (SystemMatrix_ptr P, SystemMatrix_ptr 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 (SystemMatrix_ptr P, SystemMatrix_ptr 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 (SystemMatrix_ptr P, SystemMatrix_ptr 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 (SystemMatrix_ptr P, SystemMatrix_ptr 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 Preconditioner_AMG *in) |
dim_t | paso::Preconditioner_AMG_getNumCoarseUnknowns (const Preconditioner_AMG *in) |
index_t | paso::Preconditioner_AMG_getMaxLevel (const Preconditioner_AMG *in) |
void | paso::Preconditioner_AMG_transposeStrongConnections (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 (dim_t n, dim_t my_n, AMGBlockSelect *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, Connector_ptr col_connector, const_Distribution_ptr col_dist) |
SystemMatrix_ptr | paso::Preconditioner_AMG_getRestriction (SystemMatrix_ptr P) |
SystemMatrix_ptr | paso::Preconditioner_AMG_buildInterpolationOperator (SystemMatrix_ptr A, SystemMatrix_ptr P, SystemMatrix_ptr R) |
SystemMatrix_ptr | paso::Preconditioner_AMG_buildInterpolationOperatorBlock (SystemMatrix_ptr A, SystemMatrix_ptr P, SystemMatrix_ptr R) |
SparseMatrix_ptr | paso::Preconditioner_AMG_mergeSystemMatrix (SystemMatrix_ptr A) |
void | paso::Preconditioner_AMG_mergeSolve (Preconditioner_AMG *amg) |
void | paso::Preconditioner_LocalAMG_free (Preconditioner_LocalAMG *in) |
Preconditioner_LocalAMG * | paso::Preconditioner_LocalAMG_alloc (SparseMatrix_ptr A_p, dim_t level, Options *options) |
void | paso::Preconditioner_LocalAMG_solve (SparseMatrix_ptr A, Preconditioner_LocalAMG *amg, double *x, double *b) |
void | paso::Preconditioner_LocalAMG_RungeStuebenSearch (dim_t n, const index_t *offset_S, const dim_t *degree_S, const index_t *S, AMGBlockSelect *split_marker, bool usePanel) |
void | paso::Preconditioner_LocalAMG_setStrongConnections_Block (SparseMatrix_ptr A, dim_t *degree_S, index_t *S, double theta, double tau) |
void | paso::Preconditioner_LocalAMG_setStrongConnections (SparseMatrix_ptr A, dim_t *degree_S, index_t *S, const double theta, const double tau) |
SparseMatrix_ptr | paso::Preconditioner_LocalAMG_getProlongation (SparseMatrix_ptr A_p, const index_t *offset_S, const dim_t *degree_S, const index_t *S, dim_t n_C, const index_t *counter_C, index_t interpolation_method) |
void | paso::Preconditioner_LocalAMG_setDirectProlongation_Block (SparseMatrix_ptr P_p, const_SparseMatrix_ptr A_p, const index_t *counter_C) |
void | paso::Preconditioner_LocalAMG_setDirectProlongation (SparseMatrix_ptr P_p, const_SparseMatrix_ptr A_p, const index_t *counter_C) |
void | paso::Preconditioner_LocalAMG_setClassicProlongation (SparseMatrix_ptr P_p, SparseMatrix_ptr 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 (SparseMatrix_ptr P_p, SparseMatrix_ptr 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 Preconditioner_LocalAMG *in) |
double | paso::Preconditioner_LocalAMG_getCoarseLevelSparsity (const Preconditioner_LocalAMG *in) |
dim_t | paso::Preconditioner_LocalAMG_getNumCoarseUnknowns (const Preconditioner_LocalAMG *in) |
void | paso::Preconditioner_LocalAMG_enforceFFConnectivity (dim_t n, const index_t *offset_S, const dim_t *degree_S, const index_t *S, AMGBlockSelect *split_marker) |
| ensures that two F nodes are connected via a C node
|
Preconditioner_AMG_Root * | paso::Preconditioner_AMG_Root_alloc (SystemMatrix_ptr A, Options *options) |
void | paso::Preconditioner_AMG_Root_free (Preconditioner_AMG_Root *in) |
void | paso::Preconditioner_AMG_Root_solve (SystemMatrix_ptr A, Preconditioner_AMG_Root *prec, double *x, double *b) |
void | paso::Solver_ILU_free (Solver_ILU *in) |
Solver_ILU * | paso::Solver_getILU (SparseMatrix_ptr A, bool verbose) |
| constructs the incomplete block factorization
|
void | paso::Solver_solveILU (SparseMatrix_ptr A, Solver_ILU *ilu, double *x, const double *b) |
void | paso::Solver_RILU_free (Solver_RILU *in) |
Solver_RILU * | paso::Solver_getRILU (SparseMatrix_ptr A, bool verbose) |
void | paso::Solver_solveRILU (Solver_RILU *rilu, double *x, double *b) |
void | paso::Solver_updateIncompleteSchurComplement (SparseMatrix_ptr A_CC, SparseMatrix_ptr A_CF, double *invA_FF, index_t *A_FF_pivot, SparseMatrix_ptr A_FC) |