ESYS13
Revision_
|
#include "Paso.h"
#include "Preconditioner.h"
#include "PasoUtil.h"
#include "BlockOps.h"
#include <stdio.h>
Paso_Preconditioner_LocalSmoother* Paso_Preconditioner_LocalSmoother_alloc | ( | Paso_SparseMatrix * | A_p, |
const bool_t | jacobi, | ||
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_p, |
Paso_Preconditioner_LocalSmoother * | smoother, | ||
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 * | smoother, | ||
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_p, |
Paso_Preconditioner_LocalSmoother * | smoother, | ||
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_p, |
Paso_Preconditioner_LocalSmoother * | smoother, | ||
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().
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_p, |
Paso_Preconditioner_Smoother * | smoother, | ||
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_p, |
Paso_Preconditioner_Smoother * | smoother, | ||
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().