escript
Revision_
|
Namespaces | |
util | |
Classes | |
struct | Connector |
struct | Coupler |
struct | DegreeAndIdx |
struct | Distribution |
describes the distribution of a vector stored on the local process More... | |
struct | FCT_FluxLimiter |
struct | FCT_Solver |
struct | Function |
struct | LinearSystem |
struct | MergedSolver |
struct | Options |
class | PasoException |
PasoException exception class. More... | |
struct | Pattern |
struct | Performance |
struct | Preconditioner |
struct | Preconditioner_AMG |
Local preconditioner. More... | |
struct | Preconditioner_AMG_Root |
struct | Preconditioner_BoomerAMG |
struct | Preconditioner_LocalAMG |
Local AMG preconditioner. More... | |
struct | Preconditioner_LocalSmoother |
struct | Preconditioner_Smoother |
struct | ReactiveSolver |
struct | SharedComponents |
struct | Solver_ILU |
ILU preconditioner. More... | |
struct | Solver_RILU |
RILU preconditioner. More... | |
struct | SparseMatrix |
struct | SystemMatrix |
class | SystemMatrixAdapter |
struct | SystemMatrixPattern |
struct | TransportProblem |
class | TransportProblemAdapter |
struct | UMFPACK_Handler |
Typedefs | |
typedef boost::shared_ptr< Connector > | Connector_ptr |
typedef boost::shared_ptr< const Connector > | const_Connector_ptr |
typedef boost::shared_ptr< Coupler > | Coupler_ptr |
typedef boost::shared_ptr< const Coupler > | const_Coupler_ptr |
typedef boost::shared_ptr< Distribution > | Distribution_ptr |
typedef boost::shared_ptr< const Distribution > | const_Distribution_ptr |
typedef boost::shared_ptr< Pattern > | Pattern_ptr |
typedef boost::shared_ptr< const Pattern > | const_Pattern_ptr |
typedef boost::shared_ptr< Preconditioner > | Preconditioner_ptr |
typedef boost::shared_ptr< const Preconditioner > | const_Preconditioner_ptr |
typedef boost::shared_ptr< SharedComponents > | SharedComponents_ptr |
typedef boost::shared_ptr< const SharedComponents > | const_SharedComponents_ptr |
typedef boost::shared_ptr< SparseMatrix > | SparseMatrix_ptr |
typedef boost::shared_ptr< const SparseMatrix > | const_SparseMatrix_ptr |
typedef int | SparseMatrixType |
typedef boost::shared_ptr< SystemMatrix > | SystemMatrix_ptr |
typedef boost::shared_ptr< const SystemMatrix > | const_SystemMatrix_ptr |
typedef int | SystemMatrixType |
typedef boost::shared_ptr< SystemMatrixPattern > | SystemMatrixPattern_ptr |
typedef boost::shared_ptr< const SystemMatrixPattern > | const_SystemMatrixPattern_ptr |
typedef boost::shared_ptr< TransportProblem > | TransportProblem_ptr |
typedef boost::shared_ptr< const TransportProblem > | const_TransportProblem_ptr |
Enumerations | |
enum | AMGBlockSelect { PASO_AMG_UNDECIDED =-1, PASO_AMG_IN_F =0, PASO_AMG_IN_C =1 } |
Variables | |
static double | Pattern_mis_seed =.4142135623730951 |
static dim_t | M |
static dim_t | N |
static dim_t | nz |
static int | M |
static int | N |
static int | nz |
typedef boost::shared_ptr<Connector> paso::Connector_ptr |
typedef boost::shared_ptr<const Connector> paso::const_Connector_ptr |
typedef boost::shared_ptr<const Coupler> paso::const_Coupler_ptr |
typedef boost::shared_ptr<const Distribution> paso::const_Distribution_ptr |
typedef boost::shared_ptr<const Pattern> paso::const_Pattern_ptr |
typedef boost::shared_ptr<const Preconditioner> paso::const_Preconditioner_ptr |
typedef boost::shared_ptr<const SharedComponents> paso::const_SharedComponents_ptr |
typedef boost::shared_ptr<const SparseMatrix> paso::const_SparseMatrix_ptr |
typedef boost::shared_ptr<const SystemMatrix> paso::const_SystemMatrix_ptr |
typedef boost::shared_ptr<const SystemMatrixPattern> paso::const_SystemMatrixPattern_ptr |
typedef boost::shared_ptr<const TransportProblem> paso::const_TransportProblem_ptr |
typedef boost::shared_ptr<Coupler> paso::Coupler_ptr |
typedef boost::shared_ptr<Distribution> paso::Distribution_ptr |
typedef boost::shared_ptr<Pattern> paso::Pattern_ptr |
typedef boost::shared_ptr<Preconditioner> paso::Preconditioner_ptr |
typedef boost::shared_ptr<SharedComponents> paso::SharedComponents_ptr |
typedef boost::shared_ptr<SparseMatrix> paso::SparseMatrix_ptr |
typedef int paso::SparseMatrixType |
typedef boost::shared_ptr<SystemMatrix> paso::SystemMatrix_ptr |
typedef boost::shared_ptr<SystemMatrixPattern> paso::SystemMatrixPattern_ptr |
typedef int paso::SystemMatrixType |
typedef boost::shared_ptr<TransportProblem> paso::TransportProblem_ptr |
enum paso::AMGBlockSelect |
|
inline |
|
inline |
Referenced by paso::SparseMatrix::invMain().
|
inline |
Referenced by paso::SparseMatrix::invMain().
LU factorization of NxN matrix mat with partial pivoting.
References PASO_MISSING_CLAPACK.
Referenced by paso::SparseMatrix::invMain().
|
inline |
References PASO_MISSING_CLAPACK.
Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
inplace matrix vector product - order 2
Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
inplace matrix vector product - order 3
Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
performs operation R=R-mat*V (V and R are not overlapping) - 2x2
Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
performs operation R=R-mat*V (V and R are not overlapping) - 3x3
Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
performs operation R=R-mat*V (V and R are not overlapping) - NxN
References PASO_MISSING_CLAPACK.
Referenced by Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
solves system of linear equations A*X=B
References PASO_MISSING_CLAPACK.
Referenced by BlockOps_solveAll(), Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
|
inline |
References BlockOps_MViP_2(), BlockOps_MViP_3(), BlockOps_solve_N(), Esys_setError(), and ZERO_DIVISION_ERROR.
Referenced by paso::SparseMatrix::applyBlockMatrix(), Preconditioner_LocalSmoother_Sweep(), and Solver_solveRILU().
|
static |
Referenced by generate_HB().
void paso::checkPasoError | ( | ) |
References Esys_getErrorMessage(), Esys_noError(), Esys_resetError(), and paso::PasoException::PasoException().
Referenced by paso::TransportProblemAdapter::copyConstraint(), paso::TransportProblemAdapter::getSafeTimeStepSize(), paso::SystemMatrixAdapter::getSystemMatrixTypeId(), ripley::RipleyDomain::newTransportProblem(), paso::SystemMatrixAdapter::nullifyRowsAndCols(), paso::TransportProblemAdapter::resetTransport(), paso::SystemMatrixAdapter::resetValues(), paso::SystemMatrixAdapter::saveHB(), paso::SystemMatrixAdapter::saveMM(), paso::TransportProblemAdapter::setToSolution(), paso::SystemMatrixAdapter::setToSolution(), and paso::SystemMatrixAdapter::ypAx().
int paso::comparDegreeAndIdx | ( | const void * | arg1, |
const void * | arg2 | ||
) |
References paso::DegreeAndIdx::deg, and paso::DegreeAndIdx::idx.
Referenced by paso::Pattern::reduceBandwidth().
bool paso::dropTree | ( | index_t | root, |
const Pattern * | pattern, | ||
index_t * | AssignedLevel, | ||
index_t * | VerticesInTree, | ||
dim_t * | numLevels, | ||
index_t * | firstVertexInLevel, | ||
dim_t | max_LevelWidth_abort, | ||
dim_t | N | ||
) |
References paso::Pattern::index, paso::Pattern::numInput, and paso::Pattern::ptr.
Referenced by paso::Pattern::reduceBandwidth().
|
static |
Referenced by generate_HB().
|
static |
References calc_digits(), fmt_str(), and print_data().
Referenced by paso::SparseMatrix::saveHB_CSC().
void paso::MKL_free | ( | SparseMatrix * | A | ) |
References ES_MKL_INT, ES_PARDISO, Esys_setError(), MKL_ERROR_NO, MKL_MTYPE_REAL_UNSYM, MKL_PHASE_RELEASE_MEMORY, paso::SparseMatrix::numRows, PASO_MKL, paso::SparseMatrix::pattern, paso::SparseMatrix::solver_p, paso::SparseMatrix::solver_package, SYSTEM_ERROR, and paso::SparseMatrix::val.
Referenced by MKL_solve(), solve_free(), and paso::SparseMatrix::~SparseMatrix().
void paso::MKL_solve | ( | SparseMatrix_ptr | A, |
double * | out, | ||
double * | in, | ||
index_t | reordering, | ||
dim_t | numRefinements, | ||
bool | verbose | ||
) |
References ES_MKL_INT, ES_PARDISO, Esys_noError(), Esys_setError(), Esys_timer(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_OFFSET1, MKL_ERROR_NO, MKL_free(), MKL_MTYPE_REAL_UNSYM, MKL_PHASE_FACTORIZATION, MKL_PHASE_SOLVE, MKL_PHASE_SYMBOLIC_FACTORIZATION, MKL_REORDERING_MINIMUM_DEGREE, MKL_REORDERING_NESTED_DISSECTION, MKL_REORDERING_NESTED_DISSECTION_OMP, omp_get_max_threads, PASO_MINIMUM_FILL_IN, PASO_MKL, SYSTEM_ERROR, TYPE_ERROR, VALUE_ERROR, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_LocalAMG_solve(), solve(), and paso::MergedSolver::solve().
void paso::Performance_close | ( | Performance * | pp, |
int | verbose | ||
) |
shuts down the monitoring process
References Esys_noError(), PERFORMANCE_ALL, PERFORMANCE_ASSEMBLAGE, PERFORMANCE_CLOSED, Performance_getEventIndex(), PERFORMANCE_MVM, PERFORMANCE_NUM_EVENTS, PERFORMANCE_NUM_MONITORS, PERFORMANCE_PRECONDITIONER, PERFORMANCE_PRECONDITIONER_INIT, PERFORMANCE_SOLVER, PERFORMANCE_UNMONITORED_EVENT, and PERFORMANCE_UNUSED.
Referenced by solve().
int paso::Performance_getEventIndex | ( | Performance * | pp, |
int | event_id | ||
) |
find the index of an event in the list of monitored events
References PERFORMANCE_UNMONITORED_EVENT.
Referenced by Performance_close().
void paso::Performance_open | ( | Performance * | pp, |
int | verbose | ||
) |
sets up the monitoring process
References Esys_noError(), Esys_setError(), PERFORMANCE_NUM_EVENTS, PERFORMANCE_NUM_MONITORS, PERFORMANCE_UNUSED, and SYSTEM_ERROR.
Referenced by solve().
void paso::Performance_startMonitor | ( | Performance * | pp, |
int | monitor | ||
) |
switches on a monitor
References PERFORMANCE_NUM_EVENTS, and PERFORMANCE_OPENED.
Referenced by paso::FCT_Solver::initialize(), solve(), Solver(), Solver_PCG(), and Solver_TFQMR().
void paso::Performance_stopMonitor | ( | Performance * | pp, |
int | monitor | ||
) |
switches off a monitor
References PERFORMANCE_CLOSED, and PERFORMANCE_NUM_EVENTS.
Referenced by paso::FCT_Solver::initialize(), solve(), Solver(), Solver_PCG(), and Solver_TFQMR().
Preconditioner * paso::Preconditioner_alloc | ( | SystemMatrix_ptr | A, |
Options * | options | ||
) |
References paso::Preconditioner::amg, esysUtils::Esys_MPIInfo_noError(), Esys_noError(), paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, PASO_AMG, PASO_AMLI, PASO_BOOMERAMG, PASO_GS, PASO_ILU0, PASO_JACOBI, PASO_NO_PRECONDITIONER, PASO_RILU, paso::Options::preconditioner, Preconditioner_AMG_Root_alloc(), Preconditioner_free(), Preconditioner_Smoother_alloc(), paso::Preconditioner::rilu, Solver_getILU(), Solver_getRILU(), paso::Preconditioner::sweeps, paso::Options::sweeps, paso::Preconditioner::type, UNKNOWN, paso::Options::use_local_preconditioner, and paso::Options::verbose.
Referenced by paso::SystemMatrix::setPreconditioner().
Preconditioner_AMG * paso::Preconditioner_AMG_alloc | ( | SystemMatrix_ptr | A, |
int | level, | ||
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::util::cumsum_maskedFalse(), paso::util::cumsum_maskedTrue(), paso::Options::diagonal_dominance_threshold, Esys_noError(), Esys_timer(), paso::Options::interpolation_method, paso::Preconditioner_AMG::level, paso::Options::level_max, paso::Preconditioner_AMG::merged_solver, paso::Options::min_coarse_matrix_size, paso::Options::min_coarse_sparsity, MPI_INT, paso::Preconditioner_AMG::P, PASO_AMG_IN_C, PASO_AMG_IN_F, PASO_JACOBI, paso::Options::post_sweeps, paso::Preconditioner_AMG::post_sweeps, paso::Options::pre_sweeps, paso::Preconditioner_AMG::pre_sweeps, Preconditioner_AMG_buildInterpolationOperator(), Preconditioner_AMG_CIJPCoarsening(), Preconditioner_AMG_free(), Preconditioner_AMG_getProlongation(), Preconditioner_AMG_getRestriction(), Preconditioner_AMG_setStrongConnections(), Preconditioner_AMG_setStrongConnections_Block(), Preconditioner_AMG_transposeStrongConnections(), Preconditioner_Smoother_alloc(), paso::Preconditioner_AMG::R, paso::Preconditioner_AMG::r, S, SHOW_TIMING, paso::Preconditioner_AMG::Smoother, paso::Options::smoother, paso::Options::verbose, and paso::Preconditioner_AMG::x_C.
Referenced by Preconditioner_AMG_Root_alloc().
SystemMatrix_ptr paso::Preconditioner_AMG_buildInterpolationOperator | ( | SystemMatrix_ptr | A, |
SystemMatrix_ptr | P, | ||
SystemMatrix_ptr | R | ||
) |
References paso::util::comparIndex(), ESYS_MPI_INC_COUNTER, Esys_noError(), MATRIX_FORMAT_DEFAULT, MPI_INT, Preconditioner_AMG_CopyRemoteData(), and Preconditioner_AMG_extendB().
Referenced by Preconditioner_AMG_alloc().
SystemMatrix_ptr paso::Preconditioner_AMG_buildInterpolationOperatorBlock | ( | SystemMatrix_ptr | A, |
SystemMatrix_ptr | P, | ||
SystemMatrix_ptr | R | ||
) |
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, | ||
const_Connector_ptr | col_connector, | ||
const_Distribution_ptr | col_dist | ||
) |
References paso::util::comparIndex(), Esys_setError(), PASO_AMG_IN_C, PASO_AMG_IN_F, and SYSTEM_ERROR.
Referenced by Preconditioner_AMG_alloc().
void paso::Preconditioner_AMG_CopyRemoteData | ( | SystemMatrix_ptr | P, |
index_t ** | p_ptr, | ||
index_t ** | p_idx, | ||
double ** | p_val, | ||
index_t * | global_id, | ||
index_t | block_size | ||
) |
References paso::util::cumsum(), ESYS_MPI_INC_COUNTER, MPI_DOUBLE, and MPI_INT.
Referenced by Preconditioner_AMG_buildInterpolationOperator(), and Preconditioner_AMG_buildInterpolationOperatorBlock().
void paso::Preconditioner_AMG_extendB | ( | SystemMatrix_ptr | A, |
SystemMatrix_ptr | B | ||
) |
References ESYS_MPI_INC_COUNTER, Esys_setError(), MPI_DOUBLE, MPI_INT, and VALUE_ERROR.
Referenced by Preconditioner_AMG_buildInterpolationOperator(), and Preconditioner_AMG_buildInterpolationOperatorBlock().
void paso::Preconditioner_AMG_free | ( | Preconditioner_AMG * | in | ) |
References paso::Preconditioner_AMG::AMG_C, paso::Preconditioner_AMG::b_C, paso::Preconditioner_AMG::merged_solver, Preconditioner_Smoother_free(), paso::Preconditioner_AMG::r, paso::Preconditioner_AMG::Smoother, and paso::Preconditioner_AMG::x_C.
Referenced by Preconditioner_AMG_alloc(), and Preconditioner_AMG_Root_free().
double paso::Preconditioner_AMG_getCoarseLevelSparsity | ( | const Preconditioner_AMG * | in | ) |
References paso::Preconditioner_AMG::A_C, and paso::Preconditioner_AMG::AMG_C.
Referenced by Preconditioner_AMG_Root_alloc().
int paso::Preconditioner_AMG_getMaxLevel | ( | const Preconditioner_AMG * | in | ) |
References paso::Preconditioner_AMG::AMG_C, and paso::Preconditioner_AMG::level.
Referenced by Preconditioner_AMG_Root_alloc().
dim_t paso::Preconditioner_AMG_getNumCoarseUnknowns | ( | const Preconditioner_AMG * | in | ) |
References paso::Preconditioner_AMG::A_C, and paso::Preconditioner_AMG::AMG_C.
Referenced by Preconditioner_AMG_Root_alloc().
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 | ||
) |
References paso::util::cumsum(), ESYS_MPI_INC_COUNTER, Esys_noError(), MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MPI_INT, omp_get_max_threads, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, Preconditioner_AMG_setClassicProlongation(), Preconditioner_AMG_setClassicProlongation_Block(), Preconditioner_AMG_setDirectProlongation(), and Preconditioner_AMG_setDirectProlongation_Block().
Referenced by Preconditioner_AMG_alloc().
SystemMatrix_ptr paso::Preconditioner_AMG_getRestriction | ( | SystemMatrix_ptr | P | ) |
References paso::util::comparIndex(), ESYS_MPI_INC_COUNTER, Esys_noError(), MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, MPI_DOUBLE, and MPI_INT.
Referenced by Preconditioner_AMG_alloc().
void paso::Preconditioner_AMG_mergeSolve | ( | Preconditioner_AMG * | amg | ) |
SparseMatrix_ptr paso::Preconditioner_AMG_mergeSystemMatrix | ( | SystemMatrix_ptr | A | ) |
Preconditioner_AMG_Root * paso::Preconditioner_AMG_Root_alloc | ( | SystemMatrix_ptr | A, |
Options * | options | ||
) |
References paso::Preconditioner_AMG_Root::amg, paso::Preconditioner_AMG_Root::amgsubstitute, paso::Preconditioner_AMG_Root::boomeramg, paso::Options::coarse_level_sparsity, esysUtils::Esys_MPIInfo_noError(), Esys_noError(), paso::Options::interpolation_method, paso::Preconditioner_AMG_Root::is_local, paso::Preconditioner_AMG_Root::localamg, paso::Options::num_coarse_unknowns, paso::Options::num_level, PASO_BOOMERAMG, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, PASO_JACOBI, paso::Options::post_sweeps, paso::Options::pre_sweeps, paso::Options::preconditioner, Preconditioner_AMG_alloc(), Preconditioner_AMG_getCoarseLevelSparsity(), Preconditioner_AMG_getMaxLevel(), Preconditioner_AMG_getNumCoarseUnknowns(), Preconditioner_AMG_Root_free(), Preconditioner_BoomerAMG_alloc(), Preconditioner_LocalAMG_alloc(), Preconditioner_LocalAMG_getCoarseLevelSparsity(), Preconditioner_LocalAMG_getMaxLevel(), Preconditioner_LocalAMG_getNumCoarseUnknowns(), Preconditioner_Smoother_alloc(), paso::Options::smoother, paso::Options::sweeps, paso::Preconditioner_AMG_Root::sweeps, paso::Options::use_local_preconditioner, and paso::Options::verbose.
Referenced by Preconditioner_alloc().
void paso::Preconditioner_AMG_Root_free | ( | Preconditioner_AMG_Root * | in | ) |
References paso::Preconditioner_AMG_Root::amg, paso::Preconditioner_AMG_Root::amgsubstitute, paso::Preconditioner_AMG_Root::boomeramg, paso::Preconditioner_AMG_Root::localamg, Preconditioner_AMG_free(), Preconditioner_BoomerAMG_free(), Preconditioner_LocalAMG_free(), and Preconditioner_Smoother_free().
Referenced by Preconditioner_AMG_Root_alloc(), and Preconditioner_free().
void paso::Preconditioner_AMG_Root_solve | ( | SystemMatrix_ptr | A, |
Preconditioner_AMG_Root * | prec, | ||
double * | x, | ||
double * | b | ||
) |
References paso::Preconditioner_AMG_Root::amg, paso::Preconditioner_AMG_Root::amgsubstitute, paso::Preconditioner_AMG_Root::boomeramg, paso::Preconditioner_AMG_Root::localamg, Preconditioner_AMG_solve(), Preconditioner_BoomerAMG_solve(), Preconditioner_LocalAMG_solve(), Preconditioner_Smoother_solve(), and paso::Preconditioner_AMG_Root::sweeps.
Referenced by Preconditioner_solve().
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 | ||
) |
References paso::util::comparIndex(), Esys_setError(), paso::util::samesign(), and SYSTEM_ERROR.
Referenced by Preconditioner_AMG_getProlongation().
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 | ||
) |
References paso::util::comparIndex(), Esys_setError(), paso::util::samesign(), and SYSTEM_ERROR.
Referenced by Preconditioner_AMG_getProlongation().
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 | ||
) |
References paso::util::comparIndex().
Referenced by Preconditioner_AMG_getProlongation().
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 | ||
) |
References paso::util::comparIndex().
Referenced by Preconditioner_AMG_getProlongation().
void paso::Preconditioner_AMG_setStrongConnections | ( | SystemMatrix_ptr | A, |
dim_t * | degree_S, | ||
index_t * | offset_S, | ||
index_t * | S, | ||
double | theta, | ||
double | tau | ||
) |
theta = threshold for strong connections tau = threshold for diagonal dominance
S_i={j N_i; i strongly coupled to j} in the sense that |A_{ij}| >= theta * max_k |A_{ik}|
Referenced by Preconditioner_AMG_alloc().
void paso::Preconditioner_AMG_setStrongConnections_Block | ( | SystemMatrix_ptr | A, |
dim_t * | degree_S, | ||
index_t * | offset_S, | ||
index_t * | S, | ||
double | theta, | ||
double | tau | ||
) |
Referenced by Preconditioner_AMG_alloc().
void paso::Preconditioner_AMG_solve | ( | SystemMatrix_ptr | A, |
Preconditioner_AMG * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References paso::Preconditioner_AMG::A_C, paso::Preconditioner_AMG::AMG_C, paso::Preconditioner_AMG::b_C, paso::util::copy(), Esys_timer(), paso::Preconditioner_AMG::level, paso::Preconditioner_AMG::merged_solver, paso::Preconditioner_AMG::P, paso::Preconditioner_AMG::post_sweeps, paso::Preconditioner_AMG::pre_sweeps, Preconditioner_Smoother_solve(), paso::Preconditioner_AMG::R, paso::Preconditioner_AMG::r, SHOW_TIMING, paso::Preconditioner_AMG::Smoother, paso::MergedSolver::solve(), SystemMatrix_MatrixVector_CSR_OFFSET0(), and paso::Preconditioner_AMG::x_C.
Referenced by Preconditioner_AMG_Root_solve().
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 | ||
) |
Referenced by Preconditioner_AMG_alloc().
Preconditioner_BoomerAMG * paso::Preconditioner_BoomerAMG_alloc | ( | SystemMatrix_ptr | A, |
Options * | options | ||
) |
References paso::Options::coarsening_method, paso::Options::coarsening_threshold, paso::Options::cycle_type, paso::Options::diagonal_dominance_threshold, paso::Options::level_max, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_OFFSET1, 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::Options::smoother, paso::Options::sweeps, and paso::Options::verbose.
Referenced by Preconditioner_AMG_Root_alloc().
void paso::Preconditioner_BoomerAMG_free | ( | Preconditioner_BoomerAMG * | in | ) |
Referenced by Preconditioner_AMG_Root_free().
void paso::Preconditioner_BoomerAMG_solve | ( | SystemMatrix_ptr | A, |
Preconditioner_BoomerAMG * | amg, | ||
double * | out, | ||
double * | in | ||
) |
call the solver
References MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, and MATRIX_FORMAT_OFFSET1.
Referenced by Preconditioner_AMG_Root_solve().
void paso::Preconditioner_free | ( | Preconditioner * | in | ) |
References paso::Preconditioner::amg, paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, Preconditioner_AMG_Root_free(), Preconditioner_Smoother_free(), paso::Preconditioner::rilu, Solver_ILU_free(), and Solver_RILU_free().
Referenced by paso::SystemMatrix::freePreconditioner(), and Preconditioner_alloc().
Preconditioner_LocalAMG * paso::Preconditioner_LocalAMG_alloc | ( | SparseMatrix_ptr | A_p, |
int | level, | ||
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::util::cumsum_maskedFalse(), paso::util::cumsum_maskedTrue(), paso::Options::diagonal_dominance_threshold, Esys_noError(), Esys_timer(), paso::Options::interpolation_method, paso::Preconditioner_LocalAMG::level, paso::Options::level_max, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, paso::Options::min_coarse_matrix_size, paso::Options::min_coarse_sparsity, paso::Preconditioner_LocalAMG::P, PASO_AMG_IN_C, PASO_AMG_IN_F, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, PASO_JACOBI, PASO_MKL, PASO_SMOOTHER, PASO_UMFPACK, paso::Options::post_sweeps, paso::Preconditioner_LocalAMG::post_sweeps, paso::Options::pre_sweeps, paso::Preconditioner_LocalAMG::pre_sweeps, Preconditioner_LocalAMG_enforceFFConnectivity(), Preconditioner_LocalAMG_free(), Preconditioner_LocalAMG_getProlongation(), Preconditioner_LocalAMG_RungeStuebenSearch(), Preconditioner_LocalAMG_setStrongConnections(), Preconditioner_LocalAMG_setStrongConnections_Block(), Preconditioner_LocalSmoother_alloc(), paso::Preconditioner_LocalAMG::R, paso::Preconditioner_LocalAMG::r, paso::Preconditioner_LocalAMG::refinements, paso::Options::reordering, paso::Preconditioner_LocalAMG::reordering, S, SHOW_TIMING, paso::Options::smoother, paso::Preconditioner_LocalAMG::Smoother, SparseMatrix_MatrixMatrix(), SparseMatrix_MatrixMatrixTranspose(), USE_TRANSPOSE, paso::Options::usePanel, paso::Options::verbose, and paso::Preconditioner_LocalAMG::x_C.
Referenced by Preconditioner_AMG_Root_alloc().
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
References paso::util::comparIndex(), PASO_AMG_IN_C, and PASO_AMG_IN_F.
Referenced by Preconditioner_LocalAMG_alloc().
void paso::Preconditioner_LocalAMG_free | ( | Preconditioner_LocalAMG * | in | ) |
References paso::Preconditioner_LocalAMG::AMG_C, paso::Preconditioner_LocalAMG::b_C, Preconditioner_LocalSmoother_free(), paso::Preconditioner_LocalAMG::r, paso::Preconditioner_LocalAMG::Smoother, and paso::Preconditioner_LocalAMG::x_C.
Referenced by Preconditioner_AMG_Root_free(), and Preconditioner_LocalAMG_alloc().
double paso::Preconditioner_LocalAMG_getCoarseLevelSparsity | ( | const Preconditioner_LocalAMG * | in | ) |
References paso::Preconditioner_LocalAMG::A_C, and paso::Preconditioner_LocalAMG::AMG_C.
Referenced by Preconditioner_AMG_Root_alloc().
int paso::Preconditioner_LocalAMG_getMaxLevel | ( | const Preconditioner_LocalAMG * | in | ) |
References paso::Preconditioner_LocalAMG::AMG_C, and paso::Preconditioner_LocalAMG::level.
Referenced by Preconditioner_AMG_Root_alloc().
dim_t paso::Preconditioner_LocalAMG_getNumCoarseUnknowns | ( | const Preconditioner_LocalAMG * | in | ) |
References paso::Preconditioner_LocalAMG::A_C, and paso::Preconditioner_LocalAMG::AMG_C.
Referenced by Preconditioner_AMG_Root_alloc().
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 | ||
) |
References paso::util::cumsum(), Esys_noError(), MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, PASO_CLASSIC_INTERPOLATION, PASO_CLASSIC_INTERPOLATION_WITH_FF_COUPLING, Preconditioner_LocalAMG_setClassicProlongation(), Preconditioner_LocalAMG_setClassicProlongation_Block(), Preconditioner_LocalAMG_setDirectProlongation(), and Preconditioner_LocalAMG_setDirectProlongation_Block().
Referenced by Preconditioner_LocalAMG_alloc().
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 | ||
) |
References paso::util::arg_max(), Esys_noError(), PASO_AMG_IN_C, PASO_AMG_IN_F, PASO_AMG_UNDECIDED, and SMALL_PANEL.
Referenced by Preconditioner_LocalAMG_alloc().
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 | ||
) |
References paso::util::comparIndex(), Esys_setError(), paso::util::iMax(), paso::util::samesign(), and SYSTEM_ERROR.
Referenced by Preconditioner_LocalAMG_getProlongation().
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 | ||
) |
References paso::util::comparIndex(), Esys_setError(), paso::util::iMax(), paso::util::samesign(), and SYSTEM_ERROR.
Referenced by Preconditioner_LocalAMG_getProlongation().
void paso::Preconditioner_LocalAMG_setDirectProlongation | ( | SparseMatrix_ptr | P_p, |
const_SparseMatrix_ptr | A_p, | ||
const index_t * | counter_C | ||
) |
References paso::util::comparIndex().
Referenced by Preconditioner_LocalAMG_getProlongation().
void paso::Preconditioner_LocalAMG_setDirectProlongation_Block | ( | SparseMatrix_ptr | P_p, |
const_SparseMatrix_ptr | A_p, | ||
const index_t * | counter_C | ||
) |
References paso::util::comparIndex().
Referenced by Preconditioner_LocalAMG_getProlongation().
void paso::Preconditioner_LocalAMG_setStrongConnections | ( | SparseMatrix_ptr | A, |
dim_t * | degree_S, | ||
index_t * | S, | ||
const double | theta, | ||
const double | tau | ||
) |
Referenced by Preconditioner_LocalAMG_alloc().
void paso::Preconditioner_LocalAMG_setStrongConnections_Block | ( | SparseMatrix_ptr | A, |
dim_t * | degree_S, | ||
index_t * | S, | ||
double | theta, | ||
double | tau | ||
) |
Referenced by Preconditioner_LocalAMG_alloc().
void paso::Preconditioner_LocalAMG_solve | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalAMG * | amg, | ||
double * | x, | ||
double * | b | ||
) |
References paso::Preconditioner_LocalAMG::A_C, paso::Preconditioner_LocalAMG::AMG_C, paso::Preconditioner_LocalAMG::b_C, paso::util::copy(), Esys_timer(), paso::Preconditioner_LocalAMG::level, MKL_solve(), paso::Preconditioner_LocalAMG::P, PASO_MKL, PASO_SMOOTHER, PASO_UMFPACK, paso::Preconditioner_LocalAMG::post_sweeps, paso::Preconditioner_LocalAMG::pre_sweeps, Preconditioner_LocalSmoother_solve(), paso::Preconditioner_LocalAMG::R, paso::Preconditioner_LocalAMG::r, paso::Preconditioner_LocalAMG::refinements, paso::Preconditioner_LocalAMG::reordering, SHOW_TIMING, paso::Preconditioner_LocalAMG::Smoother, SparseMatrix_MatrixVector_CSR_OFFSET0(), SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG(), UMFPACK_solve(), and paso::Preconditioner_LocalAMG::x_C.
Referenced by Preconditioner_AMG_Root_solve().
Preconditioner_LocalSmoother * paso::Preconditioner_LocalSmoother_alloc | ( | SparseMatrix_ptr | A, |
bool | jacobi, | ||
bool | verbose | ||
) |
References paso::Preconditioner_LocalSmoother::buffer, paso::Preconditioner_LocalSmoother::diag, Esys_noError(), Esys_timer(), paso::Preconditioner_LocalSmoother::Jacobi, paso::Preconditioner_LocalSmoother::pivot, and Preconditioner_LocalSmoother_free().
Referenced by paso::MergedSolver::MergedSolver(), Preconditioner_LocalAMG_alloc(), and Preconditioner_Smoother_alloc().
void paso::Preconditioner_LocalSmoother_free | ( | Preconditioner_LocalSmoother * | in | ) |
References paso::Preconditioner_LocalSmoother::buffer, paso::Preconditioner_LocalSmoother::diag, and paso::Preconditioner_LocalSmoother::pivot.
Referenced by Preconditioner_LocalAMG_free(), Preconditioner_LocalSmoother_alloc(), Preconditioner_Smoother_free(), and paso::SparseMatrix::~SparseMatrix().
void paso::Preconditioner_LocalSmoother_solve | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalSmoother * | gs, | ||
double * | x, | ||
const double * | b, | ||
dim_t | sweeps, | ||
bool | x_is_initial | ||
) |
void paso::Preconditioner_LocalSmoother_Sweep | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
References BlockOps_solveAll(), paso::Preconditioner_LocalSmoother::diag, paso::Preconditioner_LocalSmoother::Jacobi, omp_get_max_threads, paso::Preconditioner_LocalSmoother::pivot, Preconditioner_LocalSmoother_Sweep_colored(), and Preconditioner_LocalSmoother_Sweep_sequential().
Referenced by Preconditioner_LocalSmoother_solve(), Preconditioner_Smoother_solve(), and Preconditioner_Smoother_solve_byTolerance().
void paso::Preconditioner_LocalSmoother_Sweep_colored | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
References BlockOps_Cpy_N(), BlockOps_MV_N(), BlockOps_MViP_2(), BlockOps_MViP_3(), BlockOps_SMV_2(), BlockOps_SMV_3(), BlockOps_SMV_N(), BlockOps_solve_N(), paso::Preconditioner_LocalSmoother::diag, Esys_setError(), paso::Preconditioner_LocalSmoother::pivot, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_LocalSmoother_Sweep().
void paso::Preconditioner_LocalSmoother_Sweep_sequential | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
inplace Gauss-Seidel sweep in sequential mode
References BlockOps_Cpy_N(), BlockOps_MV_N(), BlockOps_MViP_2(), BlockOps_MViP_3(), BlockOps_SMV_2(), BlockOps_SMV_3(), BlockOps_SMV_N(), BlockOps_solve_N(), paso::Preconditioner_LocalSmoother::diag, Esys_setError(), paso::Preconditioner_LocalSmoother::pivot, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_LocalSmoother_Sweep().
void paso::Preconditioner_LocalSmoother_Sweep_tiled | ( | SparseMatrix_ptr | A, |
Preconditioner_LocalSmoother * | gs, | ||
double * | x | ||
) |
Preconditioner_Smoother * paso::Preconditioner_Smoother_alloc | ( | SystemMatrix_ptr | A, |
bool | jacobi, | ||
bool | is_local, | ||
bool | verbose | ||
) |
constructs the symmetric Gauss-Seidel preconditioner
References esysUtils::Esys_MPIInfo_noError(), paso::Preconditioner_Smoother::is_local, paso::Preconditioner_Smoother::localSmoother, Preconditioner_LocalSmoother_alloc(), and Preconditioner_Smoother_free().
Referenced by Preconditioner_alloc(), Preconditioner_AMG_alloc(), and Preconditioner_AMG_Root_alloc().
void paso::Preconditioner_Smoother_free | ( | Preconditioner_Smoother * | in | ) |
void paso::Preconditioner_Smoother_solve | ( | SystemMatrix_ptr | A, |
Preconditioner_Smoother * | gs, | ||
double * | x, | ||
const double * | b, | ||
dim_t | sweeps, | ||
bool | x_is_initial | ||
) |
References paso::util::AXPY(), paso::Preconditioner_LocalSmoother::buffer, paso::util::copy(), paso::Preconditioner_Smoother::is_local, paso::Preconditioner_Smoother::localSmoother, Preconditioner_LocalSmoother_solve(), Preconditioner_LocalSmoother_Sweep(), and SystemMatrix_MatrixVector_CSR_OFFSET0().
Referenced by Preconditioner_AMG_Root_solve(), Preconditioner_AMG_solve(), Preconditioner_solve(), and paso::FCT_Solver::updateNL().
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 | ||
) |
References paso::util::AXPY(), paso::Preconditioner_LocalSmoother::buffer, paso::util::copy(), paso::Preconditioner_Smoother::localSmoother, paso::util::lsup(), Preconditioner_LocalSmoother_Sweep(), PRECONDITIONER_MAXITER_REACHED, PRECONDITIONER_NO_ERROR, and SystemMatrix_MatrixVector().
Referenced by paso::FCT_Solver::updateLCN().
void paso::Preconditioner_solve | ( | Preconditioner * | prec, |
SystemMatrix_ptr | A, | ||
double * | x, | ||
double * | b | ||
) |
References paso::Preconditioner::amg, paso::util::copy(), paso::Preconditioner::gs, paso::Preconditioner::ilu, paso::Preconditioner::jacobi, PASO_AMG, PASO_GS, PASO_ILU0, PASO_JACOBI, PASO_NO_PRECONDITIONER, PASO_RILU, Preconditioner_AMG_Root_solve(), Preconditioner_Smoother_solve(), paso::Preconditioner::rilu, Solver_solveILU(), Solver_solveRILU(), paso::Preconditioner::sweeps, and paso::Preconditioner::type.
Referenced by paso::SystemMatrix::solvePreconditioner().
|
static |
Referenced by generate_HB().
References swap().
Referenced by paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), and q_sort().
void paso::RHS_loadMM_toCSR | ( | const char * | filename, |
double * | b, | ||
dim_t | size | ||
) |
References Esys_noError(), Esys_resetError(), Esys_setError(), IO_ERROR, M, mm_is_array, mm_is_general, mm_is_real, mm_read_banner(), mm_read_mtx_array_size(), nz, and TYPE_ERROR.
void paso::solve | ( | SystemMatrix_ptr | A, |
double * | out, | ||
double * | in, | ||
Options * | options | ||
) |
References paso::Options::accept_failed_convergence, paso::Options::converged, DIVERGED, Esys_getErrorType(), esysUtils::Esys_MPIInfo_noError(), Esys_noError(), Esys_resetError(), Esys_setError(), Esys_timer(), MKL_solve(), paso::Options::num_iter, PASO_MKL, PASO_PASO, PASO_UMFPACK, PERFORMANCE_ALL, Performance_close(), Performance_open(), Performance_startMonitor(), Performance_stopMonitor(), paso::Options::refinements, paso::Options::reordering, paso::Options::residual_norm, paso::Options::set_up_time, Solver(), paso::Options::time, UMFPACK_solve(), VALUE_ERROR, and paso::Options::verbose.
Referenced by escript::AbstractSystemMatrix::getColumnBlockSize(), and paso::SystemMatrixAdapter::setToSolution().
void paso::solve_free | ( | SystemMatrix * | in | ) |
References paso::SystemMatrix::mainBlock, MKL_free(), PASO_MKL, PASO_PASO, PASO_SMOOTHER, PASO_UMFPACK, Preconditioner_Smoother_free(), Solver_free(), paso::SystemMatrix::solver_p, paso::SystemMatrix::solver_package, and UMFPACK_free().
Referenced by paso::FCT_Solver::initialize(), paso::TransportProblem::reset(), paso::SystemMatrixAdapter::resetValues(), and paso::SystemMatrix::~SystemMatrix().
void paso::Solver | ( | SystemMatrix_ptr | A, |
double * | x, | ||
double * | b, | ||
Options * | options, | ||
Performance * | pp | ||
) |
calls the iterative solver
References ABS, blocktimer_increment(), blocktimer_time(), paso::Options::converged, DIVERGED, EPSILON, Esys_noError(), Esys_resetError(), Esys_setError(), Esys_timer(), paso::Options::getSolver(), paso::Options::iter_max, MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MAX, paso::Options::method, MIN, MPI_DOUBLE, MPI_MAX, MPI_SUM, paso::Options::net_time, NO_ERROR, paso::Options::num_inner_iter, paso::Options::num_iter, paso::Options::num_level, PASO_BICGSTAB, PASO_GMRES, PASO_MINRES, PASO_NONLINEAR_GMRES, PASO_PASO, PASO_PCG, PASO_PRES20, PASO_TFQMR, PERFORMANCE_ALL, PERFORMANCE_PRECONDITIONER_INIT, Performance_startMonitor(), Performance_stopMonitor(), paso::Options::residual_norm, paso::Options::restart, paso::Options::set_up_time, Solver_BiCGStab(), SOLVER_BREAKDOWN, Solver_GMRES(), SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, Solver_MINRES(), SOLVER_NEGATIVE_NORM_ERROR, Solver_NewtonGMRES(), SOLVER_NO_ERROR, Solver_PCG(), Solver_TFQMR(), paso::Options::symmetric, SYSTEM_ERROR, SystemMatrix_MatrixVector_CSR_OFFSET0(), paso::Options::time, paso::Options::tolerance, paso::Options::truncation, TYPE_ERROR, VALUE_ERROR, paso::Options::verbose, and ZERO_DIVISION_ERROR.
Referenced by solve().
err_t paso::Solver_BiCGStab | ( | SystemMatrix_ptr | A, |
double * | r, | ||
double * | x, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
Performance * | pp | ||
) |
References MPI_DOUBLE, MPI_SUM, PASO_ONE, PASO_ZERO, SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, SystemMatrix_MatrixVector_CSR_OFFSET0(), and TOLERANCE_FOR_SCALARS.
Referenced by Solver(), and paso::FCT_Solver::updateNL().
void paso::Solver_free | ( | SystemMatrix * | A | ) |
References paso::SystemMatrix::freePreconditioner().
Referenced by solve_free().
Solver_ILU * paso::Solver_getILU | ( | SparseMatrix_ptr | A, |
bool | verbose | ||
) |
constructs the incomplete block factorization
References ABS, Esys_checkPtr(), Esys_noError(), Esys_setError(), Esys_timer(), paso::Solver_ILU::factors, Solver_ILU_free(), VALUE_ERROR, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_alloc().
Solver_RILU * paso::Solver_getRILU | ( | SparseMatrix_ptr | A, |
bool | 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, paso::util::comparIndex(), paso::util::cumsum(), Esys_noError(), Esys_setError(), Esys_timer(), 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::Solver_RILU::RILU_of_Schur, paso::Solver_RILU::rows_in_C, paso::Solver_RILU::rows_in_F, Solver_RILU_free(), Solver_updateIncompleteSchurComplement(), VALUE_ERROR, paso::Solver_RILU::x_C, paso::Solver_RILU::x_F, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_alloc().
err_t paso::Solver_GMRES | ( | SystemMatrix_ptr | A, |
double * | r, | ||
double * | x, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
dim_t | Length_of_recursion, | ||
dim_t | restart, | ||
Performance * | pp | ||
) |
References MPI_DOUBLE, MPI_SUM, omp_get_max_threads, PASO_ONE, PASO_ZERO, SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, and SystemMatrix_MatrixVector_CSR_OFFSET0().
Referenced by Solver().
err_t paso::Solver_GMRES2 | ( | Function * | F, |
const double * | f0, | ||
const double * | x0, | ||
double * | dx, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
Performance * | pp | ||
) |
References ABS, paso::util::applyGivensRotations(), paso::Function::derivative(), paso::Function::getLen(), INDEX2, paso::util::innerProduct(), paso::util::l2(), paso::Function::mpi_info, SOLVER_INPUT_ERROR, SOLVER_NO_ERROR, paso::util::update(), and paso::util::zeroes().
Referenced by Solver_NewtonGMRES().
void paso::Solver_ILU_free | ( | Solver_ILU * | in | ) |
References paso::Solver_ILU::factors.
Referenced by Preconditioner_free(), and Solver_getILU().
err_t paso::Solver_MINRES | ( | SystemMatrix_ptr | A, |
double * | R, | ||
double * | X, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
Performance * | pp | ||
) |
References ABS, paso::util::AXPY(), paso::util::copy(), paso::util::innerProduct(), paso::util::l2(), PASO_ONE, PASO_ZERO, paso::util::scale(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_NEGATIVE_NORM_ERROR, SOLVER_NO_ERROR, and SystemMatrix_MatrixVector_CSR_OFFSET0().
Referenced by Solver().
err_t paso::Solver_NewtonGMRES | ( | Function * | F, |
double * | x, | ||
Options * | options, | ||
Performance * | pp | ||
) |
References paso::Options::absolute_tolerance, paso::Options::adapt_inner_tolerance, paso::Function::call(), paso::Function::getLen(), paso::Options::inner_iter_max, paso::Options::inner_tolerance, paso::Options::iter_max, paso::util::l2(), paso::util::lsup(), paso::Function::mpi_info, SOLVER_BREAKDOWN, Solver_GMRES2(), SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, paso::Options::tolerance, paso::util::update(), and paso::Options::verbose.
Referenced by Solver().
err_t paso::Solver_PCG | ( | SystemMatrix_ptr | A, |
double * | r, | ||
double * | x, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
Performance * | pp | ||
) |
References MPI_DOUBLE, MPI_SUM, omp_get_max_threads, PASO_ONE, PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_BREAKDOWN, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, SystemMatrix_MatrixVector_CSR_OFFSET0(), and TOLERANCE_FOR_SCALARS.
Referenced by Solver().
void paso::Solver_RILU_free | ( | Solver_RILU * | in | ) |
References 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::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 Preconditioner_free(), and Solver_getRILU().
void paso::Solver_solveILU | ( | SparseMatrix_ptr | A, |
Solver_ILU * | ilu, | ||
double * | x, | ||
const double * | b | ||
) |
References paso::Solver_ILU::factors.
Referenced by Preconditioner_solve().
void paso::Solver_solveRILU | ( | 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, BlockOps_solveAll(), paso::util::copy(), 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::Solver_RILU::RILU_of_Schur, paso::Solver_RILU::rows_in_C, paso::Solver_RILU::rows_in_F, SparseMatrix_MatrixVector_CSR_OFFSET0(), paso::Solver_RILU::x_C, and paso::Solver_RILU::x_F.
Referenced by Preconditioner_solve().
err_t paso::Solver_TFQMR | ( | SystemMatrix_ptr | A, |
double * | B, | ||
double * | X, | ||
dim_t * | iter, | ||
double * | tolerance, | ||
Performance * | pp | ||
) |
References ABS, paso::util::copy(), paso::util::innerProduct(), paso::util::l2(), paso::util::linearCombination(), PASO_ONE, PASO_ZERO, PERFORMANCE_MVM, PERFORMANCE_PRECONDITIONER, PERFORMANCE_SOLVER, Performance_startMonitor(), Performance_stopMonitor(), SOLVER_BREAKDOWN, SOLVER_INPUT_ERROR, SOLVER_MAXITER_REACHED, SOLVER_NO_ERROR, SystemMatrix_MatrixVector_CSR_OFFSET0(), paso::util::update(), and paso::util::zeroes().
Referenced by Solver().
void paso::Solver_updateIncompleteSchurComplement | ( | SparseMatrix_ptr | A_CC, |
SparseMatrix_ptr | A_CF, | ||
double * | invA_FF, | ||
index_t * | A_FF_pivot, | ||
SparseMatrix_ptr | A_FC | ||
) |
References paso::util::comparIndex().
Referenced by Solver_getRILU().
SparseMatrix_ptr paso::SparseMatrix_MatrixMatrix | ( | const_SparseMatrix_ptr | A, |
const_SparseMatrix_ptr | B | ||
) |
References Esys_noError(), Esys_setError(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, SparseMatrix_MatrixMatrix_BB(), SparseMatrix_MatrixMatrix_BD(), SparseMatrix_MatrixMatrix_DB(), SparseMatrix_MatrixMatrix_DD(), and TYPE_ERROR.
Referenced by Preconditioner_LocalAMG_alloc().
void paso::SparseMatrix_MatrixMatrix_BB | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B | ||
) |
References paso::util::comparIndex().
Referenced by SparseMatrix_MatrixMatrix().
void paso::SparseMatrix_MatrixMatrix_BD | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B | ||
) |
References paso::util::comparIndex().
Referenced by SparseMatrix_MatrixMatrix().
void paso::SparseMatrix_MatrixMatrix_DB | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B | ||
) |
References paso::util::comparIndex().
Referenced by SparseMatrix_MatrixMatrix().
void paso::SparseMatrix_MatrixMatrix_DD | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B | ||
) |
References paso::util::comparIndex(), and MIN.
Referenced by SparseMatrix_MatrixMatrix().
SparseMatrix_ptr paso::SparseMatrix_MatrixMatrixTranspose | ( | const_SparseMatrix_ptr | A, |
const_SparseMatrix_ptr | B, | ||
const_SparseMatrix_ptr | T | ||
) |
References Esys_noError(), Esys_setError(), MATRIX_FORMAT_BLK1, MATRIX_FORMAT_DEFAULT, MATRIX_FORMAT_DIAGONAL_BLOCK, SparseMatrix_MatrixMatrixTranspose_BB(), SparseMatrix_MatrixMatrixTranspose_BD(), SparseMatrix_MatrixMatrixTranspose_DB(), SparseMatrix_MatrixMatrixTranspose_DD(), and TYPE_ERROR.
Referenced by Preconditioner_LocalAMG_alloc().
void paso::SparseMatrix_MatrixMatrixTranspose_BB | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B, | ||
const_SparseMatrix_ptr | T | ||
) |
Referenced by SparseMatrix_MatrixMatrixTranspose().
void paso::SparseMatrix_MatrixMatrixTranspose_BD | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B, | ||
const_SparseMatrix_ptr | T | ||
) |
Referenced by SparseMatrix_MatrixMatrixTranspose().
void paso::SparseMatrix_MatrixMatrixTranspose_DB | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B, | ||
const_SparseMatrix_ptr | T | ||
) |
Referenced by SparseMatrix_MatrixMatrixTranspose().
void paso::SparseMatrix_MatrixMatrixTranspose_DD | ( | SparseMatrix_ptr | C, |
const_SparseMatrix_ptr | A, | ||
const_SparseMatrix_ptr | B, | ||
const_SparseMatrix_ptr | T | ||
) |
Referenced by SparseMatrix_MatrixMatrixTranspose().
void paso::SparseMatrix_MatrixVector_CSC_OFFSET0 | ( | const double | alpha, |
const_SparseMatrix_ptr | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
Referenced by SystemMatrix_MatrixVector().
void paso::SparseMatrix_MatrixVector_CSC_OFFSET1 | ( | const double | alpha, |
const_SparseMatrix_ptr | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
Referenced by SystemMatrix_MatrixVector().
void paso::SparseMatrix_MatrixVector_CSR_OFFSET0 | ( | const double | alpha, |
const_SparseMatrix_ptr | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
void paso::SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG | ( | const double | alpha, |
const_SparseMatrix_ptr | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
Referenced by Preconditioner_LocalAMG_solve(), and SystemMatrix_MatrixVector_CSR_OFFSET0().
void paso::SparseMatrix_MatrixVector_CSR_OFFSET0_stripe | ( | double | alpha, |
dim_t | nRows, | ||
dim_t | row_block_size, | ||
dim_t | col_block_size, | ||
const index_t * | ptr, | ||
const index_t * | index, | ||
const double * | val, | ||
const double * | in, | ||
double | beta, | ||
double * | out | ||
) |
Referenced by SparseMatrix_MatrixVector_CSR_OFFSET0().
void paso::SparseMatrix_MatrixVector_CSR_OFFSET1 | ( | const double | alpha, |
const_SparseMatrix_ptr | A, | ||
const double * | in, | ||
const double | beta, | ||
double * | out | ||
) |
Referenced by SystemMatrix_MatrixVector().
Referenced by q_sort(), escript::DataBlocks2D::Swap(), and finley::ElementFile::swapTable().
void paso::SystemMatrix_MatrixVector | ( | double | alpha, |
SystemMatrix_ptr | A, | ||
const double * | in, | ||
double | beta, | ||
double * | out | ||
) |
References Esys_noError(), Esys_setError(), MATRIX_FORMAT_CSC, MATRIX_FORMAT_OFFSET1, MATRIX_FORMAT_TRILINOS_CRS, SparseMatrix_MatrixVector_CSC_OFFSET0(), SparseMatrix_MatrixVector_CSC_OFFSET1(), SparseMatrix_MatrixVector_CSR_OFFSET1(), SYSTEM_ERROR, SystemMatrix_MatrixVector_CSR_OFFSET0(), and VALUE_ERROR.
Referenced by paso::TransportProblemAdapter::copyConstraint(), Preconditioner_Smoother_solve_byTolerance(), and paso::SystemMatrixAdapter::ypAx().
void paso::SystemMatrix_MatrixVector_CSR_OFFSET0 | ( | double | alpha, |
SystemMatrix_ptr | A, | ||
const double * | in, | ||
double | beta, | ||
double * | out | ||
) |
References MATRIX_FORMAT_DIAGONAL_BLOCK, SparseMatrix_MatrixVector_CSR_OFFSET0(), and SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG().
Referenced by paso::LinearSystem::call(), Preconditioner_AMG_solve(), Preconditioner_Smoother_solve(), Solver(), Solver_BiCGStab(), Solver_GMRES(), Solver_MINRES(), Solver_PCG(), Solver_TFQMR(), and SystemMatrix_MatrixVector().
void paso::UMFPACK_free | ( | SparseMatrix * | A | ) |
frees any UMFPACK related data from the matrix
References paso::UMFPACK_Handler::numeric, paso::SparseMatrix::solver_p, and paso::UMFPACK_Handler::symbolic.
Referenced by solve_free(), and paso::SparseMatrix::~SparseMatrix().
void paso::UMFPACK_solve | ( | SparseMatrix_ptr | A, |
double * | out, | ||
double * | in, | ||
dim_t | numRefinements, | ||
bool | verbose | ||
) |
calls the solver
References Esys_setError(), Esys_timer(), FLOATING_POINT_ERROR, MATRIX_FORMAT_BLK1, MATRIX_FORMAT_CSC, MEMORY_ERROR, paso::UMFPACK_Handler::numeric, PASO_UMFPACK, paso::UMFPACK_Handler::symbolic, SYSTEM_ERROR, TYPE_ERROR, and ZERO_DIVISION_ERROR.
Referenced by Preconditioner_LocalAMG_solve(), solve(), and paso::MergedSolver::solve().
|
static |
Referenced by ripley::RipleyDomain::createPasoPattern(), ripley::SystemMatrix::getBlockSize(), ripley::MultiBrick::getConnections(), ripley::Brick::getConnections(), ripley::Rectangle::getConnections(), ripley::RipleyDomain::getDiracDeltaFunctionsCode(), paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), mm_read_unsymmetric_sparse(), RHS_loadMM_toCSR(), paso::SparseMatrix::saveMM(), and paso::FCT_Solver::setMuPaLu().
|
static |
|
static |
Referenced by paso::util::cumsum(), paso::util::cumsum_maskedFalse(), paso::util::cumsum_maskedTrue(), escript::Taipan::delete_array(), Dudley_Util_anyNonZeroDouble(), Dudley_Util_cumsum(), Dudley_Util_getFlaggedMaxInt(), Dudley_Util_getFlaggedMinInt(), Dudley_Util_getMaxInt(), Dudley_Util_getMinInt(), Dudley_Util_isAny(), Dudley_Util_packMask(), Esys_MPIInfo_setDistribution(), finley::util::getFlaggedMinMaxInt(), finley::util::getMaxInt(), finley::util::getMinInt(), finley::util::getMinMaxInt(), finley::util::hasReducedIntegrationOrder(), paso::util::iMax(), paso::util::isAny(), paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), mm_read_unsymmetric_sparse(), escript::Taipan::new_array(), paso::util::numPositives(), paso::Pattern::reduceBandwidth(), paso::SparseMatrix::saveHB_CSC(), paso::SparseMatrix::saveMM(), and esysUtils::JMPI_::setDistribution().
|
static |
|
static |
Referenced by escript::Data::interpolateFromTable3D(), ripley::MultiBrick::interpolateNodesToNodesFiner(), paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), mm_read_mtx_crd(), mm_read_mtx_crd_data(), mm_read_unsymmetric_sparse(), mm_write_mtx_crd(), ripley::MultiBrick::populateDofMap(), ripley::Brick::populateDofMap(), and RHS_loadMM_toCSR().
|
static |
|
static |